Зафильтровать UDP флуд на игровой сервер
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Зафильтровать UDP флуд на игровой сервер
Здравствуйте форумчане!
Я держу игровой сервер по игре RUST.
Сервер работает на ОС Windows.
Недавно столкнулся с нерешаемой проблемой. При гигабитном DoS UDP флуде на открытый порт игры игра загружает проц на 100%. Отфильтровать лишний трафик средствами винды - невозможно. Устанавливать еще один сервер на Linux - дорого.
Было решено перекрыть внешку сервера роутером и был выбран бюджетный вариант RB2011UiAS-RM.
Хотел бы у Вас поинтересоваться каким лучше способом настроить Микротик (роутером или мостом) и какие лучше правила/скрипты использовать.
Я держу игровой сервер по игре RUST.
Сервер работает на ОС Windows.
Недавно столкнулся с нерешаемой проблемой. При гигабитном DoS UDP флуде на открытый порт игры игра загружает проц на 100%. Отфильтровать лишний трафик средствами винды - невозможно. Устанавливать еще один сервер на Linux - дорого.
Было решено перекрыть внешку сервера роутером и был выбран бюджетный вариант RB2011UiAS-RM.
Хотел бы у Вас поинтересоваться каким лучше способом настроить Микротик (роутером или мостом) и какие лучше правила/скрипты использовать.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
Для начала неплохо бы определиться, с чем вы собираетесь бороться. Например, если у вас гигабитный канал к провайдеру, то при флуде шириной в весь канал нет особой разницы, какая загрузка процессора на сервере: играть всё равно будет некомфортно, если вообще возможно. Поэтому трафик флуда надо отсекать до того, как он прилетел к вам. Например, на оборудовании вашего провайдера.
Если вы просто не хотите пускать этот трафик к серверу, то надо смотреть на характер этого трафика: идёт ли он на порты сервера или на служебные порты (например, DNS 53/UDP), отвечает ли сервер на него, или трафик льётся лишь в одну сторону. В целом для данного случая можно использовать инструмент 'dst-limit' в фильтре файрвола.
Если вы просто не хотите пускать этот трафик к серверу, то надо смотреть на характер этого трафика: идёт ли он на порты сервера или на служебные порты (например, DNS 53/UDP), отвечает ли сервер на него, или трафик льётся лишь в одну сторону. В целом для данного случая можно использовать инструмент 'dst-limit' в фильтре файрвола.
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Трафик летит на 323 UDP порт с нескольких ботов. Общий поток 10000-15000 UDP пакетов длиной 1030 байт каждый в секунду. Иногда общий поток (игроки+дос) доходил до Гигабита на порте у меня тоже Гигабит.
Но это запущенный вариант, проблема не в канале, после 3000-4000 пакетов в секунду винда просто переставала принимать соединения, при этом провайдер мог зафильтровать айпишку атакующего после тикета.
Но так как атакуют боты, зафильтровывать через провайдера тикетами я буду бесконечно.
На самой винде я выжал максимум, убрал почти все сетевые службы и включил все возможные способы оптимизации, DNS отключен.
Для начала я настроил роутер на айпишку сервера и с локалки пробросил на него порт игры сервера, установил правило с Вашей темы http://forum.mikrotik.com/viewtopic.php?t=54607.
На проверку пытался зафлудить порт через LOIC, меня удачно забанило, при этом игроки продолжали играть.
Но с реальной атакой пока не сталкивался, будем наблюдать =)
Спасибо!
UPD: судя по адрес-банлисту поймал еще пару нарушителей, нагрузка на CPU роутера и сервера - минимальна, защита работает!
UPD2: досеры забили весь канал, но правило работает, загрузка микротика 70-80%, игроки играют ))) я в шоке
Но это запущенный вариант, проблема не в канале, после 3000-4000 пакетов в секунду винда просто переставала принимать соединения, при этом провайдер мог зафильтровать айпишку атакующего после тикета.
Но так как атакуют боты, зафильтровывать через провайдера тикетами я буду бесконечно.
На самой винде я выжал максимум, убрал почти все сетевые службы и включил все возможные способы оптимизации, DNS отключен.
Для начала я настроил роутер на айпишку сервера и с локалки пробросил на него порт игры сервера, установил правило с Вашей темы http://forum.mikrotik.com/viewtopic.php?t=54607.
На проверку пытался зафлудить порт через LOIC, меня удачно забанило, при этом игроки продолжали играть.
Но с реальной атакой пока не сталкивался, будем наблюдать =)
Спасибо!
UPD: судя по адрес-банлисту поймал еще пару нарушителей, нагрузка на CPU роутера и сервера - минимальна, защита работает!
UPD2: досеры забили весь канал, но правило работает, загрузка микротика 70-80%, игроки играют ))) я в шоке
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Есть еще один момент.
Судя по адресным спискам ддосят с OVH облачных хостингов и используют айпишки с одной подсети.
Есть ли возможность по одной айпишке прописывать всю подсеть в бан?
Это уже походу скриптинг, попытаюсь сам сделать, напишу.
Судя по адресным спискам ддосят с OVH облачных хостингов и используют айпишки с одной подсети.
Есть ли возможность по одной айпишке прописывать всю подсеть в бан?
Это уже походу скриптинг, попытаюсь сам сделать, напишу.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
а есть ли в этом особый смысл? всё равно если не дудосят - блокировать незачем, если начнётся атака - заблокируетnotnullnet писал(а):Есть ли возможность по одной айпишке прописывать всю подсеть в бан?
по-моему, эффектнее хостеру написать, что от них такие какахи валятся
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Месяц правило отбивало разнообразные атаки и наконец нащупали непонятное место в Mikrotik.
С прошлой недели как по команде роутер падает и теряет любую связь с внешним миром на 10 минут, как в правиле =)
Может быть такое что все игроки и сам сервер попадают в списки одновременно?
С прошлой недели как по команде роутер падает и теряет любую связь с внешним миром на 10 минут, как в правиле =)
Может быть такое что все игроки и сам сервер попадают в списки одновременно?
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
и что при этом на роутере происходит? трассировка, пинги с роутера в сторону внешнего мираnotnullnet писал(а):роутер падает и теряет любую связь с внешним миром на 10 минут, как в правиле =)
так происходит, или вы просто гадаете? почему бы просто не посмотреть?notnullnet писал(а):Может быть такое что все игроки и сам сервер попадают в списки одновременно?
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Процессор загружается на 100% из-за сетевой атаки.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
Если не секрет: вы видите мои сообщения? Почему не отвечаете на мои вопросы?
Tools -> Profile покажет, чем именно загружен процессор
Tools -> Profile покажет, чем именно загружен процессор
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Простите, был занят.
TCP SYN флуд происходил.
Процессор нагружает правило Firewall DROP connection state: NEW, TCP flags: SYN rate: 400/5 burst: 4.
Прилетает по 14-20 тысяч данных пакетов в секунду, на 5-6 мбит/с с 250 тысяч хостов.
Загрузка CPU с 5% подскакивает до 90%, а виновники firewall 50% и network 30%
Проблема так и не решена, ДЦ мне не помогает, бьюсь сам, пока проигрываю.
Я микротик свой уже низкоуровнево изучил и сделал вывод что нужно было брать CCR.
Прошу еще раз прощения если что не так написал, это мой первый микротик.
TCP SYN флуд происходил.
Процессор нагружает правило Firewall DROP connection state: NEW, TCP flags: SYN rate: 400/5 burst: 4.
Прилетает по 14-20 тысяч данных пакетов в секунду, на 5-6 мбит/с с 250 тысяч хостов.
Загрузка CPU с 5% подскакивает до 90%, а виновники firewall 50% и network 30%
Проблема так и не решена, ДЦ мне не помогает, бьюсь сам, пока проигрываю.
Я микротик свой уже низкоуровнево изучил и сделал вывод что нужно было брать CCR.
Прошу еще раз прощения если что не так написал, это мой первый микротик.
Последний раз редактировалось notnullnet 11 окт 2016, 09:57, всего редактировалось 1 раз.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
С чего вдруг такая догадка, что именно это правило нагружает процессор? Правил с connection-limit нет?
Вроде SYN-flood можно обрабатывать в таблице Raw файрвола - тогда Connection Tracking не будет грузиться этими пакетами. На практике не пробовал
Вроде SYN-flood можно обрабатывать в таблице Raw файрвола - тогда Connection Tracking не будет грузиться этими пакетами. На практике не пробовал
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
connection-limit нет
догадка такая потому что я его disable - умирает серв, enable - нагружает роутер =)
Raw файрвола? а где почитать можно про эту фичу?
догадка такая потому что я его disable - умирает серв, enable - нагружает роутер =)
Raw файрвола? а где почитать можно про эту фичу?
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
прочитал про RAW firewall, по сути это фаер на стадии прероутинга без трекинга соединений, тоесть он не умеет connection state смотреть и будет весь TCP траффик рубать с SYN флагом, а мне нужно рубать только те подключения которые только устанавливаются connection state: new
пробую эту методику
пока атаки нет до 100 пакетов в секунду
пробую эту методику
пока атаки нет до 100 пакетов в секунду
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
Я правильно вижу, что используется limit? Тогда, видимо, у текущих игроков проблем нет, а вот новые вряд ли могут подключиться. Я бы в сторону dst-limit посмотрел
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Я сбрасывал кусок трафика себе на снифер, в Вайршарке мне отобразило 250 тысяч хостов, по 2 пакета с каждого. Дст лимит наверное тут нельзя.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
Возможно, у этих пакетов есть какие-то другие характерные признаки...
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
В STEAM мне в открытую сознался один чел что "Как дела? Тебе не жить хохол е*****, сервер не встанет с колен, твою мамку я е*** и т.д." и сервер вместе с роутером опять упал
По сути, я узнал у ДЦ что ко мне уже летит 250к TCP SYN в секунду с 250к хостов. Это уже за гранью возможностей RB2011
Пока роутер в оффлайне. Я не знаю что теперь делать.
По сути, я узнал у ДЦ что ко мне уже летит 250к TCP SYN в секунду с 250к хостов. Это уже за гранью возможностей RB2011
Пока роутер в оффлайне. Я не знаю что теперь делать.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
есть pcap атакующих пакетов?Chupaka писал(а):Возможно, у этих пакетов есть какие-то другие характерные признаки...
кстати, а обратная связь с пользователями есть? может, сделать какой белый список? даже, например, "простукиванием" роутера перед игрой, чтобы с этого адреса подключения разрешались, а все остальные по умолчанию дропались
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Есть pcap 17к SYN атаки.
Обратную связь могу организовать через скрипты, при подключении собирать IP и сливать на сайт в БД.
А вот как принять этот список на роутере?
Да, и вчера ДЦ таки мной заинтересовался, написали что ограничат у себя на оборудовании... ждемс
UPD: переделал все правила фаервола, те что мог перенес в RAW, запретил все и открыл наружу только 2 игровых порта и порт PPTP, добавил правило разрешающее доступ к микротику только через локалку PPTP.
Обратную связь могу организовать через скрипты, при подключении собирать IP и сливать на сайт в БД.
А вот как принять этот список на роутере?
Да, и вчера ДЦ таки мной заинтересовался, написали что ограничат у себя на оборудовании... ждемс
UPD: переделал все правила фаервола, те что мог перенес в RAW, запретил все и открыл наружу только 2 игровых порта и порт PPTP, добавил правило разрешающее доступ к микротику только через локалку PPTP.
Последний раз редактировалось notnullnet 12 окт 2016, 10:14, всего редактировалось 1 раз.
-
- Сообщения: 21
- Зарегистрирован: 06 окт 2016, 08:43
Re: Зафильтровать UDP флуд на игровой сервер
На роутер через API и ssh сливай !
ну идея примерна такая , http://wiki.mikrotik.com/wiki/Use_Mikro ... n_firewall
Только обрабатывай свой скрипт.
ну идея примерна такая , http://wiki.mikrotik.com/wiki/Use_Mikro ... n_firewall
Только обрабатывай свой скрипт.
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
pcap не покажете?
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
http://dropmefiles.com/sBkjV
короче я отпустил SYN flood дальше на сервер, винда его схавала и не подавилась
а микротик даже RAW фаерволом задыхался на фильтрации
я думаю все дело в процессоре, на сервере у меня i7
UPD: теперь атакуют комбинированно, на фильтрах Микротика 150 млн пакетов в час дропается, периодически весь TCP траф дропает, но он мне не так важен
короче я отпустил SYN flood дальше на сервер, винда его схавала и не подавилась
а микротик даже RAW фаерволом задыхался на фильтрации
я думаю все дело в процессоре, на сервере у меня i7
UPD: теперь атакуют комбинированно, на фильтрах Микротика 150 млн пакетов в час дропается, периодически весь TCP траф дропает, но он мне не так важен
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Я чуток запутался.
В RAW фаерволе создал схему: что не разрешено то запрещено
но работает как-то странно, с серверной локалки 192.168.88.0/24 не устанавливает TCP подключения в инет, хотя явно указано что с нее все пропускать
с другой стороны то что не прописано явно проходит, например подключение к локальным 3389
но забивает 200к флуда на ура, и все работает, хоть и на 99% нагрузки
В RAW фаерволе создал схему: что не разрешено то запрещено
но работает как-то странно, с серверной локалки 192.168.88.0/24 не устанавливает TCP подключения в инет, хотя явно указано что с нее все пропускать
с другой стороны то что не прописано явно проходит, например подключение к локальным 3389
но забивает 200к флуда на ура, и все работает, хоть и на 99% нагрузки
-
- Сообщения: 4086
- Зарегистрирован: 29 фев 2016, 15:26
- Откуда: Минск
Re: Зафильтровать UDP флуд на игровой сервер
Катастрофически неудобно читать правила файрвола с картинки. Пользуйтесь "/ip firewall export" ("/ip firewall export file=blabla") в Терминале