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

    Фильтрация пакетов, NAT, большой обьём трафик

    Scheduled Pinned Locked Moved Russian
    86 Posts 6 Posters 17.4k 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.
    • werterW
      werter
      last edited by

      Там в правилах fw сперва разобраться надо https://forum.pfsense.org/index.php?topic=144597.0

      1 Reply Last reply Reply Quote 0
      • U
        Uranus
        last edited by

        @pigbrother:

        То есть вы хотите сказать что это полный аналог  /boot/loader.conf.local ?

        Я вносил настройки сетевой карты именно в System Tunables
        В приведенной вам ссылке
        https://doc.pfsense.org/index.php/Tuning_and_Troubleshooting_Network_Cards#Adding_as_a_System_Tunable
        Такой вариант и указан.

        А перезагружать роутер всё равно нужно или нет ?
        перезагрузка не помешает.

        лучше на всякий случай второй и так далее каналы подключать на отдельную сетевую карту, так сказать во избежание случайностей.

        В вашем случае все порты I350T4 обслуживались одним драйвером igb. Отдельная сетевая плата могла обслуживаться  другим драйвером, либо не нуждающимся в тюнинге, либо требующим своих настроек. Как вариант для интел  - драйвер от igb I350T4 мог бы совпасть с драйвером новой карты.

        P.S.
        Кстати, в пылу дискуссии все забыли, что вопрос ТС была не о защите его приложения от DDOS в чистом виде, а в обеспечении работоспособности pfSense на резервном канале при высокой нагрузке на основной.

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

        1 Reply Last reply Reply Quote 0
        • U
          Uranus
          last edited by

          @werter:

          Там в правилах fw сперва разобраться надо https://forum.pfsense.org/index.php?topic=144597.0

          Вот вы мне ответьте если на меня периодически идёт DDOS атака с повторяющимся шаблоном, банально с одно и того же  порта на разные порты на моём компе, не лучше ли будет её блокировать сразу во Float, чем пускать по всей цепочке прохождения трафика и ждать когда в конце этой цепочки PF дропнет ненужное сам, Drop пакета это Drop пакета, единственное что дропать лучше раньше, так чем плохи мои правила во Float которые в большинстве случаев как раз для этого и написаны (хотя конечно не все).

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

            Если вы уберете все из float и развесите это на WAN, то с точки зрения затрат на фильтрацию пакетов ничего не изменится, зато картина и вам и нам станет яснее. Floating rules, да, обрабатываются первыми, но если их нет, то переход к обработке обычных правил происходит мгновенно, без потери производительности.
            Фактичеки для pf нет никакой разницы, он не знает о том, что в pfSense есть какие-то floating rules

            1 Reply Last reply Reply Quote 0
            • U
              Uranus
              last edited by

              @rubic:

              Если вы уберете все из float и развесите это на WAN, то с точки зрения затрат на фильтрацию пакетов ничего не изменится, зато картина и вам и нам станет яснее. Floating rules, да, обрабатываются первыми, но если их нет, то переход к обработке обычных правил происходит мгновенно, без потери производительности.
              Фактичеки для pf нет никакой разницы, он не знает о том, что в pfSense есть какие-то floating rules

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

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

                Ну, не факт, что не мешают. В то время как обычные правила понятны из скриншота, плавающие имеют столько опций, которых на скриншотах не видно, что понять ничего нельзя.
                Посмотреть весь ruleset (в том числе и "магию", добавляемую pfSense) можно через 'pfctl -sn && pfctl -sr' в Diagnostics > Command Prompt

                1 Reply Last reply Reply Quote 0
                • U
                  Uranus
                  last edited by

                  @rubic:

                  Ну, не факт, что не мешают. В то время как обычные правила понятны из скриншота, плавающие имеют столько опций, которых на скриншотах не видно, что понять ничего нельзя.
                  Посмотреть весь ruleset (в том числе и "магию", добавляемую pfSense) можно через 'pfctl -sn && pfctl -sr' в Diagnostics > Command Prompt

                  Именно что факт, я же всё же не идиот и если какой то IP не может зайти, то сначала проверяю тех кого блокирую персонально в Float правилах, да и к тому же было же написано в первом посте той ветки что если я убираю в прокидывании портов ограничение на страны то сразу всё начинает работать, одно это уже указывает что проблема как то связанна именно  со списком разрешённых стран в тех правилах, мы даже пытались поменять список, точнее создать новый из другого источника…, проблема осталась.
                  Прокидывание портов автоматически создаёт правила, но в Firewall-Rules-Wan, а не в  Firewall-Rules-Float, так что смотреть Float по логике было избыточно и не нужно, вот если бы этот IP вообще не мог зайти тогда да, нужно было глянуть.

                  Кстати спасибо за команду, проверю вечером как с работы вернусь.

                  1 Reply Last reply Reply Quote 0
                  • U
                    Uranus
                    last edited by

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

                    Смысл такой, когда на роутер на любой из Wan-ов валятся фрагментированные пакеты в большом кол-ве  то в консоли появляются записи типа pf frag entries limit reached
                    что означает что у нас переполнен буфер размер которого мы указываем в  System - Advanced - Firewall & NAT - Firewall Maximum Fragment Entries.
                    По умолчанию он вообще всего 5000, но его увеличение мало что нам даёт, достаточно чуть больше продлиться DDOS атаке и его опять переполняет.

                    Я так понимаю что тут проблема в работе scrub который нормализует пакеты и собирает фрагментированные пакеты в один пакет, при сборе фрагментированных пакетов он использует тот самый буфер который указан выше, он просто хранит там пакеты которые собирается использовать для сборки, но если при DDOS атаке идёт большое кол-во фрагментированных пакетов с фальсифицировнными заголовками то scrub никогда не сможет их собрать и буфер будет переполнен.

                    После переполнения буфера начинаются потери пакетов не только на атакуемом wan, но и на всех остальных wan-ах, хотя и в меньших пропорциях.

                    Как вариант нужно найти способ как-то очищать этот буфер, по команде pfctl -sm мы может увидеть размер этого буфера (frags), а по команде pfctl -st (frag, 30 секунд) как я думаю это таймаут его очистки, если это так то как это время уменьшить?

                    Или может у кого есть другие идеи как можно решить эту проблему?!

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

                      Тут года 3 назад был мегасрач в английской ветке по поводу несильного DOS каким-то OVH-скриптом, от которого pfSense валится на раз. Позиция разработчика заключается в том, что pfSense - это ни разу не DDOS Mitigation решение, это firewall. Если вы так уж привержены этому дистрибутиву, ставьте еще один pfSense мостом-посредником на проблемном канале, тут в такие дебри вряд ли кто залезал и кроме man pfctl что-то предложить сложно.

                      1 Reply Last reply Reply Quote 0
                      • U
                        Uranus
                        last edited by

                        @rubic:

                        Тут года 3 назад был мегасрач в английской ветке по поводу несильного DOS каким-то OVH-скриптом, от которого pfSense валится на раз. Позиция разработчика заключается в том, что pfSense - это ни разу не DDOS Mitigation решение, это firewall. Если вы так уж привержены этому дистрибутиву, ставьте еще один pfSense мостом-посредником на проблемном канале, тут в такие дебри вряд ли кто залезал и кроме man pfctl что-то предложить сложно.

                        Просто интересно, а что вы можете предложить из других (наверно более хороших) дистрибутивов…?

                        И да, пока что я просто собираю информацию, можно ли решить эту проблему без фильтрующих PFsense, если ничего не выйдет придётся ставить второй PF, вопрос только как лучше будет..., для фильтра поставить один как бридж и через него уже трафик прогонять с атакуемого канала, который потом пойдёт на основной Pfsense..., так же обдумываю возможность сделать всё это на виртуалках, не знаю правда на сколько это реально...

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

                          Добрый.

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

                          Надо же. Вот неожиданность. Ув. Fallen_A, ау, с нетерпением ждем ваших "советов" по компилированию кде под бсд.

                          @Uranus:

                          Смысл такой, когда на роутер на любой из Wan-ов валятся фрагментированные пакеты в большом кол-ве  то в консоли появляются записи типа pf frag entries limit reached
                          что означает что у нас переполнен буфер размер которого мы указываем в  System - Advanced - Firewall & NAT - Firewall Maximum Fragment Entries.
                          По умолчанию он вообще всего 5000, но его увеличение мало что нам даёт, достаточно чуть больше продлиться DDOS атаке и его опять переполняет.

                          Или может у кого есть другие идеи как можно решить эту проблему?!

                          Поставить галку на Disable Firewall Scrub. И снять с Clear invalid DF bits instead of dropping the packets. Также "поиграть" с Firewall Optimization Options (выставить Aggressive, напр.).

                          Позиция разработчика заключается в том, что pfSense - это ни разу не DDOS Mitigation решение, это firewall.

                          1. ТС это никак не поймет. ТС упрям. До безобразия.
                          2. Было ж предложено альтернативу тому ПО, что он пользует, к-ая умеет TCP only (http://ccm.net/faq/26187-mumble-force-tcp-mode) и ничем не хуже TS - https://wiki.mumble.info/wiki/1.3.0 . В чем проблема развернуть и потестить в том же VBox-е? Но… см. п.1

                          1 Reply Last reply Reply Quote 0
                          • U
                            Uranus
                            last edited by

                            @werter:

                            Добрый.
                            Надо же. Вот неожиданность. Ув. Fallen_A, ау, с нетерпением ждем ваших "советов" по компилированию кде под бсд.

                            Фууу, уважаемый, как некрасиво.., и потом, вы были не правы тогда, как и не правы сейчас, советы Fallen_A помогли, хоть и не до конца, потери на втором канале стали меньше, хотя, как выяснилось, и не пропали полностью…

                            @Uranus:

                            Поставить галку на Disable Firewall Scrub. И снять с Clear invalid DF bits instead of dropping the packets. Также "поиграть" с Firewall Optimization Options (выставить Aggressive, напр.).

                            Боюсь при отключении Scrub я могу получить другие проблемы, и кроме того если я не ошибаюсь он нужен для нормальной работы NAT.
                            Clear invalid DF bits instead of dropping the packets - что с ним что без него разницы нет, уже проверял.
                            Firewall Optimization Options меняет не все таймауты, я проверял командой pfctl -st, без разницы какой режим ставишь таймаут Frag не изменяется, потому и спросил может есть ещё какой вариант изменить его?!

                            1. ТС это никак не поймет. ТС упрям. До безобразия.
                            2. Было ж предложено альтернативу тому ПО, что он пользует, к-ая умеет TCP only (http://ccm.net/faq/26187-mumble-force-tcp-mode) и ничем не хуже TS - https://wiki.mumble.info/wiki/1.3.0 . В чем проблема развернуть и потестить в том же VBox-е? Но… см. п.1

                            Уважаемый это скорее вы упрямы до безобразия, вам же сказали каковы условия задачи, причём сказали несколько раз, вот с этими условиями её и надо решать, а не изменять так как вам легче, задачу ставлю я, на тех условиях которые подходят мне, и решать её я буду исходя из них…
                            Ваш же подход можно описать одной фразой: "Нет человека, нет проблемы!", вы предпочитаете не лечить человека, а просто пристрелить его, потому что лечить сложно, а мёртвые не болеют!  :D

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

                              Вы путаете теплое с мягким. Ни pf, ни iptables в случае c UDP вам не помогут - нет механизма ограничения установления кол-ва соединений за ед. времени.  С TCP же это решаемо.

                              советы Fallen_A помогли, хоть и не до конца, потери на втором канале стали меньше

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

                              Атакуют вас с умом. Решить же вы пытаетесь без использования оного.

                              1 Reply Last reply Reply Quote 0
                              • U
                                Uranus
                                last edited by

                                @werter:

                                Вы путаете теплое с мягким. Ни pf, ни iptables в случае c UDP вам не помогут - нет механизма ограничения установления кол-ва соединений за ед. времени.  С TCP же это решаемо.

                                Странно, для чего тогда у нас в PF есть state  :)!

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

                                Да мои, с другой стороны вы предлагали что угодно, но не решение проблемы, на тех условиях которые меня устраивают…

                                Атакуют вас с умом. Решить же вы пытаетесь без использования оного.

                                Про решение проблем по вашему я написал в предыдущем посте, перечитайте начиная с "Уважаемый это скорее вы упрямы до безобразия"  :)!

                                p.s.
                                Если вам нечего сказать по теме то попрошу вас больше не писать в эту тему, ваш сарказм тут не оценят…

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

                                  UDP packets don't have NEW,RELATED or ESTABLISHED connections. UDP is connection-less …

                                  Вне зависимости от ваших "желаний".

                                  1 Reply Last reply Reply Quote 0
                                  • U
                                    Uranus
                                    last edited by

                                    @werter:

                                    UDP packets don't have NEW,RELATED or ESTABLISHED connections. UDP is connection-less …

                                    Вне зависимости от ваших "желаний".

                                    Мне достаточно просто кол-ва соединений UDP которые я вполне могу определить по state и в Advanced Options правила я могу это указать, и это прекрасно работает, проверенно уже не раз и не два, да, не так гибко можно настроить как с TCP, но всё же…
                                    p.s.
                                    Кстати это одна из причин моего перехода с Микротика на PFsense.

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

                                      https://goo.gl/q55ETW

                                      https://www.openbsd.org/faq/pf/filter.html#udpstate

                                      Keeping state for UDP
                                      One will sometimes hear it said that "one cannot create state with UDP, as UDP is a stateless protocol!" While it is true that a UDP communication session does not have any concept of state (an explicit start and stop of communications), this does not have any impact on PF's ability to create state for a UDP session. In the case of protocols without "start" and "end" packets, PF simply keeps track of how long it has been since a matching packet has gone through. If the timeout is reached, the state is cleared. The timeout values can be set in the options section of the pf.conf file.

                                      То, что может помочь в ограничение кол-ва подключений относится только к TCP. Т.е. именно то, что надо вам. Но не в случае с (вашим) UDP.

                                      ![2018-03-10 15_48_42.png](/public/imported_attachments/1/2018-03-10 15_48_42.png)
                                      ![2018-03-10 15_48_42.png_thumb](/public/imported_attachments/1/2018-03-10 15_48_42.png_thumb)

                                      1 Reply Last reply Reply Quote 0
                                      • U
                                        Uranus
                                        last edited by

                                        Поглядите на Max. states - Maximum state entries this rule can create., могу вас заверить для UDP это работает, не всегда очень точно, но сам видел при DDOS атаке, и кстати почитайте как оно работает…
                                        Так же помогает Max. src nodes которое тоже работает с UDP…

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

                                          https://www.packetmischief.ca/2011/02/17/hitting-the-pf-state-table-limit/

                                          https://forum.pfsense.org/index.php?topic=68497.0

                                          Max. states действует и на good и на bad guys, т.к. это общее правило по states.

                                          Max. src nodes действует и на good и на bad guys, т.к. это общее правило по src nodes

                                          Интереснее Max. src. states (Maximum state entries per host), но можно и не угадать и для good guys.

                                          Итого. С большой долей вер-ти можно предположить, что вас немного выручают правила pfblocker-а по странам (просто и эффективно дропят вне зависимости от). Ибо вышеописанное c max states - рулетка в чистом виде в случае с UDP, т.е. может дропнуть линк и от хороших и от плохих парней.

                                          Скрин того, как настроено это у вас. И механизм того, как вы высчитываете это значение.

                                          1 Reply Last reply Reply Quote 0
                                          • U
                                            Uranus
                                            last edited by

                                            @werter:

                                            https://www.packetmischief.ca/2011/02/17/hitting-the-pf-state-table-limit/

                                            https://forum.pfsense.org/index.php?topic=68497.0

                                            Max. states действует и на good и на bad guys, т.к. это общее правило по states.

                                            Max. src nodes действует и на good и на bad guys, т.к. это общее правило по src nodes

                                            Интереснее Max. src. states (Maximum state entries per host), но можно и не угадать и для good guys.

                                            Итого. С большой долей вер-ти можно предположить, что вас немного выручают правила pfblocker-а по странам (просто и эффективно дропят вне зависимости от). Ибо вышеописанное c max states - рулетка в чистом виде в случае с UDP, т.е. может дропнуть линк и от хороших и от плохих парней.

                                            Скрин того, как настроено это у вас. И механизм того, как вы высчитываете это значение.

                                            Для меня главное остановить не нужный трафик на роутере, и какая разница Good или bad если канал и так забит, вы что думаете я себе какую-то антиддос систему делаю, которая разделяет хороший трафик от плохого…, вы вообще читали что я писал, для меня главное чтобы работал резервный канал и работал без сбоев, что там твориться на основном канале меня не волнует до тех пор пока он не мешает работать резервному, так что сортировкой трафика я и не думал заниматься, я его просто ограничиваю до той черты на которой он мне не мешает..., без обид, в который раз уже ловлю себя на мысли что вы не читаете что вам пишут или читаете так что видите там что-то своё... :)

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