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

    pfSense как шлюз для нескольких компаний

    Scheduled Pinned Locked Moved Russian
    12 Posts 3 Posters 1.3k 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.
    • X
      X3PPY
      last edited by X3PPY

      pfSense: 2.4.5-RELEASE-p1 (amd64)
      squid: 0.4.44_30 (squid -v: Squid Cache: Version 4.10)

      viktor_g, спасибо!

      @viktor_g said in pfSense как шлюз для нескольких компаний:

      В squid'е есть директива tcp_outgoing_address вот с помощью неё и можно указать исходящий адрес для конкретного адреса

      Это решение работает! Спасибо!
      В Services -> Squid Proxy Server -> General: Show Advanced Options
      Custom Options (Before Auth), нужно указать примерно следующее
      acl ACL_NAME src 192.168.100.1 10.0.3.0/24
      tcp_outgoing_address GATEWAY_IP ACL_NAME

      Осталась проблема с SSL_ERROR_RX_RECORD_TOO_LONG + прозрачный прокси + HTTPS

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

        @X3PPY

        Осталась проблема с SSL_ERROR_RX_RECORD_TOO_LONG + прозрачный прокси + HTTPS

        Попробовать создать исключения для проблемных доменов и пускать их мимо сквида?

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

          @X3PPY

          acl ACL_NAME src 192.168.100.1 10.0.3.0/24

          Может acl ACL_NAME src 10.0.3.0/24 ? Зачем там еще одиночный ip (192.168.100.1) ?

          X 1 Reply Last reply Reply Quote 0
          • X
            X3PPY @werter
            last edited by X3PPY

            @werter said in pfSense как шлюз для нескольких компаний:

            @X3PPY

            Осталась проблема с SSL_ERROR_RX_RECORD_TOO_LONG + прозрачный прокси + HTTPS

            Попробовать создать исключения для проблемных доменов?

            Проблемных доменов может быть много, гугл, ютуб... Никакой подмены сертификатов не происходить (splice all).
            Да и даже если придумать какой-то костыль - почему на тестовой машине все работает...
            Ошибка в логах squid: NONE/409 4101 CONNECT www.youtube.com:443 - HIER_NONE/- text/html
            Попробовал на тестовой машине добавить в прослушку loopback интерфейс, убрать\поставить прозрачный прокси, убрать\поставить SSL MITM. На 5 минут ситуация повторилась - ошибка при открытии youtube. Но спустя короткое время все восстановилось и работает...

            @werter said in pfSense как шлюз для нескольких компаний:

            @X3PPY

            acl ACL_NAME src 192.168.100.1 10.0.3.0/24

            Может acl ACL_NAME src 10.0.3.0/24 ? Зачем там еще одиночный ip (192.168.100.1) ?

            Это просто для примера, вдруг кому-то потребуется. Можно как одиночный ип указывать так и сеть. У меня несколько одиночных ИП указано в конечном итоге - это работает.

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

              Ошибка в логах squid: NONE/409 4101 CONNECT www.youtube.com:443 - HIER_NONE/- text/html

              https://www.linuxquestions.org/questions/linux-server-73/tag_none-409-connect-squid-3-5-20-a-4175620518/
              https://stackoverflow.com/questions/31742245/https-sites-not-working-in-squid-transparent-mode

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

                @X3PPY said in pfSense как шлюз для нескольких компаний:

                GATEWAY_IP

                Подскажите, что там указывать?

                1 Reply Last reply Reply Quote 0
                • X
                  X3PPY @werter
                  last edited by

                  @werter said in pfSense как шлюз для нескольких компаний:

                  @X3PPY said in pfSense как шлюз для нескольких компаний:

                  GATEWAY_IP

                  Подскажите, что там указывать?

                  Перечисляем клиентов: хосты или сети

                  acl acl_wan2 src 192.168.1.5 192.168.1.20 192.168.1.21 192.168.1.23 192.168.1.24

                  Указываем шлюз

                  tcp_outgoing_address 5.255.255.5 acl_wan2

                  где 5.255.255.5 - это внешний IP адрес от провайдера (соединение предварительно настроено)

                  Проблема с прозрачным прокси + HTTPS решена:
                  https://docs.netgate.com/pfsense/en/latest/cache-proxy/squid-troubleshooting.html

                  Перевод от гугла:

                  Сайты не загружаются с соединением / Ошибка 409 в журнале доступа
                  В качестве меры безопасности squid не позволит пользователю подключаться к сайту, имя которого не соответствует его IP-адресу. Это не позволяет клиентам жестко кодировать или изменять ответы DNS, чтобы избежать контроля доступа. Побочным эффектом этого, однако, является то, что сайты, которые используют циклический DNS или другие оптимизации DNS, могут заставить squid непреднамеренно блокировать или сбрасывать соединения с этими сайтами. Журнал доступа squid будет иметь код ошибки 409 (конфликт) по причине разрыва соединения.

                  Это происходит с такими сайтами, как Google или Facebook, когда клиент и squid используют разные источники для DNS и, таким образом, получают разные результаты DNS для одного и того же запроса, потому что результаты рандомизированы. Несмотря на то, что адрес для сервера является действительным, несоответствие заставляет Squid разорвать соединение.

                  Решение состоит в том, чтобы клиенты использовали брандмауэр в качестве своего DNS-сервера, чтобы и Squid, и клиенты использовали один и тот же источник DNS, и результаты соответствовали бы.

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

                    @X3PPY

                    Может и так можно https://www.linux.org.ru/forum/general/14459476 ?
                    Т.е. 'dns_nameservers 127.0.0.1' добавить в Advanced сквида и перезагрузиться?
                    Возможно, еще понадобится принудительно завернуть все днс-запросы клиентов на ip пф для того, чтобы не было конфликта с разрешением имен сквидом и локальными клиентами.

                    X 1 Reply Last reply Reply Quote 0
                    • X
                      X3PPY @werter
                      last edited by

                      @werter said in pfSense как шлюз для нескольких компаний:

                      @X3PPY

                      Может и так можно https://www.linux.org.ru/forum/general/14459476 ?
                      Т.е. 'dns_nameservers 127.0.0.1' добавить в Advanced сквида и перезагрузиться?
                      Возможно, еще понадобится принудительно завернуть все днс-запросы клиентов на ip пф для того, чтобы не было конфликта с разрешением имен сквидом и локальными клиентами.

                      Тут решение просто поднять DNS сервер (он уже стоит по умолчанию в pfSense) и указать его для squid и для клиентов. У меня в сети есть AD и DNS. В настройках pfSense эти днс указаны. Но так же у pfSense есть днс от провайдеров, а у меня их 5. Теоретически можно запретить pfSense использовать днс от провайдера и получать резолв от моих внутренних днс... надо подумать какой вариант лучше...

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

                        Добрый.
                        @X3PPY said in pfSense как шлюз для нескольких компаний:

                        1. У меня в сети есть AD и DNS. В настройках pfSense эти днс указаны.

                        Не указывать ip этих ДНС явно в настройках днс пф-а. Указать их в форвадинге в настройках unbound, т.е. "объяснить" пф, что вот эти домены обслуживают вот эти DNS. Делается прямо в вебке пф.
                        Клиентам же по dhcp выдавать 1-м днс - адрес пф, 2-м и последующими - адреса внутренних dns.

                        1. Но так же у pfSense есть днс от провайдеров, а у меня их 5.

                        Не использую днс провайдеров без особой надобности (напр., для разрешения имен внутренних ресурсов провайдеров, но и это решаемо). Использую я-днс\г-днс etc. Тот же днс от adguard еще и рекламу резать будет.

                        1. Получать резолв от моих внутренних днс

                        Описал в п.1

                        И самое главное - не забыть принудительно завернуть все днс-запросы клиентов на ip пф. Делается одним правилом port forward на LAN https://docs.netgate.com/pfsense/en/latest/dns/redirecting-all-dns-requests-to-pfsense.html

                        Тогда схема сквида с директивой 'dns_nameservers 127.0.0.1' должна заработать.

                        Я бы попробовал реализовать, сделав перед этим обязательный бэкап настроек пф.

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