Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    LDAP+iCloud+Mozilla

    Scheduled Pinned Locked Moved Russian
    9 Posts 2 Posters 1.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • M Offline
      MaximKa_Che
      last edited by

      День добрый!

      Настроив авторизацию 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

      1 Reply Last reply Reply Quote 0
      • werterW Offline
        werter
        last edited by

        А у нас идея №1 и она же единственная - чтение логов сквида. И гугление после.

        1 Reply Last reply Reply Quote 0
        • M Offline
          MaximKa_Che
          last edited by

          @werter:

          А у нас идея №1 и она же единственная - чтение логов сквида. И гугление после.

          Снова Вы? Активность однако… Какой именно ответ Вы хотите услышать/увидеть? В каждом из описанных мною вариантов сайт icloud.com меня пускает к себе. Вот только приглашение ввода учетного имени и пароля появляется, увы, не каждый раз.  Картинки прилагаются. И даже какие-то куски логов… Разобраться бы :)

          allow.jpg
          allow.jpg_thumb
          deny.jpg
          deny.jpg_thumb
          deny1.txt
          allow1.txt

          1 Reply Last reply Reply Quote 0
          • werterW Offline
            werter
            last edited by

            Доброго.
            Моя активность вам уже 1 проблему со сквидом решила.

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

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

            1 Reply Last reply Reply Quote 0
            • M Offline
              MaximKa_Che
              last edited by

              @werter:

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

              Блин, Зин, а где ответ-то? Мне не нужен психоаналитик, мне конкретные рекомендации по существу нужны. А лекции я и сам могу… ;)

              1 Reply Last reply Reply Quote 0
              • werterW Offline
                werter
                last edited by

                Доброго.
                @MaximKa_Che:

                Блин, Зин, а где ответ-то? Мне не нужен психоаналитик, мне конкретные рекомендации по существу нужны. А лекции я и сам могу… ;)

                Дерзайте. Направление дано. Ветра в паруса.

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

                1 Reply Last reply Reply Quote 0
                • M Offline
                  MaximKa_Che
                  last edited by

                  @werter:

                  Дерзайте. Направление дано. Ветра в паруса.

                  По существу:

                  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

                  1 Reply Last reply Reply Quote 0
                  • M Offline
                    MaximKa_Che
                    last edited by

                    Ощущение такое, что 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'ом все еще печальнее. Буду разбираться.

                    1 Reply Last reply Reply Quote 0
                    • M Offline
                      MaximKa_Che
                      last edited by

                      Ну что, спасение утопающих  - дел их же рук?

                      Вдруг кому-нибудь пригодится: все сервисы от 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), однако разумного объяснения я там изначально не нашел.

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post
                      Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.