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.
    • A
      andrey1039 @werter
      last edited by

      @werter said in PFSENSE: Squid + ADGroups + HTTPS:

      userPrincipalName

      Пробовал и так, и так, все-равно не находит- пишет в браузере:
      Client address: 192.168.1.2
      Client name: test.buh.local
      Client user: admin
      Client group: default
      Target group: none
      URL: http://ya.ru/

      Настройка:
      ldapusersearch ldap://192.168.1.2:3268/DC=buh,DC=local?userPrincipalName?sub?(&(sAMAccountName=%s)(memberOf=CN=zakupki%2cCN=Users%2cDC=buh%2cDC=local))

      A 2 Replies Last reply Reply Quote 0
      • A
        andrey1039 @andrey1039
        last edited by

        This post is deleted!
        1 Reply Last reply Reply Quote 0
        • A
          andrey1039 @andrey1039
          last edited by andrey1039

          В логе пишет:
          2021-11-03 23:01:35 [1292] (squidGuard): ldap_search_ext_s failed: Operations error (params: DC=buh,DC=local, 2, (&(sAMAccountName=admin)(memberOf=CN=zakupki,CN=Users,DC=buh,DC=local)), sAMAccountName)
          Т.е. еррор= значит, что он не может найти юзера в этой группе?

          werterW A 2 Replies Last reply Reply Quote 0
          • werterW
            werter @andrey1039
            last edited by

            @andrey1039
            У вас домен BUH.LOCAL наз-ся? Не firma.local хотя бы?
            Жесть (

            A 1 Reply Last reply Reply Quote 0
            • A
              andrey1039 @werter
              last edited by

              @werter это для примера. Называется он по-другому, есс-но. По самому вопросу есть какие-нибудь мысли?

              1 Reply Last reply Reply Quote 0
              • A
                andrey1039 @andrey1039
                last edited by

                В общем.

                1. Идем на контроллер домена, запускаем dsquery user -name linux1 , где linux1 - юзер для подключения к АД. Видим ответ: CN=linux1,CN=Users,DC=buh,DC=local
                  В ПФ идем в СквидГвард, в поле "LDAP Options" пишем cn=linux1,cn=Users,dc=buh,DC=local - т.е. ту строку, что выдал нам контроллер домена, в поле LDAP DN Password - пароль этого юзера.
                2. Снова идем на контроллер, даем команду dsquery group -name internet_allow , где internet_allow - группа, которой разрешаем ходить в инет, нам выдает:
                  CN=internet_allow,OU=proxy,OU=Services,DC=nv,DC=local
                  В ПФ в СквидГварде идем в Group ACL, идем в редактирование(или добавление, если там нет ничего) и в поле Client (source) пишем:
                  ldapusersearch ldap://1.2.3.4:3268/DC=buh,DC=local?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=internet_allow%2cOU=proxy%2cOU=Services%2cDC=buh%2cDC=local))

                1.2.3.4 - это адрес контроллера домена.

                werterW 1 Reply Last reply Reply Quote 1
                • werterW
                  werter @andrey1039
                  last edited by

                  Добрый.
                  @andrey1039
                  Спасибо )

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    andrey1039 @werter
                    last edited by

                    Нужно сделать, чтобы на определенные адреса/сайты доступ шел мимо прокси, т.е. чтобы сквид вообще "не принимал участия" в доступе на такие сайт. Интересно, можно ли это сделать через Pfsense ?

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

                      @andrey1039 Можно, на хабре вроде описывал как

                      acl nonauth dstdomain "/etc/squid/nonauth.txt" — сообщаем сквиду о списке доступа nonauth в котором содержатся домены назначения, к которым всегда будет разрешен доступ всем. Сам файл создаем, а внутрь него вписываем домены в формате
                      
                      .whatsapp.com
                      .whatsapp.net
                      
                      
                      Whatsapp не зря используется как пример — он очень привередлив к прокси с аутентификацией и не будет работать если его не разрешить до аутентификации.
                      
                      1 Reply Last reply Reply Quote 0
                      • viktor_gV
                        viktor_g Netgate @andrey1039
                        last edited by

                        @andrey1039 said in PFSENSE: Squid + ADGroups + HTTPS:

                        Нужно сделать, чтобы на определенные адреса/сайты доступ шел мимо прокси, т.е. чтобы сквид вообще "не принимал участия" в доступе на такие сайт. Интересно, можно ли это сделать через Pfsense ?

                        Если работает в transparent режиме, то создаёте алиас с сайтами (главное чтобы IP адреса всегда возвращались одни и те же) и добавляете его в поле "Bypass Proxy for These Destination IPs"

                        1 Reply Last reply Reply Quote 0
                        • A
                          andrey1039
                          last edited by

                          @flamel у меня заполнены поля в разделе "SSL Man In the Middle Filtering" - т.е. SSL-трафик тоже анализируется. Я пробовал добавлять строку acl nonauth dstdomain "/etc/squid/nonauth.txt" - ничего не изменилось, на некоторые сайты все-равно не пускает. Например, у меня в nonauth.txt есть строчка .eias.ru , но на сайт https://web.eias.ru/ не пускает, приходится добавлять его в исключения в IE и потом открывать туда доступ на шлюзе.
                          На "обычном" сквиде на FreeBSD такая же проблема, кстати. Там тоже приходилось доступ на такие сайты делать в обход прокси.

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

                            Добрый.
                            @andrey1039

                            у меня заполнены поля в разделе "SSL Man In the Middle Filtering"

                            Скрины того, как настроено покажите, пож-та.

                            A 1 Reply Last reply Reply Quote 0
                            • A
                              andrey1039 @werter
                              last edited by

                              @werter Интересно то, что сквид не то чтобы не пускает- он почему-то не может найти этот сайт.(см ниже). И почему он пишет "Невозможно определить IP-адрес по имени узла «http»", а не web.eias.ru ?
                              Пишет:
                              При получении URL https://http/* произошла следующая ошибка
                              Невозможно определить IP-адрес по имени узла «http»
                              Сервер DNS ответил:
                              Server Failure: The name server was unable to process this query.
                              Это означает, что кэш не смог распознать имя узла в URL. Проверьте адрес на корректность.

                              Скрин настроек прицепил.
                              ![alt text](vot.jpg image url)

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

                                @andrey1039

                                SSL Intercept Interfaces - почему нет ЛАН? У вас пф с ОДНИМ интерфейсом?

                                Попробуйте так

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  andrey1039 @werter
                                  last edited by

                                  @werter да, с одним. По вашей ссылке- попробую. Но у меня есть подозрение, что я что-то неправильно настроил.
                                  Пересмотрел еще раз настройки и кое-что поменял в соответствии с инструкцией и логикой.
                                  У СквидГвард есть вкладка Target categories. Если я там ничего не заполняю- то браузер пишет: "Невозможно определить IP-адрес по имени узла «http»"
                                  Если в поле Regular Expression ставлю точку(т.е. подразумевается, что это будет любой сайт) - то пускает любого- независимо от того- есть он в группе или нет.
                                  Вопрос: что нужно заполнять на вкладке Target categories, чтобы он пускал на ВСЕ сайты всех, кто есть в нужной группе?

                                  A werterW 2 Replies Last reply Reply Quote 0
                                  • A
                                    andrey1039 @andrey1039
                                    last edited by

                                    @werter да, с одним.
                                    Итак, мои настройки.

                                    1. СквидГвард, вкладка Target categories, создаем категорию, ничего не заполняем кроме Redirect mode- там выбираем ext url redirect, в поле Перенаправление пишем http://5.6.7.8:82/ (что это значит- будет ниже
                                    2. На вкладке Groups ACL у нас уже заполнено поле Client (source), кроме этого в Redirect mode выбираем Нет. Здесь же щелкаем по плюсу напротив Target Rules List и везде выбираем allow
                                    3. Идем в Common ACL, щелкаем по плюсу напротив Target Rules List и везде выбираем allow. Redirect mode и Redirect info заполняем так же, как и в п.1

                                    Кстати, то, что выбираем Target Rules List "allow" для всех- мне кажется нелогичным и вроде как после этого он вообще должен всех пускать- и кто входит в нужную группу, и кто не входит. Но это не так- я проверял.
                                    По поводу http://5.6.7.8:82/. На pfsense(в нашем примере у него адрес 5.6.7.8) установлен nginx- это web-сервер типа апача, но проще, настройки лежат в /usr/local/etc/nginx/nginx.conf
                                    Так что поднимаем на нем сайт на порту 82(можно и на другом), создаем страницу и пишем там текст, например, "Вам низзя в инет, пшел отседова" и со всякими картинками. Если юзеру нельзя в инет- его перекидывает на эту страницу.
                                    Заставить сквид+сквидгвард выдавать свои сообщения об ошибке у меня не получилось. Как мне кажется, тут получается так: сквид отправляет сквидгварду "на согласование" юрл, а если тому что-то не понравилось(например, юзеру нельзя в инет)- то он вовзращает сквиду или пустой юрл, или свое сообщение. В 1-ом случае сквид пишет, что не может отобразить страницу, у которой юрл состоит только из букв https/http, а во 2-ом случае- зависит хз от чего и юзер может получить как сообщение об ошибке, так и вообще какие-то непонятные сообщения.
                                    По поводу исключений, я сделал так:
                                    В Custom Options (Before Auth) в самом начале вписал:
                                    acl allow_sites url_regex -i "/usr/local/etc/squid/mimo_squid"
                                    http_access allow allow_sites
                                    и в файле /usr/local/etc/squid/mimo_squid прописал куски сайтов, например gov.ru
                                    т.е. используются регулярные выражения.

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

                                      @andrey1039 said in PFSENSE: Squid + ADGroups + HTTPS:

                                      Если в поле Regular Expression ставлю точку(т.е. подразумевается, что это будет любой сайт)

                                      Сквид пользуют перловский (?) синтаксис регулярок. Тогда все сайты будет .* (точка + звездочка). А просто тчк - это любой ОДИН символ. Можете проверить?

                                      Маски:
                                      .   - одиночный символ
                                      *  - неограниченное повторение последнего символа 
                                      .* - соотв любая последовательность
                                      \. - точка
                                      \\ - один слеш
                                      ^ - от начала строки
                                      $ - конец строки
                                      () - скобки ограничивают токен
                                      [] - скобки допустимые символы
                                      |  - знак или
                                      
                                      http:\\\\\.*\.mail\.ru.* - соответствует http:\\*.mail.ru*
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        andrey1039 @andrey1039
                                        last edited by

                                        В общем, вылезла еще одна проблема. Некоторые сайты не хотят открываться при таких настройках, потому что в этом случае трафик сначала расшифровывается, а потом шифруется сертификатом сквида. В итоге получается такая вот ошибка(см ниже):
                                        Что бы такое дописать, чтобы эти сайты просто пропускались- без шифрования/расшифрования?

                                        При получении URL https://frprf.ru/* произошла следующая ошибка.

                                        Не удалось установить безопасное соединение с 31.41.246.25

                                        The system returned:

                                        (92) Protocol error (TLS code: X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY)

                                        SSL Certficate error: certificate issuer (CA) not known: /C=US/O=DigiCert Inc/OU=www.digicert.com/CN=GeoTrust RSA CA 2018

                                        Для выполнения Вашего запроса этот кэш и удаленный узел не смогли согласовать взаимоприемлемые параметры безопасности. Возможно, удаленный узел не поддерживает безопасные соединения или кэш не удовлетворён удостоверением безопасности узла.

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

                                          @andrey1039
                                          Добавьте в исключения. В чем проблема?

                                          A 1 Reply Last reply Reply Quote 0
                                          • A
                                            andrey1039 @werter
                                            last edited by

                                            @werter вы имеете в виду- в исключения в браузере? Это очень неудобно- надо каждый сайт прописывать в политиках, потом ждать, пока применятся, плюс на роутере делать прямой доступ к этому сайту. Вот если бы в самом сквиде где-то можно было прописывать..

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