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

    PfSense 2.1.3 и Kerberos (для Squid)

    Scheduled Pinned Locked Moved Russian
    18 Posts 4 Posters 9.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.
    • werterW
      werter
      last edited by

      Это смотря как искать :

      https://forum.pfsense.org/index.php?topic=47532.msg250366#msg250366
      https://forum.pfsense.org/index.php/topic,58700.0.html

      1 Reply Last reply Reply Quote 0
      • P
        pfs-beginner
        last edited by

        Эти ветки я читал. В первой ветке речь идёт про установку Samba (а хочется обойтись без неё как описано в статье на которую я привел ссылку), а во второй речь вообще об NTLM, а меня интересует именно Kerberos.

        1 Reply Last reply Reply Quote 0
        • D
          dvserg
          last edited by

          Вот еще варианты
          http://www.opennet.ru/openforum/vsluhforumID1/95369.html
          http://squid-web-proxy-cache.1019090.n4.nabble.com/Kerberos-and-NTLM-authentication-td4660031.html

          По поводу ошибок "Undefined symbol " сдается вы установили не пакет не с той версии FreeBSD.

          SquidGuardDoc EN  RU Tutorial
          Localization ru_PFSense

          1 Reply Last reply Reply Quote 0
          • P
            pfs-beginner
            last edited by

            @dvserg:

            …По поводу ошибок "Undefined symbol " сдается вы установили не пакет не с той версии FreeBSD.

            Ссылка откуда устанавливал видна в первом посте. Я полагал что в каталоге https://files.pfsense.org/packages/amd64/8/All/ лежат пакеты именно для pfSense 2.1.3 x64.

            В конечном итоге пакеты доступные в этом каталоге (ни krb5-1.9.2_3.tbz ни heimdal-1.5.2_4.tbz) не принесли желаемого результата. Такое ощущение что для корректно работы этих пакетов не хватает каких-то зависимостей.

            Установил пакет heimdal-1.4_1 из коллекции пакетов для FreeBSD 8.3 ftp://ftp.freebsd.org/pub/FreeBSD/ports/amd64/packages-8.3-release/Latest/heimdal.tbz
            и утилиты для работы с Kerberos заработали. То есть эту проблему решить удалось.

            Но теперь возник другой вопрос относительно настройки LDAP-фильтра для хелпера squid_ldap_group к Squid.
            Его можно здесь задать?

            1 Reply Last reply Reply Quote 0
            • P
              pfs-beginner
              last edited by

              C squid_ldap_group вроде разобрался. По крайней мере тестирование работает и хелпер мне успешно показывает включен пользователь домена в группу или не включен.

              Теперь реально упёрся в другую проблему.
              Не работает как надо хелпер /usr/local/libexec/squid/squid_kerb_auth, хотя по идее должен так как пакет squid3, как я вижу, собран с параметром '–enable-negotiate-auth-helpers=squid_kerb_auth'.

              Для проверки работы хелпера выполняю команду:

              /usr/local/libexec/squid/squid_kerb_auth_test -d kom-ad01-gw01.holding.com
              

              В ответ получаю:

              
              dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10"
              dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10"
              2014/05/29 11:14:57| squid_kerb_auth_test: gss_init_sec_context() failed:  An unsupported mechanism was requested. unknown mech-code 0 for mech unknown
              Token: NULL
              
              

              Дополнительная информация по исходным данным:

              Содержимое файла /etc/krb5.conf

              
              [libdefaults]
                default_realm = HOLDING.COM
                default_keytab_name = /usr/local/etc/squid/SQUID-Svc-on-GW01.keytab
              [realms]
                HOLDING.COM = {
                kdc = kom-ad01-dc01.holding.com
                kdc = kom-ad01-dc02.holding.com
                admin_server = kom-ad01-dc01.holding.com
                default_domain = holding.com
                }
              [domain_realm]
                .holding.com = HOLDING.COM
                holding.com = HOLDING.COM
              
              

              Содержимое файла keytab (ktutil -k /usr/local/etc/squid/SQUID-Svc-on-GW01.keytab list) :

              
              /usr/local/etc/squid/SQUID-Svc-on-GW01.keytab:
              
              Vno  Type                     Principal                                                 Aliases
                5  des-cbc-crc              HTTP/kom-ad01-gw01.holding.com@HOLDING.COM
                5  des-cbc-md5              HTTP/kom-ad01-gw01.holding.com@HOLDING.COM
                5  arcfour-hmac-md5         HTTP/kom-ad01-gw01.holding.com@HOLDING.COM
                5  aes256-cts-hmac-sha1-96  HTTP/kom-ad01-gw01.holding.com@HOLDING.COM
                5  aes128-cts-hmac-sha1-96  HTTP/kom-ad01-gw01.holding.com@HOLDING.COM
              
              

              Выполнен тест получения билета:

              
              kinit -k HTTP/kom-ad01-gw01.holding.com
              klist
              
              

              Результат:

              
              Credentials cache: FILE:/tmp/krb5cc_0
                      Principal: HTTP/kom-ad01-gw01.holding.com@HOLDING.COM
              
                Issued           Expires          Principal
              May 29 11:24:28  May 29 21:24:28  krbtgt/HOLDING.COM@HOLDING.COM
              
              

              То есть, как я понимаю, билет успешно получен.

              Однако squid_kerb_auth_test  как и squid_kerb_auth выдают вышеописанную ошибку.

              Подскажите пожалуйста в какую сторону копать.

              1 Reply Last reply Reply Quote 0
              • P
                pfs-beginner
                last edited by

                Никто ничего не подскажет?

                1 Reply Last reply Reply Quote 0
                • D
                  dvserg
                  last edited by

                  @pfs-beginner:

                  Никто ничего не подскажет?

                  Возможно здесь проблема

                  dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10"
                  dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10"
                  2014/05/29 11:14:57| squid_kerb_auth_test: gss_init_sec_context() failed:  An unsupported mechanism was requested. unknown mech-code 0 for mech unknown
                  Token: NULL
                  

                  SquidGuardDoc EN  RU Tutorial
                  Localization ru_PFSense

                  1 Reply Last reply Reply Quote 0
                  • P
                    pfs-beginner
                    last edited by

                    Это я уже понял :)
                    Только вот как решить эту проблему?

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

                      В гугле пробовали поискать по squid_kerb_auth_test: gss_init_sec_context() failed ?

                      http://forum.lissyara.su/viewtopic.php?f=3&t=25959&start=50

                      осилил спустя полтора дня мозгового штурма, слишком много нюансов, которые в гайдах не везде указываются:
                      у клиента системное время должно соответствовать прокси и КД
                      в условиях win2008 нужно для mapuser разрешить использовать des шифрование, что бы тикет опознался как родной
                      в настройках прокси нужно указывать прокси как fqdn, а не ip адрес
                      необходимо для krb наличие обратной и прямой зоны для сквида

                      https://bbs.archlinux.org/viewtopic.php?id=157458

                      http://squid-web-proxy-cache.1019090.n4.nabble.com/Problems-setting-up-Kerberos-authentication-td1576502.html

                      1 Reply Last reply Reply Quote 0
                      • M
                        miemshik
                        last edited by

                        Добрый день, werter

                        Тоже интересна эта тема
                        Бьюсь с настройкой уже пару дней
                        Поясните если не сложно как заставили squid использовать полученный keytab
                        Вариант с прописывание в стартовом скрипте squid.sh естественно не подошел, ибо затирает система автоматом при перезапуске squid3 из веб-интерфейса)

                        У самого домен на win2003
                        Сейчас с клиентского ПК (IE8,Firefox 29, в прокси FQDN:3128) пытаюсь зайти в Инет, squid кидает ошибку
                        "Доступ к кэшу запрещен"
                        В логах squid3 cache:
                        authenticateNegotiateHandleReply: Error validating user via Negotiate
                        Error returned 'BH gss_acquire_cred() failed

                        (настройки в основном брал тут
                        http://www.k-max.name/linux/avtorizaciya-autentifikaciya-squid/ )

                        В pfsense 2.1 в настройках squid3 прописал свои опции в Custom Options:

                        auth_param negotiate program /usr/local/libexec/squid/squid_kerb_auth -s HTTP/gate.mydomen.lan@MYDOMEN.LAN
                        (пробовал просто с параметров -d)

                        auth_param negotiate children 10
                        auth_param negotiate keep_alive on
                        acl lan proxy_auth REQUIRED
                        http_access allow lan

                        Изначально ставил пакет heimdal (установился без вопросов)
                        ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.3-release/Latest/

                        Мой /etc/krb5.conf

                        
                        [logging]
                        default = FILE:/var/log/krb5libs.log
                        kdc = FILE:/var/log/krb5kdc.log
                        admin_server = FILE:/var/log/kadmind.log
                        
                        [libdefaults]
                                default_realm = MYDOMEN.LAN
                        	 default_keytab_name = /usr/local/etc/squid/gatehttp.keytab
                        [realms]
                                DOMAIN.LOCAL = {
                                        kdc = backup.mydomen.lan
                                }[libdefaults]
                                default_realm = MYDOMEN.LAN
                        [realms]
                                DOMAIN.LOCAL = {
                                        kdc = backup.mydomen.lan
                                }
                        
                        
                        1 Reply Last reply Reply Quote 0
                        • werterW
                          werter
                          last edited by

                          В Гугл - Error returned 'BH gss_acquire_cred() failed

                          http://www.lissyara.su/?id=2101 - настройка

                          authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed: Unspecified GSS failure. Minor code may provide more information. Permission denied'
                          Неверно назначены права на keytab, сквид его не может прочитать.

                          1 Reply Last reply Reply Quote 0
                          • M
                            miemshik
                            last edited by

                            Спасибо, werter
                            Но у меня ошибка другая

                            Проверка работы Kerberos для авторизации через keytab файл проходит успешно

                            
                            kinit -k HTTP/gate.mydomen.lan
                            klist
                            Credentials cache: FILE:/tmp/krb5cc_0
                                    Principal: HTTP/gate.mydomen.lan@MYDOMEN.LAN
                            
                              Issued           Expires          Principal
                            Jun  4 09:36:02  Jun  4 19:36:02  krbtgt/MYDOMEN.LAN@MYDOMEN.LAN
                            kdestroy
                            
                            

                            Права на keytab файл выставлены

                            ls -l gatehttp.keytab
                            -rw–-----  1 proxy  proxy  71 Jun  4 08:02 gatehttp.keytab

                            Сейчас при попытке с клиентского ПК открыть браузер ошибка
                            Доступ к кэшу запрещён

                            В логе cache.log

                            dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10"
                            dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10"
                            2014/06/04 09:24:54| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed:  No credentials were supplied, or the credentials were unavailable or inaccessible.. unknown mech-code 0 for mech unknown'

                            Я так понимаю все же не хватает библиотек ? (не нашел где их взять)
                            Все же не могу понять, как в pfsense заставить squid увидеть keytab файл

                            На некоторых форумах советуют добавить
                            KRB5_KTNAME=/dir/to/HTTP.keytab
                            export KRB5_KTNAME
                            в скрипт запуска squid, но вопрос как добавить, если squid.sh генерируется системой

                            Есть ли мысли?
                            Заранее благодарен

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

                              https://forums.freebsd.org/viewtopic.php?f=7&t=46530

                              ldconfig -r
                              ….
                              lgssapi_krb5.10 => /usr/lib/libgssapi_krb5.so.10
                              lgssapi_spnego.10 => /usr/lib/libgssapi_spnego.so.10
                              ....

                              1 Reply Last reply Reply Quote 0
                              • M
                                miemshik
                                last edited by

                                Спасибо, werter

                                Но, пока не понятно, как все же установить необходимые библиотеки в Pfsense
                                Изначально установил пакет heimdal-1.4_1 из коллекции пакетов для FreeBSD 8.3

                                
                                ldconfig -r | grep libgssapi_krb5.so
                                130:-lgssapi_krb5.2 => /usr/local/lib/libgssapi_krb5.so.2
                                
                                ldconfig -r | grep libgssapi_spnego.so
                                - пусто -
                                
                                

                                Не судите строго, pfsense (как и FreeBSD) осваиваю недавно

                                1 Reply Last reply Reply Quote 0
                                • M
                                  miemshik
                                  last edited by

                                  Спасибо, werter за помощь
                                  В проблеме разобрался, все заработало как надо

                                  В логе cache.log
                                  dlopen: Cannot open "/usr/lib/libgssapi_krb5.so.10"
                                  dlopen: Cannot open "/usr/lib/libgssapi_spnego.so.10"
                                  2014/06/04 09:24:54| authenticateNegotiateHandleReply: Error validating user via Negotiate. Error returned 'BH gss_acquire_cred() failed:  No credentials were supplied, or the credentials were unavailable or inaccessible.. unknown mech-code 0 for mech unknown'

                                  Скачал необходимые библиотеки

                                  
                                  cd /usr/lib/
                                  fetch ftp://ftp.freebsd.tsc.ru/pub/FreeBSD/releases/i386/9.0-RELEASE/usr/lib/libgssapi_spnego.so.10
                                  fetch ftp://ftp.freebsd.tsc.ru/pub/FreeBSD/releases/i386/9.0-RELEASE/usr/lib/libgssapi_krb5.so.10
                                  
                                  

                                  Никаких переменных в скрипт запуска squid3 (squid.sh, squid.inc) прописывать не пришлось, все благополучно опознал

                                  
                                  1402399039.444  70618 <ip адрес="">TCP_MISS/200 4685 CONNECT forum.pfsense.org:443 user@MYDOMEN.LAN DIRECT/208.123.73.68</ip> 
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • werterW
                                    werter
                                    last edited by

                                    Не за что.
                                    Т.с. общее дело делаем и решение пригодится не только мне и вам.

                                    1 Reply Last reply Reply Quote 0
                                    • P
                                      pfs-beginner
                                      last edited by

                                      После мытарств с pfSense понял, что нужной мне гибкости Squid я на этой платформе не получу (больше сил уйдёт на борьбу с авто-генерируемыми конфигами). Перебрался на Linux и настроил всё как мне надо.
                                      Если интересно, полное пошаговое описание из 10 частей настройки опубликовал в блоге.
                                      Ссылка на первую часть:
                                      http://blog.it-kb.ru/2014/06/16/forward-proxy-squid-3-3-on-ubuntu-server-14-04-lts-part-1-install-os-on-hyper-v-generation-2-vm/

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