pfSense Gold Subscription

Author Topic: LDAP+iCloud+Mozilla  (Read 221 times)

0 Members and 1 Guest are viewing this topic.

Offline MaximKa_Che

  • Newbie
  • *
  • Posts: 20
  • Karma: +3/-0
    • View Profile
LDAP+iCloud+Mozilla
« on: November 16, 2017, 06:56:42 am »
День добрый!

Настроив авторизацию Squid посредством Kerberos, неожиданно получил противную проблему: на моей машине с Mac OS X пропал доступ к App Store и iCloud. Пытаясь разобраться глубже, понял, что проблема кроется именно в реакции iCloud на ldap авторизацию. Стоит отметить, что по понятным причинам  сама машина с Mac OS доменный способ авторизации не поддерживает ;). Для этого у нее предусмотрен другой (Basic) способ получения доступа к прокси серверу. Тем не менее, проблема оказалась еще интереснее...
Подумав о том, что доступ к iCloud через "родное" приложение можно заменить на менее приятный, но работающий вариант с Web-интерфейсом браузера, я жестоко ошибался. Проще привести результаты:

1. Win10 с авторизацией Kerberos
Moziila - запрашивает имя и пароль (все остальные сайты работают без проблем)
IE - пускает на сайт

2. Win10 с авторизацией по IP
Moziila - пускает на сайт
IE - пускает на сайт

3. Mac OS X (Basic авторизация)
Moziila - НЕ пускает на сайт
Safary - НЕ пускает на сайт

4. Win 2012 ведёт себя с Moziila и IE аналогично пунктам 1 и 2

Пример конфигурации, вызывающей проблемы с iCloud:

# Authorization through Kerberos
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -r -s HTTP/pfsense.домен.ru@ДОМЕН.RU
auth_param negotiate children 10
auth_param negotiate keep_alive on
external_acl_type ldap_groups ttl=15 %LOGIN /usr/local/libexec/squid/ext_ldap_group_acl -R -v 3 -b "dc=домен,dc=ru" -D Admin@домен.ru -w Password -f "(&(objectclass=user)(sAMAccountName=%v)(memberOf=CN=%a,CN=Users,DC=домен,DC=ru))" -K -P mdc.домен.ru
acl SquidAccessGroup external ldap_groups SquidAccessGroup
http_access deny !SquidAccessGroup


 
« Last Edit: November 19, 2017, 02:01:12 am by MaximKa_Che »

Offline werter

  • Hero Member
  • *****
  • Posts: 4930
  • Karma: +231/-14
    • View Profile
Re: LDAP+iCloud+Unix
« Reply #1 on: November 16, 2017, 09:09:12 am »
А у нас идея №1 и она же единственная - чтение логов сквида. И гугление после.

Offline MaximKa_Che

  • Newbie
  • *
  • Posts: 20
  • Karma: +3/-0
    • View Profile
Re: LDAP+iCloud+Unix
« Reply #2 on: November 16, 2017, 12:19:03 pm »
А у нас идея №1 и она же единственная - чтение логов сквида. И гугление после.
Снова Вы? Активность однако... Какой именно ответ Вы хотите услышать/увидеть? В каждом из описанных мною вариантов сайт icloud.com меня пускает к себе. Вот только приглашение ввода учетного имени и пароля появляется, увы, не каждый раз.  Картинки прилагаются. И даже какие-то куски логов... Разобраться бы :)
« Last Edit: November 16, 2017, 02:33:41 pm by MaximKa_Che »

Offline werter

  • Hero Member
  • *****
  • Posts: 4930
  • Karma: +231/-14
    • View Profile
Re: LDAP+iCloud+Unix
« Reply #3 on: November 17, 2017, 04:11:10 am »
Доброго.
Моя активность вам уже 1 проблему со сквидом решила.

Как вы заметили (да?) в логах полно TCP_MISS/200, TCP_DENIED/407 etc. Гуглите.
Так же смотрите cache.log Уверен, что там тоже есть сообщения , к-ые можно использовать для решения.

-
Учу гуглить за деньги.

Offline MaximKa_Che

  • Newbie
  • *
  • Posts: 20
  • Karma: +3/-0
    • View Profile
Re: LDAP+iCloud+Unix
« Reply #4 on: November 17, 2017, 06:50:06 am »
в логах полно TCP_MISS/200, TCP_DENIED/407 etc. Гуглите.
Так же смотрите cache.log Уверен, что там тоже есть сообщения , к-ые можно использовать для решения.

Блин, Зин, а где ответ-то? Мне не нужен психоаналитик, мне конкретные рекомендации по существу нужны. А лекции я и сам могу... ;)
« Last Edit: November 19, 2017, 02:03:38 am by MaximKa_Che »

