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

    Squid + ad + kerberos

    Scheduled Pinned Locked Moved Russian
    16 Posts 3 Posters 2.8k 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.
    • R
      Rarog
      last edited by

      Всем привет! pfsense 2.4.2_1
      Настраиваю сквид на работу с АД. Прописал сквид в ДНС, создал учётку, настроил krb5.conf, проверил - получил билет. Создал принципиал, keytab, скопировал keytab в /usr/local/etc/squid/. В настройках сквид: Custom Options (Before Auth), добавил правила:

      auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -d -k /usr/local/etc/squid/squidproxy.keytab
      auth_param negotiate children 100
      auth_param negotiate keep_alive on
      acl auth proxy_auth REQUIRED
      http_access deny !auth
      http_access allow auth

      krb5.conf:
      [libdefaults]
      default_realm = EXAMPLE.LOCAL
      dns_lookup_realm = true
      dns_lookup_kdc = true

      [realms]
      EXAMPLE.LOCAL = {
      kdc = kdc.example.local
      }

      [domain_realm]
      .example.local = EXAMPLE.LOCAL
      example.local = EXAMPLE.LOCAL

      [logging]
      kdc = FILE:/var/log/kdc.log
      Default = FILE:/var/log/krb5lib.log

      При попытке зайти на сайт, предлагает ввести логин пароль, авторизация не проходит. В windows 7 адрес сквида прописан как FQDN 3128

      В логах:
      negotiate_kerberos_auth: ERROR: gss_accept_sec_context() failed: Unspecified GSS failure.  Minor code may provide more information. Request ticket server HTTP/proxy.example.local@EXAMPLE.LOCAL not found in keytab (ticket kvno 3)

      Что ему не нравится в keytab? Нужна авторизация по Kerberos, т.к. по NTLM лог засоряется сообщениями TCP_DENIED/407 и сайт теряет подключение.

      wiki.squid-cache.org/ConfigExamples/Authenticate/Ntlm
      Note that when using NTLM authentication,you will see two "TCP_DENIED/407" entries in access.log for every request. This is due to the challenge-response process of NTLM.

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

        Добрый.
        Поиск по "negotiate_kerberos_auth: ERROR: gss_accept_sec_context() failed: Unspecified GSS failure" должен помочь.

        1 Reply Last reply Reply Quote 0
        • R
          Rarog
          last edited by

          Я пишу сюда, потому что гугл не помог(

          1 Reply Last reply Reply Quote 0
          • R
            Rarog
            last edited by

            Возможно, не полностью создался keytab. Размер 382 байта. Может кто подскажет, почему так происходит?

            ktpass -out C:\squidproxy.keytab -princ HTTP/proxy.example.local@EXAMPLE.local -mapUser squid@EXAMPLE.LOCAL -crypto AES256-SHA1 -pass 'password' -ptype KRB5_NT_PRINCIPAL

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

              Добрый.
              Попробуйте в англоветке задать вопрос. Хуже точно не будет.

              1 Reply Last reply Reply Quote 0
              • G
                gring76
                last edited by

                Pfsense случаем не в виртуалке?

                1 Reply Last reply Reply Quote 0
                • R
                  Rarog
                  last edited by

                  1 pfsense в виртуалке и 1 железный.
                  Проблему с кейтабом решил. Прокси работает с ad через kerberos, но внезапно сайт оказывается недоступен - Connection refused - 61 или 111. Помогает F5, но не всегда. Эта ошибка появляется со стандартными настройками, без авторизации , а также если настроить любой тип авторизации. Периодичность несколько раз в час, чем больше пользователей, тем чаще. Позже посмотрю wireshark'ом, в момент ошибки.
                  Сейчас пробую с доп. параметрами:

                  cache deny all
                  balance_on_multiple_ip on
                  ignore_unknown_nameservers on
                  half_closed_clients off

                  Если не получится, буду собирать 4 -ую версию.

                  Ещё не до конца понял какой тип шифрования указывать в ktpass и в krb5.conf. Если везде ставлю AES256-SHA1, то авторизация не работает. Когда ставлю -crypto all, а в krb5.conf удаляю строки с шифрованием, тогда работает. При этом в настройках пользователя стоит использование AES128-SHA1 и AES256-SHA1.

                  1 Reply Last reply Reply Quote 0
                  • R
                    Rarog
                    last edited by

                    Kerberos сильно грузит процессор. Куда я должен скопировать строку “KRB5RCACHETYPE=none export KRB5RCACHETYPE” в файле /usr/local/pkg/squid.inc, чтобы отключить кэш ?

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

                      Добрый.
                      Никуда. Файл /usr/local/pkg/squid.inc после перезагрузки вернется к первоначальному состоянию.

                      1 Reply Last reply Reply Quote 0
                      • R
                        Rarog
                        last edited by

                        Хитрый дистрибутив. Подскажите какой файл отредактировать, чтобы после перезагрузки сквид запустился без этого кеша.

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

                          Добрый.
                          Правильный дистрибутив. Как и др., к-ые не дают править конф. файлы напрямую.

                          Возможно, в настройках squid прописать свои опции в Custom Options, но вот в каком виде  :'(

                          Попробуйте в англ. ветке задать вопрос - там разрабы сидят.

                          Ps. https://forum.pfsense.org/index.php?topic=66105.0 https://forum.lissyara.su/soft-f3/squid-keshirovanie-kerberos-avtorizacii-t43042.html
                          Как я понял, надо чтобы KRB5RCACHETYPE=none export KRB5RCACHETYPE отработало до запуска squid. Есть такой пакет в пф Shellcmd. Может он поможет.

                          1 Reply Last reply Reply Quote 0
                          • R
                            Rarog
                            last edited by

                            Нашёл в документации хелпера, параметр -t  ^_^/

                            Итоговая запись:
                            auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/proxy.keytab -t none

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

                              Супер  ;) Это в Custom Options сквида вписывать ?

                              Ps. А я нашел /etc/rc.conf, куда вносить то, что необходимо запускать при старте pfsense.

                              1 Reply Last reply Reply Quote 0
                              • R
                                Rarog
                                last edited by

                                В котором написано:

                                THIS FILE DOES NOTHING, DO NOT MAKE CONFIG CHANGES HERE

                                Позже напишу инструкцию.

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

                                  Попробуйте перезагрузиться. И проверить этот файл на наличие вашей правки.

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

                                    https://fakirss.wordpress.com/2017/05/04/авторизация-в-squid-через-kerberos-на-pfsense/

                                    На вкладке General нажимаем на кнопку Show Advanced Options и в поле Custom Options (Before Auth) прописываем:

                                    auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/proxy.keytab -t none
                                    …

                                    P.s. https://doc.pfsense.org/index.php/2.4.3_New_Features_and_Changes

                                    Added support for custom shutdown scripts in /usr/local/etc/rc.d

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