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

    Squid на 1 интерфейсе. Проблема с firewall

    Scheduled Pinned Locked Moved Russian
    34 Posts 7 Posters 5.5k 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.
    • N
      NetWiz
      last edited by

      Да, прозрачный. Т.е. никак не получится регулировать скорость?

      Тогда удивлен. На одном из интерфейсов есть правило FW разрешающее ВСЁ. Лимитер отрабатывает на отлично… Может быть конечно до http не доходит, забивается разрешенная полоса более наглыми протоколами.

      Еще одно замечание. В самом низу правил FW, если разместить блокирующее правило "всё-всем", то перестает идти http трафик, т.е. работа squid нарушается.

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

        2 NetWiz

        Попробуйте разместить правила limitera-a во Floating Rules, а не на конкретном интерфейсе. И Reset States сделать.

        В самом низу правил FW, если разместить блокирующее правило "всё-всем"

        Это лишнее ибо запрещено всё что не разрешено явно.

        P.s. Покажите скрин правил fw на LAN, WAN.

        1 Reply Last reply Reply Quote 0
        • N
          NetWiz
          last edited by

          Wan2811 это на спутниковый модем, в этой же сети vlan30.

          networks.jpg_thumb
          networks.jpg
          floating.jpg
          floating.jpg_thumb
          wan.jpg
          wan.jpg_thumb
          lan10.jpg
          lan10.jpg_thumb
          lan20.jpg
          lan20.jpg_thumb
          vlan60.jpg
          vlan60.jpg_thumb

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

            Интересно, а зачем обычные физ. интерфейсы вы VLAN-ами обозвали ? Не боитесь запутаться ?

            1 Reply Last reply Reply Quote 0
            • N
              NetWiz
              last edited by

              обозвал чтобы коллегам было понятно. у нас десяток вланов разного назначения. рабочие, развлекательные, технологические, безопасность ну и т.п.

              по em2 приходит в vmware (esx 4.2 к сожалению) транк, в сети там часть вланов разрешена только. что безопасно подключать к интернету.

              1 Reply Last reply Reply Quote 0
              • N
                NetWiz
                last edited by

                прилагаю вывод правил.

                кстати, у меня ругается при старте на Unknown modifier '-' in /usr/local/pkg/squidguard_configurator.inc on line 1848

                [pfctl -s rules.txt](/public/imported_attachments/1/pfctl -s rules.txt)

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

                  esx 4.2 к сожалению

                  В чем проблема проапгрейдится до esxi 5-ой ветки ?

                  1 Reply Last reply Reply Quote 0
                  • N
                    NetWiz
                    last edited by

                    Про esxi - нет возможности пока, осенью перейдем. Крутится много всего, остановить нет возможности.

                    Отключил пока прозрачный режим сквида. Сразу на графиках видно работу лимитеров стало. Сквид падает после старта через несколько секунд, ушел смотреть логи.

                    1 Reply Last reply Reply Quote 0
                    • N
                      NetWiz
                      last edited by

                      Сквид не останавливается никак. Постоянно рестартует.

                      После удаления пакета, после перезапуска системы, пытаюсь удалить кеш-директорию командой

                      rm -f  -r "cache"
                      

                      Папка 45 гигабайт, уже пару часов удаляет. Мне кажется проблема с рейдом5. Ранее у нас помер рейд1 на этой же машине.

                      1 Reply Last reply Reply Quote 0
                      • X
                        xoma922
                        last edited by

                        @werter:

                        Рисуйте схему вашей сети с адресацией ибо много неясного. И укажите на ней чего хотите добиться.

                        Локальная сеть(10.74.59.0/24) => pfSense (10.74.59.90/24) => роутер(10.74.59.1/24) => интернет

                        Есть один работающий Ethernet порт, к которому подключен кабель. Есть ещё 2 свободных. Шлюзом по умолчанию для всей сети указан pfSense(10.74.59.90/24). Трафик должен ходить через него, чтобы squid мог прозрачно обрабатывать трафик, шлюз в интернет находится в той же сети(10.74.59.1/24), что и pfSense с настроенным squid+squidguard+lightsquid. Мне нужно, чтобы squid работал как надо. Если выключить firewall, трафик перестаёт блокироваться сквидом(пускает везде). Если включить firewall, блокируется куча трафика уже фаерволом(при настроенных разрешающих правилах на всё), что делает невозможным нормальное использование интернета. Нужно выяснить почему так происходит и как это исправить. Скрины настроек и вывод pfctl -s rules уже выкладывал в прошлых постах этой темы.

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

                          @xoma922:

                          Локальная сеть(10.74.59.0/24) => pfSense (10.74.59.90/24) => роутер(10.74.59.1/24) => интернет

                          У вас асимметричная маршрутизация в этой схеме.

                          Прямой трафик: Локальная сеть => pfSense  => роутер => интернет
                          Обратный трафик: интернет => роутер => Локальная сеть, т. е. pfSense выпадает, т. к. "роутер" сам находится в "Локальной сети" и шлет ответы в нее непосредственно.

                          Т. к. pfSense - это SPI-брандмауэр, и часть пакетов идет через него, а другая - в обход него, он не может правильно создать state для сессии, а все, для чего нет state, режется на корню.

                          Простейший выход - в System: Advanced: Firewall and NAT установить флажок Static route filtering [V] Bypass firewall rules for traffic on the same interface
                          Альтернативный - настроить NAT

                          1 Reply Last reply Reply Quote 0
                          • N
                            NetWiz
                            last edited by

                            Я бы маской разбил сеть на две… Второй интефейс ввел на пфсенс. Ему назначил 10.74.59.2/30 и роутеру инетному такую же маску. Lan pfsense получается 10.74.59.128/25, адреса в "локалке" 10.74.59.129-254

                            1 Reply Last reply Reply Quote 0
                            • X
                              xoma922
                              last edited by

                              Простейший выход - в System: Advanced: Firewall and NAT установить флажок Static route filtering [V] Bypass firewall rules for traffic on the same interface

                              Спасибо за развернутый и понятный ответ. Сделал. Но теперь видно такую картину: трафик по-прежнему блокируется. Скрин в аттаче. Как пофиксить можно?

                              fwscreen.png
                              fwscreen.png_thumb

                              1 Reply Last reply Reply Quote 0
                              • N
                                NegoroX
                                last edited by

                                галки сними "блокировать приватные сети"

                                1 Reply Last reply Reply Quote 0
                                • X
                                  xoma922
                                  last edited by

                                  @NegoroX:

                                  галки сними "блокировать приватные сети"

                                  privscreen.png
                                  privscreen.png_thumb

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

                                    @xoma922:

                                    Спасибо за развернутый и понятный ответ. Сделал. Но теперь видно такую картину: трафик по-прежнему блокируется. Скрин в аттаче. Как пофиксить можно?

                                    Попробуйте в вашем разрешающем правиле в секции Advanced features установить State Type в "none"
                                    В настройках интерфейса Gateway тоже установите в "none"
                                    Приведите вывод pfctl -sn && pfctl -sr

                                    1 Reply Last reply Reply Quote 0
                                    • X
                                      xoma922
                                      last edited by

                                      Добрался, наконец, до своего прокси. Сделал state none, в поле gateway у меня нет "none". Только default и 10.74.59.1
                                      Всё равно блокируется… Реально уже есть готовность разобраться в синтаксисе pf и ручками правила прописывать. Знать бы ещё где они в pfSense запрятаны

                                      Вывод pfctl -sn && pfctl -sr

                                      [2.1.4-RELEASE][root@firewall.116]/root(1): pfctl -sn && pfctl -sr
                                      no nat proto carp all
                                      nat-anchor "natearly/*" all
                                      nat-anchor "natrules/*" all
                                      nat on re0 inet from 37.113.131.0/24 port = isakmp to any port = isakmp -> 10.74.59.90 port 500
                                      nat on re0 inet from 192.168.0.0/24 port = isakmp to any port = isakmp -> 10.74.59.90 port 500
                                      nat on re0 inet from 127.0.0.0/8 port = isakmp to any port = isakmp -> 10.74.59.90 port 500
                                      nat on re0 inet from 37.113.131.0/24 to any -> 10.74.59.90 port 1024:65535
                                      nat on re0 inet from 192.168.0.0/24 to any -> 10.74.59.90 port 1024:65535
                                      nat on re0 inet from 127.0.0.0/8 to any -> 10.74.59.90 port 1024:65535
                                      no rdr proto carp all
                                      rdr-anchor "relayd/*" all
                                      rdr-anchor "tftp-proxy/*" all
                                      no rdr on re0 inet proto tcp from any to 192.168.0.0/16 port = http
                                      no rdr on re0 inet proto tcp from any to 172.16.0.0/12 port = http
                                      no rdr on re0 inet proto tcp from any to 10.0.0.0/8 port = http
                                      no rdr on re0 inet proto tcp from 10.74.59.90 to any port = http
                                      no rdr on re0 inet proto tcp from 10.74.59.1 to any port = http
                                      no rdr on re0 inet proto tcp from 10.74.59.201 to any port = http
                                      no rdr on re0 inet proto tcp from any to 10.31.6.0/24 port = http
                                      no rdr on re0 inet proto tcp from any to 91.193.240.222 port = http
                                      no rdr on re0 inet proto tcp from any to 91.216.53.12 port = http
                                      no rdr on re0 inet proto tcp from any to 91.216.53.98 port = http
                                      rdr on re0 inet proto tcp from any to ! (re0) port = http -> 127.0.0.1 port 3128
                                      rdr-anchor "miniupnpd" all
                                      scrub on rl0 all fragment reassemble
                                      scrub on ste0 all fragment reassemble
                                      scrub on re0 all fragment reassemble
                                      anchor "relayd/*" all
                                      anchor "openvpn/*" all
                                      anchor "ipsec/*" all
                                      block drop in log quick inet6 all label "Block all IPv6"
                                      block drop out log quick inet6 all label "Block all IPv6"
                                      block drop in log inet all label "Default deny rule IPv4"
                                      block drop out log inet all label "Default deny rule IPv4"
                                      block drop in log inet6 all label "Default deny rule IPv6"
                                      block drop out log inet6 all label "Default deny rule IPv6"
                                      pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type echorep keep state
                                      pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routersol keep state
                                      pass out quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routeradv keep state
                                      pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type echorep keep state
                                      pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routersol keep state
                                      pass out quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routeradv keep state
                                      pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type echoreq keep state
                                      pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routersol keep state
                                      pass in quick inet6 proto ipv6-icmp from fe80::/10 to fe80::/10 icmp6-type routeradv keep state
                                      pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type echoreq keep state
                                      pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routersol keep state
                                      pass in quick inet6 proto ipv6-icmp from fe80::/10 to ff02::/16 icmp6-type routeradv keep state
                                      pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type echoreq keep state
                                      pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type routersol keep state
                                      pass in quick inet6 proto ipv6-icmp from ff02::/16 to fe80::/10 icmp6-type routeradv keep state
                                      pass quick inet6 proto ipv6-icmp all icmp6-type unreach keep state
                                      pass quick inet6 proto ipv6-icmp all icmp6-type toobig keep state
                                      pass quick inet6 proto ipv6-icmp all icmp6-type neighbrsol keep state
                                      pass quick inet6 proto ipv6-icmp all icmp6-type neighbradv keep state
                                      block drop quick inet proto tcp from any port = 0 to any
                                      block drop quick inet proto tcp from any to any port = 0
                                      block drop quick inet proto udp from any port = 0 to any
                                      block drop quick inet proto udp from any to any port = 0
                                      block drop quick inet6 proto tcp from any port = 0 to any
                                      block drop quick inet6 proto tcp from any to any port = 0
                                      block drop quick inet6 proto udp from any port = 0 to any
                                      block drop quick inet6 proto udp from any to any port = 0
                                      block drop quick from <snort2c>to any label "Block snort2c hosts"
                                      block drop quick from any to <snort2c>label "Block snort2c hosts"
                                      block drop in log quick proto tcp from <sshlockout>to (self) port = ssh label "sshlockout"
                                      block drop in log quick proto tcp from <webconfiguratorlockout>to (self) port = http label "webConfiguratorlockout"
                                      block drop in quick from <virusprot>to any label "virusprot overload table"
                                      block drop in on ! rl0 inet from 37.113.131.0/24 to any
                                      block drop in inet from 37.113.131.164 to any
                                      block drop in on ! ste0 inet from 192.168.0.0/24 to any
                                      block drop in inet from 192.168.0.11 to any
                                      block drop in on ! re0 inet from 10.74.59.0/24 to any
                                      block drop in inet from 10.74.59.90 to any
                                      block drop in on rl0 inet6 from fe80::1ebd:89ff:fe27:fa39 to any
                                      block drop in on ste0 inet6 from fe80::c24a:ff:fe01:a188 to any
                                      block drop in on re0 inet6 from fe80::2e0:52ff:fec2:e6f0 to any
                                      pass in on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
                                      pass out on lo0 inet all flags S/SA keep state label "pass IPv4 loopback"
                                      pass in on lo0 inet6 all flags S/SA keep state label "pass IPv6 loopback"
                                      pass out on lo0 inet6 all flags S/SA keep state label "pass IPv6 loopback"
                                      pass out inet all flags S/SA keep state allow-opts label "let out anything IPv4 from firewall host itself"
                                      pass out inet6 all flags S/SA keep state allow-opts label "let out anything IPv6 from firewall host itself"
                                      pass out route-to (re0 10.74.59.1) inet from 10.74.59.90 to ! 10.74.59.0/24 flags S/SA keep state allow-opts label "let out anything from firewall host itself"
                                      pass out on enc0 all flags S/SA keep state label "IPsec internal host to host"
                                      pass in quick on ste0 proto tcp from any to (ste0) port = http flags S/SA keep state label "anti-lockout rule"
                                      pass in quick on ste0 proto tcp from any to (ste0) port = ssh flags S/SA keep state label "anti-lockout rule"
                                      anchor "userrules/*" all
                                      pass quick on re0 inet all flags S/SA keep state label "USER_RULE"
                                      pass quick on re0 inet6 all flags S/SA keep state label "USER_RULE"
                                      pass in quick on rl0 inet all no state label "USER_RULE"
                                      pass in quick on ste0 inet all no state label "USER_RULE: Default allow LAN to any rule"
                                      pass in quick on ste0 inet6 all no state label "USER_RULE: Default allow LAN IPv6 to any rule"
                                      pass in quick on re0 reply-to (re0 10.74.59.1) inet all no state label "USER_RULE"
                                      pass in quick on re0 inet6 all no state label "USER_RULE"
                                      anchor "tftp-proxy/*" all
                                      pass in quick on re0 proto tcp from any to ! (re0) port = http flags S/SA keep state
                                      pass in quick on re0 proto tcp from any to ! (re0) port = 3128 flags S/SA keep state</virusprot></webconfiguratorlockout></sshlockout></snort2c></snort2c> 
                                      

                                      firewall.png
                                      firewall.png_thumb

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dvserg
                                        last edited by

                                        Есть прокси на базе pfSense в локальной сети с одним wan, которому присвоен статический ip в моей локальной сети. В логах фаервола видно, что достаточно большая часть трафика в локальной сети блокируется. Отключать полностью фаервол-не вариант. Мне нужен там сквид, который будет прозрачно обрабатывать весь трафик, который проходит через pfSense.

                                        В такой конфигурации никто ничего у Вас прозрачно обрабатывать не будет. Рекомендую сделать нормальную стандартную схему включения pfSense c 2 интерфейсами и убрать роутер, либо прописать у всех принудительно прокси (шлюзом при этом должен быть "роутер").

                                        SquidGuardDoc EN  RU Tutorial
                                        Localization ru_PFSense

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

                                          
                                          ...
                                          pass quick on re0 inet all flags S/SA keep state label "USER_RULE"
                                          ...
                                          pass in quick on re0 reply-to (re0 10.74.59.1) inet all no state label "USER_RULE"
                                          ...
                                          pass in quick on re0 proto tcp from any to ! (re0) port = http flags S/SA keep state
                                          ...
                                          
                                          

                                          У вас первое "USER_RULE" со своим keep state перекрывает второе с no state. Очевидно первое - это floating rule? Тогда в его свойствах поставить direction=IN, убрать quick, в Advanced features установить State Type в "none". Второе "USER_RULE" - убрать вообще (вкладка WAN). Должно получиться что-то вроде:

                                          
                                          ...
                                          pass in on re0 inet all no state label "USER_RULE"
                                          ...
                                          pass in quick on re0 proto tcp from any to ! (re0) port = http flags S/SA keep state
                                          ...
                                          
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • X
                                            xoma922
                                            last edited by

                                            @rubic:

                                            У вас первое "USER_RULE" со своим keep state перекрывает второе с no state. Очевидно первое - это floating rule? Тогда в его свойствах поставить direction=IN, убрать quick, в Advanced features установить State Type в "none". Второе "USER_RULE" - убрать вообще (вкладка WAN). Должно получиться что-то вроде:

                                            Спасибо! Очень приятно получать помощь от знающих людей, которые всё понимают с первого раза и не задают вопросов, уводящих в совершенно другую степь.
                                            Итого имеем 2 разрешающих всё floating rules с доп. параметрами:
                                            State: none
                                            Direction: any
                                            Все лишние интерфейсы выпилены, на единственном LAN ни одного правила, кроме AntiLockout. Все работает, ничего не блокируется фаерволом, squid+squidguard работают так как нужно.
                                            Было бы ещё неплохо узнать что именно я сделал, указав state: none.

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