Offline werter

  • Hero Member
  • *****
  • Posts: 4930
  • Karma: +231/-14
    • View Profile
Re: LDAP+iCloud+Unix
« Reply #5 on: November 18, 2017, 07:19:57 am »
Доброго.
Блин, Зин, а где ответ-то? Мне не нужен психоаналитик, мне конкретные рекомендации по существу нужны. А лекции я и сам могу... ;)
Дерзайте. Направление дано. Ветра в паруса.

-
Учу гуглить. За деньги. Дорого.

Offline MaximKa_Che

  • Newbie
  • *
  • Posts: 20
  • Karma: +3/-0
    • View Profile
Re: LDAP+iCloud+Unix
« Reply #6 on: November 18, 2017, 12:32:18 pm »
Дерзайте. Направление дано. Ветра в паруса.

По существу:

1. Опытным путем мною установлено, что при отсутствии возможности вручную ввести имя/пароль, iCloud выдает сообщение об ошибке.
a. При явном использовании LDAP авторизации (Squid - Authentification - LDAP) запрашивается имя и пароль: как следствие, все работает
b. При использовании только Basic авторизации в Custom Options запрашивается имя и пароль: как следствие, все работает
c. При использовании только Kerberos авторизации в Custom Options НЕ запрашивается имя и пароль: как следствие, при доступе к сайту возникает ошибка

Однако это справедливо только для доменных машин с установленной Windows. На Mac OS X и пункты 1a, 1b не работают.

2. Повторю еще раз: попадание в кеш и записи TCP_HIT в access.log преобладают. Со всеми остальными сайтами кроме icloud.com проблем нет. Куда "до ветру" идти? 

Пример конфигурации, вызывающей проблемы с iCloud:

# Authorization through Kerberos
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -r -s HTTP/pfsense.домен.ru@ДОМЕН.RU
auth_param negotiate children 10
auth_param negotiate keep_alive on
external_acl_type ldap_groups ttl=15 %LOGIN /usr/local/libexec/squid/ext_ldap_group_acl -R -v 3 -b "dc=домен,dc=ru" -D Admin@домен.ru -w Password -f "(&(objectclass=user)(sAMAccountName=%v)(memberOf=CN=%a,CN=Users,DC=домен,DC=ru))" -K -P mdc.домен.ru
acl SquidAccessGroup external ldap_groups SquidAccessGroup
http_access deny !SquidAccessGroup
« Last Edit: November 19, 2017, 02:04:45 am by MaximKa_Che »

Offline MaximKa_Che

  • Newbie
  • *
  • Posts: 20
  • Karma: +3/-0
    • View Profile
Re: LDAP+iCloud+Unix
« Reply #7 on: November 18, 2017, 11:51:35 pm »
Ощущение такое, что negotiate_kerberos_auth, извлекая имя пользователя, неверно передает его в запрос к сайту. Включив Debug режим в negotiate_kerberos_auth, получил сообщение об ошибке:

negotiate_kerberos_auth.cc(180): pid=9011 :2017/11/19 08:43:47|
negotiate_kerberos_auth: ERROR: gss_accept_sec_context() failed: Unspecified GSS failure. 
Minor  code may provide more information. Request is a replay

И это только с iCloud, и только с Mozilla (в Windows). C Mac'ом все еще печальнее. Буду разбираться.
« Last Edit: November 19, 2017, 02:07:26 am by MaximKa_Che »

Offline MaximKa_Che

  • Newbie
  • *
  • Posts: 20
  • Karma: +3/-0
    • View Profile
Re: LDAP+iCloud+Mozilla
« Reply #8 on: December 11, 2017, 01:59:42 am »
Ну что, спасение утопающих  - дел их же рук?

Вдруг кому-нибудь пригодится: все сервисы от Apple оказались слишком защищенными, в результате чего включенная по умолчанию опция ssl-bump, перехватывающая https-трафик, воспринималась, судя по всему, как попытка взлома, после чего, в частности, iCloud не пускал к себе. Пришлось отключить :-).

Не думаю, что отключение критично для всех доменов от Apple, однако пока я решил проблему так:

acl SquidPass dstdom_regex -i .*apple\.com
acl SquidPass dstdom_regex -i .*icloud\.com
acl SquidPass dstdom_regex -i .*akamaihd\.net
acl SquidPass dstdom_regex -i .*ssl\.gstatic\.com
acl SquidPass dstdom_regex -i .*mzstatic\.com
acl SquidPass dstdom_regex -i .*itunes\.com
acl SquidPass dstdom_regex -i .*icloud-content\.com
ssl_bump none SquidPass

Помог английский топик (https://forum.pfsense.org/index.php?topic=90908.0), однако разумного объяснения я там изначально не нашел.