Фильтрация пакетов, NAT, большой обьём трафик
-
Какие сетевые карты используете?
-
Какие сетевые карты используете?
Сетевая i350-t4.
Вы задавайте наводящие вопросы если что, я по "простоте" своей могу и не понять что вы спрашиваете :) -
Добрый.
Помучайтесь еще 2-3 дня. И прийдете кПеренесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.
Или к Дискорд-у.
Зы. Пф хорош. Но (пока) это ему не по силам.
-
Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.
-
Зы. Пф хорош.
никакой 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 -
Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.
Да всё висит но одной карте и локалка и два входящих канала, могу сказать сразу, сетевуха (я думаю) справляется, могу сказать это по одной причине, при DDOS атаке потери пакетов на локалке нет, если бы не справлялась сетевая то терялось бы везде.
-
Добрый.
Помучайтесь еще 2-3 дня. И прийдете кПеренесите свой тимспик в тот же digital ocean или cloudflare. У них есть защита от ддос. Вам это в копейки обойдется. А профита - на тыщи.
Или к Дискорд-у.
Зы. Пф хорош. Но (пока) это ему не по силам.
Уважаемый, я так "мучаюсь" уже более года (а сервер у меня уже более 3 лет), у меня как и вас есть резервные каналы, и стараюсь я даже не совсем для себя, а больше для пользователей моего сервера, и как я вам уже и сказал, внешний хостинг меня никак, от слова СОВСЕМ не устраивает, так что давайте вы меня с ним больше не будете напрягать.
-
Зы. Пф хорош.
никакой 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 я никак не справлюсь то буду ставить второй или ещё что придумаю.
-
Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.
Да всё висит но одной карте и локалка и два входящих канала, могу сказать сразу, сетевуха (я думаю) справляется, могу сказать это по одной причине, при 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. Почему просто не попробовать тот же Дискорт?
-
Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.
Да всё висит но одной карте и локалка и два входящих канала, могу сказать сразу, сетевуха (я думаю) справляется, могу сказать это по одной причине, при DDOS атаке потери пакетов на локалке нет, если бы не справлялась сетевая то терялось бы везде.
И все-таки я бы советовал, ради эксперимента, воткнуть для другого WAN другую сетевую карту и посмотреть, что будет.
Какую карту лучше использовать, как думаете, встроенную на материнке или внешнюю PCi-E ?
Добрый.
Мил человек. Настырны? Я тоже.
Вы любите себе моСк три года рукалицо? Тратите (в том числе и) свое (драгоценное ?) время.
Внешний хостинг - спасение для вас в данном случае. Боитесь чего-то? Разверните 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 слот. Отпишитесь по итогам теста. Встроенную, думаю, пока не стоит трогать.
-
Можно обычную 100 мбит на pci слот. Отпишитесь по итогам теста. Встроенную, думаю, пока не стоит трогать.
Угу, у меня как раз гигабайтная TP-Link валяется, есть ещё интеловская, но она на работе, так что завтра с утра воткну TP, будем ждать DDOS атаки :)
-
Такая ситуация бывает обычно (на 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 может что-то дать на большом потоке
-
Такая ситуация бывает обычно (на 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-атак не было, будем поглядеть, как говориться ... :) -
Как полет, кстати?
-
Как полет, кстати?
Сегодня в моё отсутствие был относительно небольшой DDOS на пол часа (21 миллион пакетов), вроде с другой сетевой на втором канале потерь нет, но это не показатель, нужно чтобы я был на месте во время атаки для её мониторинга, а то точно не ясно на сколько маштабной она была и каково было ей содержание…, так что пока что всё нормально...
-
Да про NAT я тоже где-то читал, потому сразу и уточнил что порты проброшены, а как интересно тогда это работает, там же ещё при создании правил NAT можно указать определённую фильтрацию, ну типа список IP-адресов, чтобы некоторые страны исключить
В NAT нет никакой фильтрации, все пакеты, не зависимо от того применено ли было к ним правило NAT или нет, отправляются в фильтр. "Список IP-адресов" - это те айпи, к которым будет применяться NAT. Остальные полетят в фильтр напрямую.
-
Да про NAT я тоже где-то читал, потому сразу и уточнил что порты проброшены, а как интересно тогда это работает, там же ещё при создании правил NAT можно указать определённую фильтрацию, ну типа список IP-адресов, чтобы некоторые страны исключить
В NAT нет никакой фильтрации, все пакеты, не зависимо от того применено ли было к ним правило NAT или нет, отправляются в фильтр. "Список IP-адресов" - это те айпи, к которым будет применяться NAT. Остальные полетят в фильтр напрямую.
Я имею ввиду что когда в GUI создаёшь правило проброса портов то там можно указать как источник список IP адресов, соответственно только пакеты приходящие с этих IP и должны пройти в NAT, то есть если я исключаю из этого списка IP страны с которых в основном и идёт DDOS трафик, то я хоть и на немного, но снижаю нагрузку на роутер.
-
соответственно только пакеты приходящие с этих IP и должны пройти в NAT…
Нет. NAT абсолютно прозрачен, через него проходят все пакеты, беспрепятственно. Просто у тех, что в списке, меняется IP назначения, а остальные проходят в неизменном виде. Больше у "списка" никакой функции нет, он не отбрасывает пакеты с IP-шников отсутствующих в списке.
Заметьте, что для проброса порта не достаточно настроить NAT, нужно еще сделать разрешающее правило в фильтре. По умолчанию, pfSense создает его за вас. Вот именно оно и фильтрует адреса не из списка.