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

    PFSENSE: Squid + ADGroups + HTTPS

    Russian
    7
    114
    15.2k
    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.
    • F
      flamel
      last edited by flamel

      4f9adef8-c804-43b4-a05e-373c005b7f8f-image.png
      5f93b9d5-4c08-47eb-b4e0-6c7db22607fc-image.png
      Лупбэк выбираем для lightsquid, но о нём в другой раз (возможно).
      Отключаем Transparent HTTP Proxy
      Отключаем HTTPS/SSL Interception если включен (для фильтрации HTTPS трафика данная галочка не нужна).
      Затем идём на сервак с AD и формируем keytab файл.
      Для этого создаём доменную учетную запись для нашего прокси, ЕСЛИ У ВАС СЛОЖНАЯ СТРУКТУРА ДОМЕНА используйте ПРОСТОЙ пароль! Просто набор букв, без цифр, спецсимволов и заглавных(последнее не точно).
      Тут очень важен вопрос шифрования, у меня AES128 и AES256 не заработал(спасибо домену .local и еще очень многим факторам кривизны), но есть подтверждения что данная настройка работает.
      Но! Если решите использовать нормальное шифрование не забудьте включить его в настройках учетной записи в AD.
      5f468c07-5118-4bc0-b562-973e0271f501-image.png
      Сам кейтаб формируется командой ktpass, советую подробнее почитать что да как, прежде чем использовать её, но как пример:

      # ktpass -princ HTTP/pfsense.domain.local@DOMAIN.LOCAL -mapuser admin_squid -pass 3EYldza1sR -**crypto All** -ptype KRB5_NT_PRINCIPAL -out C:\keytabs\PROXY.keytab
      

      где crypto All не забудьте подставить своё! Я же использовал простое шифрование.

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

      Переходим в терминальный режим подключившись по SSH или напрямую и там редактируем /etc/krb5.conf согласно настройкам нашего домена (если его нет - создаём). Пример:
      fe16d5e3-d6df-4e62-b07f-0a390b1cbd41-image.png
      Желательно проверить работу kerberos с помощью kinit.
      Далее самое интересное, возвращаемся в pfsense, открываем squid и в самом низу открываем расширенные опции (перед этим во вкладке аутентификации главное отключить всё).
      В поле Custom Options (Before Auth) вносим следующее:
      bed5b9aa-f9a6-4f22-80b1-87c749f386f0-image.png

      И да, кейтаб используемый мной для аутентификации валяется именно по тому пути, не помню почему так, но вроде как оттуда хелперу легче его брать.
      Это и есть наша аутентификация, уже сейчас можно проверить её работу, при попытке идти в интернет пользователю домена должно пускать, а если локальный пользователь то запрашивать логин\пароль.
      SquidGuard:
      Устанавливаем также стандартным менеджером пакетов, здесь мы настроим наши группы доступа, вайт и блек листы и тд.
      В настройка SquidGuard, в блоке LDAP Options вводим данные нашей учетной записи используемой для керберос аутентификации в следующем виде:

      CN=sg,OU=service-accounts,DC=domain,DC=local
      

      В некоторых случаях данный блок надо заключить либо в одинарные, либо в двойные скобочки:

      'CN=sg,OU=service-accounts,DC=domain,DC=local'
      "CN=sg,OU=service-accounts,DC=domain,DC=local"
      

      Не могу сказать от чего это зависит, но в некоторых случаях решает проблемы, в моём работало и без скобочек.
      Обязательно ставим эти галочки:
      fce1ce90-77fa-4e15-96f5-394b145b59ee-image.png
      т.к вся эта система очень чувствительна к регистрам и тд.
      Далее переходим в раздел Groups ACL и в поле Client (source) формируем лдап запрос по которому будет производится поиск принадлежности пользователя к группе, как пример:
      a8f11fbb-16b0-4954-b28f-20c289b53b5c-image.png
      Здесь же настраиваем target rules лист и радуемся жизни - должно всё работать!)
      Ах да, чуть не забыл:
      7ad9cae9-6bbc-42aa-a2e5-5e75dcb48c8c-image.png
      Если что то забыл-прошу дополнить, отредактируем, надеюсь данная статья кому то поможет в настройке и реализации прокси)
      Извиняюсь за местами плохое качество текста, боролся с антиспамом akismet.com, будь он проклят.

      A 1 Reply Last reply Reply Quote 4
      • werterW
        werter
        last edited by werter

        Добрый

        @flamel
        Спасибо за труд )

        Для этого создаём доменную учетную запись для нашего прокси,

        Я бы только на этой учетке поставил галку на "Без предварительной проверки подлинности Kerberos".

        В некоторых случаях данный блок надо заключить либо в одинарные, либо в двойные скобочки:

        Предположу ,что кавычки нужны, если есть пробелы или НЕлатинские символы.

        Ошибка? В строке "auth_param negotiate program ..." указано "-k /usr/local/etc/squid/squid.keytab". Однако, выше в /etc/krb5.conf указано "default_keytab_name /etc/krb5.keytab". И согласно manpages.ubuntu.com/manpages/bionic/en/man8/negotiate_kerberos_auth.8.html

        -k Keytab-Name
        Provide Kerberos Keytab Name (Default: /etc/krb5.keytab)

        Ах да, чуть не забыл:

        Это можно прямо в ГУИ сквида делать? Есть ли пункт для таких случаев (что-то типа Custom Options (Before Start))? Сквид же правленное руками в его конфигах после ребута затирает ? Проверяли ребутом пф?
        Разобрался )
        manpages.ubuntu.com/manpages/bionic/en/man8/negotiate_kerberos_auth.8.html

        Kerberos can keep a replay cache to detect the reuse of Kerberos tickets (usually only
        possible in a 5 minute window) . If squid is under high load with Negotiate(Kerberos)
        proxy authentication requests the replay cache checks can create high CPU load. If the
        environment does not require high security the replay cache check can be disabled for MIT
        based Kerberos implementations by adding the below to the startup script or use the -t none option.

        KRB5RCACHETYPE=none export KRB5RCACHETYPE

        Т.е. или пользовать "костыль" в виде ручной правки squid.inc с добавлением строки с "KRB5RCACHETYPE=none export KRB5RCACHETYPE" или добавить в конец "auth_param negotiate program /path/to/negotiate_kerberos_auth" параметр "-t none". Что у вас и сделано.
        Смело можно удалять добавленную руками строку в squid.inc, перезагружать squid и проверять.

        На время теста можно добавить в "auth_param negotiate program /path/to/negotiate_kerberos_auth" параметр -d
        interface31.ru/tech_it/2015/06/nastraivaem-squid-dlya-raboty-s-active-directory-chast-2-kerberos-autentifikaciya.html

        Зы. Просьба, вместо скринов (части конфигов) пользовать текст.

        F 1 Reply Last reply Reply Quote 0
        • F
          flamel @werter
          last edited by

          @werter я полностью не разобрался с -t none и правкой записи в стартовом скрипте, но вроде правка записи в стартовом скрипте не работает именно на ПФсенс, мол где то это исправляется, сейчас уже не вспомню.
          Скрины были использованы потому что местный антиспам блокировал все :( пропустил только так

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

            Добрый
            @flamel

            я полностью не разобрался с -t none и правкой записи в стартовом скрипте

            Объяснение и решение выше. Пробуйте.

            Скрины были использованы потому что местный антиспам блокировал все :( пропустил только так

            Пользуйте тэг "Code":

            40627d18-81de-435e-8cab-da6990ea4c71-image.png

            Пример:

            ldapusersearch ..
            
            F 1 Reply Last reply Reply Quote 0
            • F
              flamel @werter
              last edited by

              @werter в том то и дело) я его использовал, а все равно, я скрины делал с предпросмотра

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

                This post is deleted!
                F 1 Reply Last reply Reply Quote 0
                • F
                  flamel @werter
                  last edited by

                  @werter 😅 я не знаю как это работает, но у меня задница горела долго, потому что после каждого вырезанного куска кода и вставленного вместо него скриншота я пробовал опубликовать запись и каждый раз антиспам меня имел)

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

                    This post is deleted!
                    F 1 Reply Last reply Reply Quote 0
                    • F
                      flamel @werter
                      last edited by

                      @werter это именно на сайте на этом встроенный антиспам как я понял, акисмет или как то так, возможно он ещё к рейтингу привязан какому нибудь

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

                        @flamel
                        Рейтинг? Хм, возможно )

                        F 1 Reply Last reply Reply Quote 0
                        • F
                          flamel @werter
                          last edited by

                          @werter Хотел допилить статью и включить туда Lightsquid для мониторинга трафика и тд по пользователям, к тому же вернули возможность ковырять это все и уже с 50 пользователей начали ходить через пфсенс, как выяснилось что lightsquid в пакетах есть, запущен, sqstat открывается, а lightsquid вообще не открывается, не по порту, не через http://ip/lightsquid/, есть где нибудь внятные инструкции или рекомендации? Уже вроде открыл порт для lightsquid, но толку нет, по порту просто ответ не приходит, а по ссылке выше 403 ошибка

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

                            @flamel
                            httpS://ip/lightsquid/ ?

                            lightsquid + pfsense --> гугл :
                            https://www.netgate.com/resources/videos/squid-squidguard-and-lightsquid-on-pfsense-24.html
                            https://shop.nativepc.ru/content/26--lightsquid-
                            https://1cloud.ru/help/bsd/nastroyka-proksi-servera-pfsense

                            F 1 Reply Last reply Reply Quote 0
                            • F
                              flamel @werter
                              last edited by

                              @werter lightsquid живёт на wan или на lan?
                              Видеоролик вообще крутой, он его просто включает и сразу он у него работает, браво😅 завтра попробую по одной из инструкций что то сделать, если получится - дополню инструкцию и пойду смотреть почему clamav не запускается)

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

                                @flamel

                                Не, ну еси вам надо весь инет своим лайтсквидом "обслуживать" - тада и на ВАН тоже ) Все же надо думать немного.

                                LAN + loopback (если выбирается)

                                ClamAV? Сразу НЕТ. Выкл. и даже не думайте его пользовать. Толку-нуль, а проблем типа "апачимуминяниработаить" - куча.

                                F 1 Reply Last reply Reply Quote 0
                                • F
                                  flamel @werter
                                  last edited by

                                  @werter у меня и Лан и Ван просто в локале торчат) в интернет не они смотрят

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

                                    @flamel
                                    Тогда и WAN у вас НЕ WAN в прямом понимании этой аббревиатуры.

                                    1 Reply Last reply Reply Quote 0
                                    • milleniumM
                                      millenium
                                      last edited by

                                      Дошел до первой проблемы!

                                      Проверка kinit: kinit my.user@MYDOMAIN.LOCAL

                                      выдает: kinit: krb5_init_context failed to parse configuration file

                                      куда смотреть?

                                      F 2 Replies Last reply Reply Quote 0
                                      • F
                                        flamel @millenium
                                        last edited by

                                        @millenium по моему такая ошибка возникает если крб файл неправильно сконфигурирован, попробуйте другие способы создания и передачи файла

                                        1 Reply Last reply Reply Quote 0
                                        • F
                                          flamel @millenium
                                          last edited by

                                          @millenium я бы ещё крб5.конф глянул, там синтаксис должен соблюдаться и синхронизацию нтп проверить стоит. А также пингануть контроллер домена

                                          milleniumM 1 Reply Last reply Reply Quote 0
                                          • milleniumM
                                            millenium @flamel
                                            last edited by millenium

                                            @flamel КД пингуется, по имени, все ок.

                                            какие еще способы конфигурирования krb5 есть?

                                            и в какую дерикторию его лучше класть?

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