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.
    • 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.