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



  • Два канала, разные провайдеры, multiwan, имеется такая проблема, при DDOS атаке на один канал, иногда начинаются потери пакетов и на другом канале (процессор роутера не загружен на 100%, так что вычислительные мощности я думаю тут не причём).
    Такая ситуация бывает обычно (на 100% пока сказать не могу) когда DDOS-ят на какой то из прокинутых портов первого канала, хотелось бы понять это узкое место NAT или что то ещё ?
    Если да, то  как лучше всего отфильтровать траффик до его попадания в NAT, он вообще фильтруется до NAT допустим через Float правила в Firewall-Rules ?!



  • Добрый.
    А разве ДДОС - не проблема вашего провайдера? И не он ли должен обратить на это внимание и пресечь это?

    P.s. Обычно ддосять за что-то  Из баловства никто этим сейчас уже не занимается. Вас-то за что ?



  • @werter:

    Добрый.
    А разве ДДОС - не проблема вашего провайдера? И не он ли должен обратить на это внимание и пресечь это?

    P.s. Обычно ддосять за что-то  Из баловства никто этим сейчас уже не занимается. Вас-то за что ?

    Ваши слова да кое-кому бы в уши, и как бы вам сказать, я по сути простой пользователь, просто работаю с двумя провайдерами…, вы видели чтобы обычным пользователям скажем в Ростелекоме давалась услуга защиты от DDOS-а.., я нет!
    Лично, несколько раз звонил туда, мне сказали что подобных услуг не предоставляют, возможно если бы я был юридическим лицом, тогда бы проблем не было, а с физическими лицами всё туго, ладно хоть что они как наши местные провайдеры не отключают от инета за DDOS атаки, кстати вы случайно не работаете у такого же провайдера, они мне задали точно такие же вопросы как и вы  ;D
    Забавно, меня атакуют, а провайдер ещё и инета лишает, вместо того чтобы наоборот помочь.

    На счёт DDOS-а за что-то..., ну не знаю, может за полностью бесплатный сервер Тимспика атакуют, (без всяких там платных постоянных каналов и вип услуг) благо атаки про которые я говорил идут на его порт и на порт веб сервера.
    Простите за такую вот "саморекламу", просто меня позабавили ваши вопросы..., провайдеру пофиг (в данном случае и хорошо, так как я и писал что бывает и худший подход), и DDOS-ить поверьте могут и "просто так", если под "просто так" понимать то что  вы мешаете делать деньги на простых людях особо ушлым товарищам... :)



  • У провайдера не работаю ;)
    IDPS Suricata не пробовали установить на пф ? Атака идет с рос. ip ?

    Зы. https://alternativeto.net/software/teamspeak/
    Готовое решение https://discordapp.com/. Хостится в облаке. Рулите вы.

    Зы2. В кач-ве корп. чата рекомендую https://github.com/RocketChat/Rocket.Chat  Аудио, видео, приватные комнаты.

    Зы3. Для веб-конференций https://nextcloud.com/talk/ NC сам по себе оч. мощный продукт. Почитайте на досуге.



  • @werter:

    У провайдера не работаю ;)
    IDPS Suricata не пробовали установить на пф ? Атака идет с рос. ip ?

    Зы. https://alternativeto.net/software/teamspeak/
    Готовое решение https://discordapp.com/. Хостится в облаке. Рулите вы.

    Зы2. В кач-ве корп. чата рекомендую https://github.com/RocketChat/Rocket.Chat  Аудио, видео, приватные комнаты.

    Зы3. Для веб-конференций https://nextcloud.com/talk/ NC сам по себе оч. мощный продукт. Почитайте на досуге.

    Первое по поводу  Снорта или Сурикаты, при DDOS атаке от 400 mb до гига, они скорее помеха если у вас не 12 ядерный и не двух процессорный роутер.
    У меня же роутером работает 4-ядерный i5-3540 c 16 гигов памяти на борту, (если бы под PFsense Суриката могла бы работать с CUDA, можно было бы помучаться), я уже поднимал тут тему по этому поводу, нагрузка на процессор только растёт, и роутер уже точно не справляется, впрочем на втором канале у меня Суриката висит.

    Понимаете по сути мой основной канал на котором висит Тимспик сервер я уже отдал на откуп, пусть DDOS-ят, жалко конечно, но я привык, меня больше беспокоит что из-за атак начинает терять пакеты и второй провайдер, на который точно нет никаких атак (это вам как бы и ответ на предложение о внешних хостингах).

    Атака идёт явно с ботнетов, куча IP, в основном восточный регион, Китай, Южная Америка, страны Персидского Залива, и всё такое, они у меня собственно блокируются через "pfblockerng", возможно есть и несколько Российских IP, просто при атаке видно что за роутер практически ничего не выходит, даже при атаке в 800 mb, максимум что бывает на выходе небольшие всплески до 6 mb.
    Да…, в основном атаки UDP, как ни странно, но SYN, и ICMP не сильно популярны... :)



  • Попробуйте Дискорд. Может подойдет в вашем случае.

    Зы. Кхм, странно-глупое предложение отключить на время канал, к-ый ддосят. Физически. А через неделю вкл. и посмотреть, что будет.
    Зы2. Перенесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.



  • @werter:

    Попробуйте Дискорд. Может подойдет в вашем случае.

    Зы. Кхм, странно-глупое предложение отключить на время канал, к-ый ддосят. Физически. А через неделю вкл. и посмотреть, что будет.
    Зы2. Перенесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.

    Простите, но я не делал этот сервер для профита, я просто хочу решить задачу которую себе поставил, понять почему происходит то что происходит с каналами в PFsense.

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

    Отключить физически канал можно, уже делал подобное, некоторое время тихо потом опять начинаются атаки (как только сервер набирает популярность), и прекращаются они кстати порой сразу же как сервер исчезает (имеется ввиду прекращается текущая атака, сервер исчез, атака прекратилась), именно по этому я думаю что это делают некоторые такие же владельцы Тимпспик серверов.

    Надеюсь вы уже поняли что я хочу как бы сказать "победить" DDOS-еров, а не убежать от них, и спрятаться, по этому переход на Дискорд мне не интересен, да я несу некоторые потери, но они не существенны, по сути оставляя сервер включенным несмотря на все DDOS атаки я тем самым троллю DDOS-еров, в конце концов это не моя работа прекращать подобные атаки.

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



  • Зы2. Перенесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.

    Вот это. Решение.



  • @werter:

    Зы2. Перенесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.

    Вот это. Решение.

    Благодарю вас, но мне это не нужно, как я уже и сказал меня интересует конкретная проблема которая описана в моём первом посте, давайте к нему и вернёмся.



  • У вас атака идет на не пф, а на ваше приложение (тимспик, в данном случае). Пф об этом ничего не знает и не защитит.

    В гугле это так -> fail2ban ddos teamspeak
    https://easyengine.io/tutorials/nginx/fail2ban/
    https://forum.teamspeak.com/threads/123543-Fail2Ban-Filter-for-Teamspeak
    http://www.steffen-ille.de/blog.php?entry=28



  • @werter:

    У вас атака идет на не пф, а на ваше приложение (тимспик, в данном случае). Пф об этом ничего не знает и не защитит.

    В гугле это так -> fail2ban ddos teamspeak
    https://easyengine.io/tutorials/nginx/fail2ban/
    https://forum.teamspeak.com/threads/123543-Fail2Ban-Filter-for-Teamspeak
    http://www.steffen-ille.de/blog.php?entry=28

    Вы или не внимательно читали или это я так коряво написал?!
    Во первых я знаю что атака идёт на сервер, а не на PF (по крайней мере когда атака идёт именно на порт тимспик сервера), по этому то я для уменьшения кол-ва атакующих блокирую страны которые поставляют основную массу компьютеров-ботов (страны перечислял в постах выше).
    Во вторых я ограничиваю кол-во states для правила которое работает с пробросом порта для работы Тимпспик сервера, и другие возможные ограничения для UDP протокола.
    И именно по этому, как я уже и писал выше, даже при DDOS атаке в 800 mb с роутера до моего сервера ничего (практически ничего) из атаки не доходит и весь трафик оседает на роутере.
    Но как я и писал я хотел бы узнать можно ли блокировать или фильтровать трафик до того как он попадёт в NAT (то есть до проброса портов), и почему если атака идёт на проброшенные порты у меня начинает терять пакеты и второй канал (хотя на него атаки нет), а если же атака идёт на какой-нибудь порт который у меня не проброшен то второй канал не теряет пакеты и работает как обычно.



  • и почему если атака идёт на проброшенные порты у меня начинает терять пакеты и второй канал (хотя на него атаки нет)
    я не специалист по сетевым технологиям, поэтому все - сугубое IMHO. 
    Предположу, что потери происходят из-за перегрузки сетевого стека, который является общим для всех интерфейсов. И дело, скорее всего,  не в собственно трафике, а в ненормально возросшем PPS - числе пакетов в секунду.
    Возможно некий тюнинг\замена адаптеров смягчили бы описываемые вами последствия этой перегрузки.
    При больших нагрузках начинают влиять такие свойства адаптера и его драйвера , как поддержка:

    Message Signaled Interrupts
    https://en.wikipedia.org/wiki/Message_Signaled_Interrupts

    Receive Side Scaling (RSS)
    https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/jj574168(v=ws.11)
    https://www.intel.com/content/www/us/en/support/articles/000006703/network-and-i-o/ethernet-products.html

    Receive flow steering
    https://lwn.net/Articles/382428/

    и т.д.



  • @pigbrother:

    и почему если атака идёт на проброшенные порты у меня начинает терять пакеты и второй канал (хотя на него атаки нет)
    я не специалист по сетевым технологиям, поэтому все - сугубое IMHO. 
    Предположу, что потери происходят из-за перегрузки сетевого стека, который является общим для всех интерфейсов. И дело, скорее всего,  не в собственно трафике, а в ненормально возросшем PPS - числе пакетов в секунду.
    Возможно некий тюнинг\замена адаптеров смягчили бы описываемые вами последствия этой перегрузки.
    При больших нагрузках начинают влиять такие свойства адаптера и его драйвера , как поддержка:

    Message Signaled Interrupts
    https://en.wikipedia.org/wiki/Message_Signaled_Interrupts

    Receive Side Scaling (RSS)
    https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/jj574168(v=ws.11)
    https://www.intel.com/content/www/us/en/support/articles/000006703/network-and-i-o/ethernet-products.html

    Receive flow steering
    https://lwn.net/Articles/382428/

    и т.д.

    Такая идея приходила и мне в голову, хотя это не обьясняет почему при атаке на непроброшенный порт такого не происходит (точнее обьясняет если NAT, точнее проброс портов отрабатывает раньше чем блокируются правила в Firewall-Rules-Float)!
    У меня стоит интеловская I350-T4.
    я даже прописал в System - Advanced System - Tunables строки

    net.isr.direct_force 1
    net.isr.direct 1
    net.isr.maxthreads 3 # вот эту кстати вроде и в 4 можно установить, раз ядра 4
    net.isr.dispatch direct
    уж не могу точно сказать срабатывают они сейчас или нет



  • Хм…, меня тут посетила идея, а не может быть связано такое поведение каналов с тем что они в MultiWan, там же если не ошибаюсь они в группе и стоит правило что переключаться на второй Gatеways если один из них упал, может с этим и связано ?!  (попробую, пошаманить)



  • Ещё бы увидеть более точную схему вашей сети.



  • @Fallen_A:

    Ещё бы увидеть более точную схему вашей сети.

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



  • Какие сетевые карты используете?



  • @Fallen_A:

    Какие сетевые карты используете?

    Сетевая i350-t4.
    Вы задавайте наводящие вопросы если что, я по "простоте" своей могу и не понять что вы спрашиваете  :)



  • Добрый.
    Помучайтесь еще 2-3 дня. И прийдете к

    Перенесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.

    Или к Дискорд-у.

    Зы. Пф хорош. Но (пока) это ему не по силам.



  • Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.



  • @werter:

    Зы. Пф хорош.

    никакой pf не спасет от ддоса. Меня так как то бомбанули. Ничего не помогало, пока не выдернул кабель из маршрутера.
    Симптомы очень простые - заводишь сурикату и суриката кушает 100% от проца. Открываешь порт во внешку или делаешь проброс - аналогично умирает проц. Закрываешь всё-всё – всё равно умирает проц, умирает уже на уровне драйвера сетевой, системные прерывания кладут систему. Я в аналитических целях изучал входящий траффик, там очень много интересного. Например самый частый вид траффика - это UDP перепакованный в TCP и с некорректной CRC. Или куча (over >> 10k) входящих TCP запросов на сервис пакетами по 50 байт.
    Выжил благодаря CARP и второму секретному WAN-у.

    И отвечу за провайдеров.
    ДДОС это интелектуальная атака, чаще всего подбирается как ключ к замку (ориентирована на конкретный сервис или софт). Разработка и внедрение весьма ресурсоемкое и не всегда оправданное занятие. Поэтому есть контент провайдеры услуг. Ими и пользуйтесь. Могу рекомендовать Касперского(был на их презентации лично, понравилось) https://www.kaspersky.ru/small-to-medium-business-security/ddos-protection?campaign=kl-ru_google_acq_ona_sem_gen_onl_b2c__lnk_______&redef=1&referer1=kl-ru_google&referer2=kl-ru_google_acq_ona_sem_gen_onl_b2c__lnk_______&gclid=Cj0KCQiAq6_UBRCEARIsAHyrgUyHYhTjdfZS1zmMVNRcbisALimlfPXCJzsRUJHCB7JKMbbixRLISFwaAkQGEALw_wcB



  • @Fallen_A:

    Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.

    Да всё висит но одной карте и локалка и два входящих канала, могу сказать сразу, сетевуха (я думаю) справляется, могу сказать это по одной причине, при DDOS атаке потери пакетов на локалке нет, если бы не справлялась сетевая то терялось бы везде.



  • @werter:

    Добрый.
    Помучайтесь еще 2-3 дня. И прийдете к

    Перенесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.

    Или к Дискорд-у.

    Зы. Пф хорош. Но (пока) это ему не по силам.

    Уважаемый, я так "мучаюсь" уже более года (а сервер у меня уже более 3 лет), у меня как и вас есть резервные каналы, и стараюсь я даже не совсем для себя, а больше для пользователей моего сервера, и как я вам уже и сказал, внешний хостинг меня никак, от слова СОВСЕМ не устраивает, так что давайте вы меня с ним больше не будете напрягать.



  • @derwin:

    @werter:

    Зы. Пф хорош.

    никакой pf не спасет от ддоса. Меня так как то бомбанули. Ничего не помогало, пока не выдернул кабель из маршрутера.
    Симптомы очень простые - заводишь сурикату и суриката кушает 100% от проца. Открываешь порт во внешку или делаешь проброс - аналогично умирает проц. Закрываешь всё-всё – всё равно умирает проц, умирает уже на уровне драйвера сетевой, системные прерывания кладут систему. Я в аналитических целях изучал входящий траффик, там очень много интересного. Например самый частый вид траффика - это UDP перепакованный в TCP и с некорректной CRC. Или куча (over >> 10k) входящих TCP запросов на сервис пакетами по 50 байт.
    Выжил благодаря CARP и второму секретному WAN-у.

    И отвечу за провайдеров.
    ДДОС это интелектуальная атака, чаще всего подбирается как ключ к замку (ориентирована на конкретный сервис или софт). Разработка и внедрение весьма ресурсоемкое и не всегда оправданное занятие. Поэтому есть контент провайдеры услуг. Ими и пользуйтесь. Могу рекомендовать Касперского(был на их презентации лично, понравилось) https://www.kaspersky.ru/small-to-medium-business-security/ddos-protection?campaign=kl-ru_google_acq_ona_sem_gen_onl_b2c__lnk_______&redef=1&referer1=kl-ru_google&referer2=kl-ru_google_acq_ona_sem_gen_onl_b2c__lnk_______&gclid=Cj0KCQiAq6_UBRCEARIsAHyrgUyHYhTjdfZS1zmMVNRcbisALimlfPXCJzsRUJHCB7JKMbbixRLISFwaAkQGEALw_wcB

    Для меня будет проблема только если сам PF не справится с фильтровкой трафика на уровне ядра или сетевого драйвера, да и то это не самая большая проблема, так как я и писал раньше, я в теории могу поставить ещё один PF и делать первичную фильтровку на нём, а на второй уже передавать более-менее чистый трафик.
    На счёт Сурикаты…, даже и не знаю сколько же ей ядер проца понадобиться чтобы справиться с DDOS-ом в один гиг, как я и писал, жалко что на PF никто не портирует CUDA от Nvidia, Суриката в теории может работать через неё с ядрами видюхи, тогда можно было бы намного усилить фильтрование и довольно дешёвым способом.

    Вы можете перечитать мой первый пост и понять что для меня главное не остановить DDOS атаку, а понять почему теряет пакеты второй канал, если у меня будет работать нормально второй канал то мне глубоко пофигу на все эти DDOS-ы, неприятно, да, но не более.
    Сам я, да и те пользователи которые хотят, сидят на втором канале, есть и третий канал, так что DDOS тут не проблема совсем, хотят DDOS-ить, пусть долбятся, проблема выяснить из-за чего потери на втором канале, сначала оптимизировать всё что можно, если уж не потянет придётся ставить второй PF.

    Выдёргиванием шнура из роутера я спасался когда сидел на Микротике, у того считай вообще фильтрование UDP отсутствует и весь DDOS трафик валился мне напрямую (через проброшенный порт) на сервер и вешал и его и локальный комп, на PF мне такого в принципе не надо делать, как я и писал, до локалки  благодаря фильтрации трафика практически ничего не доходит.
    И как я и писал, на данный момент процессор не перегружен, загрузка доходит максимум 70-80%.

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



  • @Uranus:

    @Fallen_A:

    Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.

    Да всё висит но одной карте и локалка и два входящих канала, могу сказать сразу, сетевуха (я думаю) справляется, могу сказать это по одной причине, при DDOS атаке потери пакетов на локалке нет, если бы не справлялась сетевая то терялось бы везде.

    И все-таки я бы советовал, ради эксперимента, воткнуть для другого WAN другую сетевую карту и посмотреть, что будет.



  • Добрый.
    @Uranus:

    Уважаемый, я так "мучаюсь" уже более года (а сервер у меня уже более 3 лет), у меня как и вас есть резервные каналы, и стараюсь я даже не совсем для себя, а больше для пользователей моего сервера, и как я вам уже и сказал, внешний хостинг меня никак, от слова СОВСЕМ не устраивает, так что давайте вы меня с ним больше не будете напрягать.

    Мил человек. Настырны? Я тоже.
    Вы любите себе моСк три года рукалицо? Тратите (в том числе и) свое (драгоценное ?) время.
    Внешний хостинг - спасение для вас в данном случае. Боитесь чего-то? Разверните VPS с шифрованием. Шифруйте передаваемый трафик. Упертость и настырность в достижение рез-та - это хорошо, но не в случае трехлетнего мозголюбства.

    https://hosting.cafe/
    https://vds.menu/
    http://poiskhostinga.ru/
    http://lowendstock.com/

    Зы. Разверните впн-сервер. Раздайте каждому по ключу. Во вне будет открыт только один порт. Но это неудобно для конечных пол-лей.

    Зы2. https://forum.pfsense.org/index.php?topic=86681.0

    Зы3. Почему просто не попробовать тот же Дискорт?



  • @Fallen_A:

    @Uranus:

    @Fallen_A:

    Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.

    Да всё висит но одной карте и локалка и два входящих канала, могу сказать сразу, сетевуха (я думаю) справляется, могу сказать это по одной причине, при DDOS атаке потери пакетов на локалке нет, если бы не справлялась сетевая то терялось бы везде.

    И все-таки я бы советовал, ради эксперимента, воткнуть для другого WAN другую сетевую карту и посмотреть, что будет.

    Какую карту лучше использовать, как думаете, встроенную на материнке или внешнюю PCi-E ?

    @werter:

    Добрый.
    Мил человек. Настырны? Я тоже.
    Вы любите себе моСк три года рукалицо? Тратите (в том числе и) свое (драгоценное ?) время.
    Внешний хостинг - спасение для вас в данном случае. Боитесь чего-то? Разверните VPS с шифрованием. Шифруйте передаваемый трафик. Упертость и настырность в достижение рез-та - это хорошо, но не в случае трехлетнего мозголюбства.

    https://hosting.cafe/
    https://vds.menu/
    http://poiskhostinga.ru/
    http://lowendstock.com/

    Зы. Разверните впн-сервер. Раздайте каждому по ключу. Во вне будет открыт только один порт. Но это неудобно для конечных пол-лей.

    Зы2. https://forum.pfsense.org/index.php?topic=86681.0

    Зы3. Почему просто не попробовать тот же Дискорт?

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



  • Можно обычную 100 мбит на pci слот. Отпишитесь по итогам теста. Встроенную, думаю, пока не стоит трогать.



  • @Fallen_A:

    Можно обычную 100 мбит на pci слот. Отпишитесь по итогам теста. Встроенную, думаю, пока не стоит трогать.

    Угу, у меня как раз гигабайтная TP-Link валяется, есть ещё интеловская, но она на работе, так что завтра с утра воткну TP, будем ждать DDOS атаки  :)



  • @Uranus:

    Такая ситуация бывает обычно (на 100% пока сказать не могу) когда DDOS-ят на какой то из прокинутых портов первого канала, хотелось бы понять это узкое место NAT или что то ещё ?
    Если да, то  как лучше всего отфильтровать траффик до его попадания в NAT, он вообще фильтруется до NAT допустим через Float правила в Firewall-Rules ?!

    NAT делается перед фильтрацией, и изменить этого нельзя, такая архитектура. Блокировка пакета фильтром сама по себе не бесплатна, так как фильтр должен поддерживать свои внутренние структуры данных в интактном состоянии. NAT (Port forward) добавляет к этому еще работы. Проброшенный пакет будет блокироваться определенно дольше, но насколько, и в этом ли причина вашей проблемы, не скажу.

    https://github.com/pfsense/FreeBSD-src/blob/RELENG_2_2/sys/netpfil/pf/pf.c (3570-3587)

    if ((r->action == PF_DROP) &&
        ((r->rule_flag & PFRULE_RETURNRST) ||
        (r->rule_flag & PFRULE_RETURNICMP) ||
        (r->rule_flag & PFRULE_RETURN))) {
        /* undo NAT changes, if they have taken place */
        if (nr != NULL) {
            PF_ACPY(saddr, &sk->addr[pd->sidx], af);
            PF_ACPY(daddr, &sk->addr[pd->didx], af);
            if (pd->sport)
                *pd->sport = sk->port[pd->sidx];
            if (pd->dport)
                *pd->dport = sk->port[pd->didx];
            if (pd->proto_sum)
                *pd->proto_sum = bproto_sum;
            if (pd->ip_sum)
                *pd->ip_sum = bip_sum;
            m_copyback(m, off, hdrlen, pd->hdr.any);
        }
    

    вот этот m_copyback может что-то дать на большом потоке



  • @rubic:

    @Uranus:

    Такая ситуация бывает обычно (на 100% пока сказать не могу) когда DDOS-ят на какой то из прокинутых портов первого канала, хотелось бы понять это узкое место NAT или что то ещё ?
    Если да, то  как лучше всего отфильтровать траффик до его попадания в NAT, он вообще фильтруется до NAT допустим через Float правила в Firewall-Rules ?!

    NAT делается перед фильтрацией, и изменить этого нельзя, такая архитектура. Блокировка пакета фильтром сама по себе не бесплатна, так как фильтр должен поддерживать свои внутренние структуры данных в интактном состоянии. NAT (Port forward) добавляет к этому еще работы. Проброшенный пакет будет блокироваться определенно дольше, но насколько, и в этом ли причина вашей проблемы, не скажу.

    https://github.com/pfsense/FreeBSD-src/blob/RELENG_2_2/sys/netpfil/pf/pf.c (3570-3587)

    if ((r->action == PF_DROP) &&
        ((r->rule_flag & PFRULE_RETURNRST) ||
        (r->rule_flag & PFRULE_RETURNICMP) ||
        (r->rule_flag & PFRULE_RETURN))) {
        /* undo NAT changes, if they have taken place */
        if (nr != NULL) {
            PF_ACPY(saddr, &sk->addr[pd->sidx], af);
            PF_ACPY(daddr, &sk->addr[pd->didx], af);
            if (pd->sport)
                *pd->sport = sk->port[pd->sidx];
            if (pd->dport)
                *pd->dport = sk->port[pd->didx];
            if (pd->proto_sum)
                *pd->proto_sum = bproto_sum;
            if (pd->ip_sum)
                *pd->ip_sum = bip_sum;
            m_copyback(m, off, hdrlen, pd->hdr.any);
        }
    

    вот этот m_copyback может что-то дать на большом потоке

    Да про NAT я тоже где-то читал, потому сразу и уточнил что порты проброшены, а как интересно тогда это работает, там же ещё при создании правил NAT можно указать определённую фильтрацию, ну типа список IP-адресов, чтобы некоторые страны исключить, получается что в любом случае порт сначала пробрасывается, и только потом проверятся, а нужно ли для этого IP что либо делать, как то нелогично…

    p.s.
    Сетевуху установил, но пока что больших DDOS-атак не было, будем поглядеть, как говориться ... :)



  • Как полет, кстати?



  • @Fallen_A:

    Как полет, кстати?

    Сегодня в моё отсутствие был относительно небольшой DDOS на пол часа (21 миллион пакетов), вроде с другой сетевой на втором канале потерь нет, но это не показатель, нужно чтобы я был на месте во время атаки для её мониторинга, а то точно не ясно на сколько маштабной она была и каково было ей содержание…, так что пока что всё нормально...



  • @Uranus:

    Да про NAT я тоже где-то читал, потому сразу и уточнил что порты проброшены, а как интересно тогда это работает, там же ещё при создании правил NAT можно указать определённую фильтрацию, ну типа список IP-адресов, чтобы некоторые страны исключить

    В NAT нет никакой фильтрации, все пакеты, не зависимо от того применено ли было к ним правило NAT  или нет, отправляются в фильтр. "Список IP-адресов" - это те айпи, к которым будет применяться NAT. Остальные полетят в фильтр напрямую.



  • @rubic:

    @Uranus:

    Да про NAT я тоже где-то читал, потому сразу и уточнил что порты проброшены, а как интересно тогда это работает, там же ещё при создании правил NAT можно указать определённую фильтрацию, ну типа список IP-адресов, чтобы некоторые страны исключить

    В NAT нет никакой фильтрации, все пакеты, не зависимо от того применено ли было к ним правило NAT  или нет, отправляются в фильтр. "Список IP-адресов" - это те айпи, к которым будет применяться NAT. Остальные полетят в фильтр напрямую.

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



  • @Uranus:

    соответственно только пакеты приходящие с этих IP и должны пройти в NAT…

    Нет. NAT абсолютно прозрачен, через него проходят все пакеты, беспрепятственно. Просто у тех, что в списке, меняется IP назначения, а остальные проходят в неизменном виде. Больше у "списка" никакой функции нет, он не отбрасывает пакеты с IP-шников отсутствующих в списке.
    Заметьте, что для проброса порта не достаточно настроить NAT, нужно еще сделать разрешающее правило в фильтре. По умолчанию, pfSense создает его за вас. Вот именно оно и фильтрует адреса не из списка.



  • @rubic:

    @Uranus:

    соответственно только пакеты приходящие с этих IP и должны пройти в NAT…

    Нет. NAT абсолютно прозрачен, через него проходят все пакеты, беспрепятственно. Просто у тех, что в списке, меняется IP назначения, а остальные проходят в неизменном виде. Больше у "списка" никакой функции нет, он не отбрасывает пакеты с IP-шников отсутствующих в списке.
    Заметьте, что для проброса порта не достаточно настроить NAT, нужно еще сделать разрешающее правило в фильтре. По умолчанию, pfSense создает его за вас. Вот именно оно и фильтрует адреса не из списка.

    Хм…,  тогда что схема в этой https://forum.pfsense.org/index.php?topic=73670.0 ветке не совсем правильная или слишком упрощённая, там же перед NAT есть фильтрация…?



  • Добрый.
    Когда же ТС поймет, что атака ведется не на транспортном уровне (pfsense) , а на уровне приложения (TS) ?

    P.s. Снова задаюсь вопросом - кому понадобился ТС со своим глубоко частным (?) сервисом, чтобы на него тратились и вкладывались в не самый простой тип атаки?
    ТС, признайся, чем разозлил атакующих? Что-то тут не то  :-\



  • @werter:

    Добрый.
    Когда же ТС поймет, что атака ведется не на транспортном уровне (pfsense) , а на уровне приложения (TS) ?

    P.s. Снова задаюсь вопросом - кому понадобился ТС со своим глубоко частным (?) сервисом, чтобы на него тратились и вкладывались в не самый простой тип атаки?
    ТС, признайся, чем разозлил атакующих? Что-то тут не то  :-\

    Мне кажется, что ТС уже давал ответ по поводу того, зачем ему это все. Собственно, как и люди, давали совет, что в данной ситуации будет лучше.
    Вопрос к вам: зачем талдычить это по 100 раз. Тем более, насколько я знаю, у него уже все практически получилось.



  • @Fallen_A:

    Мне кажется, что ТС уже давал ответ по поводу того, зачем ему это все. Собственно, как и люди, давали совет, что в данной ситуации будет лучше.
    Вопрос к вам: зачем талдычить это по 100 раз. Тем более, насколько я знаю, у него уже все практически получилось.

    Спасибо, да практически всё я думаю получилось, завтра утром (когда народу на сервере будет мало) верну всё на на сетевуху I350-T4, перегружу роутер с подправленными настройками и ещё потестирую (посмотрим как с ними будет себя роутер вести), но думаю уже сейчас можно сказать что проблема решена, остались частности…, по крайней мере я на это очень рассчитываю...

    @werter:

    Добрый.
    Когда же ТС поймет, что атака ведется не на транспортном уровне (pfsense) , а на уровне приложения (TS) ?

    P.s. Снова задаюсь вопросом - кому понадобился ТС со своим глубоко частным (?) сервисом, чтобы на него тратились и вкладывались в не самый простой тип атаки?
    ТС, признайся, чем разозлил атакующих? Что-то тут не то  :-\

    Я вам уже отвечал, но если вам так сложно понять, зайдите на любой более-менее топовый TS сервер, и спросите DDOS-ят ли их и за что, и я более чем уверен что 9 из 10 если не все 10 скажут что DDOS-ят или DDOS-или, а на ваш вопрос "за что", скажут что ни за что…

    Вообще то тут может быть банальная цепная реакция, берёте сервер в ТОП-е, с какими то платными функциями, хорошенько его DDOS-ите, владелец бесится (сам лично видел таких, то в названия сервера вставляют ругательства в адрес ддосеров то ещё что), потом владелец атакованного сервера от обиды начинает подозревать всех тех кто занимает его место и даже не имея никаких доказательств  начинает их DDOS-ить (как говориться не себе не людям или думает что мстит им), те в свою очередь повторяют его путь и так всё запускается по кругу,  и так возникает круговорот DDOS-а в интернете, первый "шутник" уже давно это дело бросил, но остальные "обиженные" продолжают  :)
    Конечно в большинстве это моя догадка, но я думаю такое вполне может быть.

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

    Возможно некоторые такие сайты могут дать доступ и к настоящему ботнету, да и различного рода усилители UDP (DNS, NTP) и другие не такая уж и редкость.
    Сейчас организовать DDOS атаку не так уж и сложно и для того чтобы быть атакованным не надо ничего такого делать (я видел как атаковали обычные, базовые TS сервера на 32 слота и причём не раз), сейчас могут DDOS-ить за что угодно и даже просто так...