Фильтрация пакетов, NAT, большой обьём трафик
-
Я так понимаю, что все висит на одной карте? Если нет, поправьте меня более точно, что и как, где висит, на что разбито. Именно по железу.
Да всё висит но одной карте и локалка и два входящих канала, могу сказать сразу, сетевуха (я думаю) справляется, могу сказать это по одной причине, при 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 создает его за вас. Вот именно оно и фильтрует адреса не из списка. -
соответственно только пакеты приходящие с этих IP и должны пройти в NAT…
Нет. NAT абсолютно прозрачен, через него проходят все пакеты, беспрепятственно. Просто у тех, что в списке, меняется IP назначения, а остальные проходят в неизменном виде. Больше у "списка" никакой функции нет, он не отбрасывает пакеты с IP-шников отсутствующих в списке.
Заметьте, что для проброса порта не достаточно настроить NAT, нужно еще сделать разрешающее правило в фильтре. По умолчанию, pfSense создает его за вас. Вот именно оно и фильтрует адреса не из списка.Хм…, тогда что схема в этой https://forum.pfsense.org/index.php?topic=73670.0 ветке не совсем правильная или слишком упрощённая, там же перед NAT есть фильтрация…?
-
Добрый.
Когда же ТС поймет, что атака ведется не на транспортном уровне (pfsense) , а на уровне приложения (TS) ?P.s. Снова задаюсь вопросом - кому понадобился ТС со своим глубоко частным (?) сервисом, чтобы на него тратились и вкладывались в не самый простой тип атаки?
ТС, признайся, чем разозлил атакующих? Что-то тут не то :-\ -
Добрый.
Когда же ТС поймет, что атака ведется не на транспортном уровне (pfsense) , а на уровне приложения (TS) ?P.s. Снова задаюсь вопросом - кому понадобился ТС со своим глубоко частным (?) сервисом, чтобы на него тратились и вкладывались в не самый простой тип атаки?
ТС, признайся, чем разозлил атакующих? Что-то тут не то :-\Мне кажется, что ТС уже давал ответ по поводу того, зачем ему это все. Собственно, как и люди, давали совет, что в данной ситуации будет лучше.
Вопрос к вам: зачем талдычить это по 100 раз. Тем более, насколько я знаю, у него уже все практически получилось. -
Мне кажется, что ТС уже давал ответ по поводу того, зачем ему это все. Собственно, как и люди, давали совет, что в данной ситуации будет лучше.
Вопрос к вам: зачем талдычить это по 100 раз. Тем более, насколько я знаю, у него уже все практически получилось.Спасибо, да практически всё я думаю получилось, завтра утром (когда народу на сервере будет мало) верну всё на на сетевуху I350-T4, перегружу роутер с подправленными настройками и ещё потестирую (посмотрим как с ними будет себя роутер вести), но думаю уже сейчас можно сказать что проблема решена, остались частности…, по крайней мере я на это очень рассчитываю...
Добрый.
Когда же ТС поймет, что атака ведется не на транспортном уровне (pfsense) , а на уровне приложения (TS) ?P.s. Снова задаюсь вопросом - кому понадобился ТС со своим глубоко частным (?) сервисом, чтобы на него тратились и вкладывались в не самый простой тип атаки?
ТС, признайся, чем разозлил атакующих? Что-то тут не то :-\Я вам уже отвечал, но если вам так сложно понять, зайдите на любой более-менее топовый TS сервер, и спросите DDOS-ят ли их и за что, и я более чем уверен что 9 из 10 если не все 10 скажут что DDOS-ят или DDOS-или, а на ваш вопрос "за что", скажут что ни за что…
Вообще то тут может быть банальная цепная реакция, берёте сервер в ТОП-е, с какими то платными функциями, хорошенько его DDOS-ите, владелец бесится (сам лично видел таких, то в названия сервера вставляют ругательства в адрес ддосеров то ещё что), потом владелец атакованного сервера от обиды начинает подозревать всех тех кто занимает его место и даже не имея никаких доказательств начинает их DDOS-ить (как говориться не себе не людям или думает что мстит им), те в свою очередь повторяют его путь и так всё запускается по кругу, и так возникает круговорот DDOS-а в интернете, первый "шутник" уже давно это дело бросил, но остальные "обиженные" продолжают :)
Конечно в большинстве это моя догадка, но я думаю такое вполне может быть.Вы может не в курсе, но сейчас есть куча сайтов которые якобы предоставляют возможность протестировать вашу сеть на стресс - устойчивость, конечно большинство из них туфта, но некоторые, я думаю, за относительно небольшие деньги могут вам предоставить реальную возможность забить не самый жирный канал на короткое время.
Для обычного WEB сервера это не сильно смертельно, а вот для TS чувствительно, ибо народ вылетает с сервера, после чего падает привлекательность и надёжность сервера в глазах пользователей, особенно если это игроки и они в каком-нибудь рейде и из-за этого проиграют или что то подобное, он не будет разбираться, ему это не надо, он просто уйдёт на другой, более надёжный сервер, может и остаться если привык к вашему серверу, но если атаки будут продолжаться то любое терпение лопнет...Возможно некоторые такие сайты могут дать доступ и к настоящему ботнету, да и различного рода усилители UDP (DNS, NTP) и другие не такая уж и редкость.
Сейчас организовать DDOS атаку не так уж и сложно и для того чтобы быть атакованным не надо ничего такого делать (я видел как атаковали обычные, базовые TS сервера на 32 слота и причём не раз), сейчас могут DDOS-ить за что угодно и даже просто так... -
Добрый.
Как я понимаю вас на 9987\udp ддосят. Разрешение доступа к тимспик только с опред. адресов поможет отсеять поганцев, но вот с остальным :'(
Нельзя вот так просто взять и победить UDP flood (с) - https://www.linuxquestions.org/questions/linux-server-73/suggest-iptables-configuration-for-udp-flood-ddos-4175617845/
Диалог https://forum.teamspeak.com/threads/107581-Use-tcp-instead-udp и вариант решения (Mumble - https://github.com/mumble-voip/mumble)
Bla bla bla. Vent is TCP-only. Mumble has an option for TCP. I'm still maintaining a Vent demo server for talking to people with EDGE.
Интересный проект по борьбе с ддос - https://www.linkedin.com/pulse/20141022190816-122785577-защита-от-ddos-атак-с-помощью-fastnetmon, https://github.com/pavel-odintsov/fastnetmon
2 Fallen_A
Дам ссылку. Для понимания. Бесплатно. Держите https://habrahabr.ru/company/pentestit/blog/252233/ Тем более, что пока от вас здесь только совет по замене сетевой.