Зафильтровать UDP флуд на игровой сервер
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
Re: Зафильтровать UDP флуд на игровой сервер
Я правильно вижу, что используется limit? Тогда, видимо, у текущих игроков проблем нет, а вот новые вряд ли могут подключиться. Я бы в сторону dst-limit посмотрел
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Я сбрасывал кусок трафика себе на снифер, в Вайршарке мне отобразило 250 тысяч хостов, по 2 пакета с каждого. Дст лимит наверное тут нельзя.
Re: Зафильтровать UDP флуд на игровой сервер
Возможно, у этих пакетов есть какие-то другие характерные признаки...
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
В STEAM мне в открытую сознался один чел что "Как дела? Тебе не жить хохол е*****, сервер не встанет с колен, твою мамку я е*** и т.д." и сервер вместе с роутером опять упал
По сути, я узнал у ДЦ что ко мне уже летит 250к TCP SYN в секунду с 250к хостов. Это уже за гранью возможностей RB2011
Пока роутер в оффлайне. Я не знаю что теперь делать.
По сути, я узнал у ДЦ что ко мне уже летит 250к TCP SYN в секунду с 250к хостов. Это уже за гранью возможностей RB2011
Пока роутер в оффлайне. Я не знаю что теперь делать.
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 раз.
Re: Зафильтровать UDP флуд на игровой сервер
На роутер через API и ssh сливай !
ну идея примерна такая , http://wiki.mikrotik.com/wiki/Use_Mikro ... n_firewall
Только обрабатывай свой скрипт.
ну идея примерна такая , http://wiki.mikrotik.com/wiki/Use_Mikro ... n_firewall
Только обрабатывай свой скрипт.
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% нагрузки
Re: Зафильтровать UDP флуд на игровой сервер
Катастрофически неудобно читать правила файрвола с картинки. Пользуйтесь "/ip firewall export" ("/ip firewall export file=blabla") в Терминале
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Могу и так.
но мне кажется читать еще тяжелее
Код: Выделить всё
# oct/13/2016 15:05:22 by RouterOS 6.38rc12
#
/ip firewall filter
add action=fasttrack-connection chain=forward comment="default configuration" \
!connection-bytes !connection-limit !connection-mark \
!connection-nat-state !connection-rate connection-state=\
established,related !connection-type !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-bridge-port !in-interface !ingress-priority \
!ipsec-policy !ipv4-options !layer7-protocol !limit !nth !out-bridge-port \
!out-interface !p2p !packet-mark !packet-size !per-connection-classifier \
!port !priority !protocol !psd !random !routing-mark !routing-table \
!src-address !src-address-list !src-address-type !src-mac-address \
!src-port !tcp-flags !tcp-mss !time !ttl
add action=drop chain=input comment="drop invalid" !connection-bytes \
!connection-limit !connection-mark !connection-nat-state !connection-rate \
connection-state=invalid !connection-type !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-bridge-port !in-bridge-port-list !in-interface \
!in-interface-list !ingress-priority !ipsec-policy !ipv4-options \
!layer7-protocol !limit !nth !out-bridge-port !out-bridge-port-list \
!out-interface !out-interface-list !p2p !packet-mark !packet-size \
!per-connection-classifier !port !priority !protocol !psd !random \
!routing-mark !routing-table !src-address !src-address-list \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
add action=drop chain=forward !connection-bytes !connection-limit \
!connection-mark !connection-nat-state !connection-rate connection-state=\
invalid !connection-type !content !dscp !dst-address !dst-address-list \
!dst-address-type !dst-limit !dst-port !fragment !hotspot !icmp-options \
!in-bridge-port !in-bridge-port-list !in-interface !in-interface-list \
!ingress-priority !ipsec-policy !ipv4-options !layer7-protocol !limit \
!nth !out-bridge-port !out-bridge-port-list !out-interface \
!out-interface-list !p2p !packet-mark !packet-size \
!per-connection-classifier !port !priority !protocol !psd !random \
!routing-mark !routing-table !src-address !src-address-list \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
add action=jump chain=forward comment="drop DDoS" !connection-bytes \
!connection-limit !connection-mark !connection-nat-state !connection-rate \
connection-state=new !connection-type !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-bridge-port !in-bridge-port-list !in-interface \
!in-interface-list !ingress-priority !ipsec-policy !ipv4-options \
jump-target=block-ddos !layer7-protocol !limit !nth !out-bridge-port \
!out-bridge-port-list !out-interface !out-interface-list !p2p \
!packet-mark !packet-size !per-connection-classifier !port !priority \
!protocol !psd !random !routing-mark !routing-table !src-address \
!src-address-list !src-address-type !src-mac-address !src-port !tcp-flags \
!tcp-mss !time !ttl
add action=drop chain=forward !connection-bytes !connection-limit \
!connection-mark !connection-nat-state !connection-rate connection-state=\
new !connection-type !content !dscp !dst-address dst-address-list=ddosed \
!dst-address-type !dst-limit !dst-port !fragment !hotspot !icmp-options \
!in-bridge-port !in-bridge-port-list !in-interface !in-interface-list \
!ingress-priority !ipsec-policy !ipv4-options !layer7-protocol !limit \
!nth !out-bridge-port !out-bridge-port-list !out-interface \
!out-interface-list !p2p !packet-mark !packet-size \
!per-connection-classifier !port !priority !protocol !psd !random \
!routing-mark !routing-table !src-address src-address-list=ddoser \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
add action=return chain=block-ddos !connection-bytes !connection-limit \
!connection-mark !connection-nat-state !connection-rate !connection-state \
!connection-type !content !dscp !dst-address !dst-address-list \
!dst-address-type dst-limit=50,50,src-and-dst-addresses/10s !dst-port \
!fragment !hotspot !icmp-options !in-bridge-port !in-bridge-port-list \
!in-interface !in-interface-list !ingress-priority !ipsec-policy \
!ipv4-options !layer7-protocol !limit !nth !out-bridge-port \
!out-bridge-port-list !out-interface !out-interface-list !p2p \
!packet-mark !packet-size !per-connection-classifier !port !priority \
!protocol !psd !random !routing-mark !routing-table !src-address \
!src-address-list !src-address-type !src-mac-address !src-port !tcp-flags \
!tcp-mss !time !ttl
add action=add-dst-to-address-list address-list=ddosed address-list-timeout=\
10m chain=block-ddos !connection-bytes !connection-limit !connection-mark \
!connection-nat-state !connection-rate !connection-state !connection-type \
!content !dscp !dst-address !dst-address-list !dst-address-type \
!dst-limit !dst-port !fragment !hotspot !icmp-options !in-bridge-port \
!in-bridge-port-list !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !layer7-protocol !limit !nth !out-bridge-port \
!out-bridge-port-list !out-interface !out-interface-list !p2p \
!packet-mark !packet-size !per-connection-classifier !port !priority \
!protocol !psd !random !routing-mark !routing-table !src-address \
!src-address-list !src-address-type !src-mac-address !src-port !tcp-flags \
!tcp-mss !time !ttl
add action=add-src-to-address-list address-list=ddoser address-list-timeout=\
10m chain=block-ddos !connection-bytes !connection-limit !connection-mark \
!connection-nat-state !connection-rate !connection-state !connection-type \
!content !dscp !dst-address !dst-address-list !dst-address-type \
!dst-limit !dst-port !fragment !hotspot !icmp-options !in-bridge-port \
!in-bridge-port-list !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !layer7-protocol !limit !nth !out-bridge-port \
!out-bridge-port-list !out-interface !out-interface-list !p2p \
!packet-mark !packet-size !per-connection-classifier !port !priority \
!protocol !psd !random !routing-mark !routing-table !src-address \
!src-address-list !src-address-type !src-mac-address !src-port !tcp-flags \
!tcp-mss !time !ttl
/ip firewall nat
add action=src-nat chain=srcnat comment="First local 88.2" !connection-bytes \
!connection-limit !connection-mark !connection-rate !connection-type \
!content !dscp !dst-address !dst-address-list !dst-address-type \
!dst-limit !dst-port !fragment !hotspot !icmp-options !in-bridge-port \
!in-bridge-port-list !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !layer7-protocol !limit !nth !out-bridge-port \
!out-bridge-port-list out-interface=ether1-gateway !out-interface-list \
!packet-mark !packet-size !per-connection-classifier !port !priority \
!protocol !psd !random !routing-mark !routing-table src-address=\
192.168.88.2 !src-address-list !src-address-type !src-mac-address \
!src-port !tcp-mss !time to-addresses=194.54.80.165 !to-ports !ttl
add action=dst-nat chain=dstnat !connection-bytes !connection-limit \
!connection-mark !connection-rate !connection-type !content !dscp \
dst-address=194.54.80.165 !dst-address-list !dst-address-type !dst-limit \
!dst-port !fragment !hotspot !icmp-options !in-bridge-port \
!in-bridge-port-list in-interface=ether1-gateway !in-interface-list \
!ingress-priority !ipsec-policy !ipv4-options !layer7-protocol !limit \
!nth !out-bridge-port !out-bridge-port-list !out-interface \
!out-interface-list !packet-mark !packet-size !per-connection-classifier \
!port !priority !protocol !psd !random !routing-mark !routing-table \
!src-address !src-address-list !src-address-type !src-mac-address \
!src-port !tcp-mss !time to-addresses=192.168.88.2 !to-ports !ttl
add action=src-nat chain=srcnat comment="Second local 88.3" !connection-bytes \
!connection-limit !connection-mark !connection-rate !connection-type \
!content !dscp !dst-address !dst-address-list !dst-address-type \
!dst-limit !dst-port !fragment !hotspot !icmp-options !in-bridge-port \
!in-bridge-port-list !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !layer7-protocol !limit !nth !out-bridge-port \
!out-bridge-port-list out-interface=ether1-gateway !out-interface-list \
!packet-mark !packet-size !per-connection-classifier !port !priority \
!protocol !psd !random !routing-mark !routing-table src-address=\
192.168.88.3 !src-address-list !src-address-type !src-mac-address \
!src-port !tcp-mss !time to-addresses=194.54.80.166 !to-ports !ttl
add action=dst-nat chain=dstnat !connection-bytes !connection-limit \
!connection-mark !connection-rate !connection-type !content !dscp \
dst-address=194.54.80.166 !dst-address-list !dst-address-type !dst-limit \
!dst-port !fragment !hotspot !icmp-options !in-bridge-port \
!in-bridge-port-list in-interface=ether1-gateway !in-interface-list \
!ingress-priority !ipsec-policy !ipv4-options !layer7-protocol !limit \
!nth !out-bridge-port !out-bridge-port-list !out-interface \
!out-interface-list !packet-mark !packet-size !per-connection-classifier \
!port !priority !protocol !psd !random !routing-mark !routing-table \
!src-address !src-address-list !src-address-type !src-mac-address \
!src-port !tcp-mss !time to-addresses=192.168.88.3 !to-ports !ttl
/ip firewall raw
add action=accept chain=prerouting !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit dst-port=1723 !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority protocol=tcp !psd !random !src-address !src-address-list \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
add action=accept chain=prerouting !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority protocol=gre !psd !random !src-address !src-address-list \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
add action=accept chain=prerouting !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit dst-port=232,323 !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority protocol=udp !psd !random !src-address !src-address-list \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
add action=accept chain=prerouting !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority !protocol !psd !random src-address=192.168.0.0/24 \
!src-address-list !src-address-type !src-mac-address !src-port !tcp-flags \
!tcp-mss !time !ttl
add action=accept chain=prerouting !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority !protocol !psd !random src-address=192.168.88.0/24 \
!src-address-list !src-address-type !src-mac-address !src-port !tcp-flags \
!tcp-mss !time !ttl
add action=accept chain=prerouting !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority !protocol !psd !random src-address=8.8.8.8 !src-address-list \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
add action=accept chain=prerouting !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority !protocol !psd !random src-address=212.86.107.40 \
!src-address-list !src-address-type !src-mac-address !src-port !tcp-flags \
!tcp-mss !time !ttl
add action=jump chain=prerouting comment="drop syn flood" !content !dscp \
!dst-address !dst-address-list !dst-address-type !dst-limit !dst-port \
!fragment !hotspot !icmp-options !in-interface !in-interface-list \
!ingress-priority !ipsec-policy !ipv4-options jump-target=RawSynDrop \
!limit !nth !out-interface !out-interface-list !packet-size \
!per-connection-classifier !port !priority protocol=tcp !psd !random \
!src-address !src-address-list !src-address-type !src-mac-address \
!src-port tcp-flags="" !tcp-mss !time !ttl
add action=accept chain=RawSynDrop !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options limit=1k/5s,200:packet !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority protocol=tcp !psd !random !src-address !src-address-list \
!src-address-type !src-mac-address !src-port tcp-flags="" !tcp-mss !time \
!ttl
add action=drop chain=RawSynDrop !content !dscp !dst-address \
!dst-address-list !dst-address-type !dst-limit !dst-port !fragment \
!hotspot !icmp-options !in-interface !in-interface-list !ingress-priority \
!ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority protocol=tcp !psd !random !src-address !src-address-list \
!src-address-type !src-mac-address !src-port tcp-flags="" !tcp-mss !time \
!ttl
add action=drop chain=prerouting comment="drop anything" !content !dscp \
!dst-address !dst-address-list !dst-address-type !dst-limit !dst-port \
!fragment !hotspot !icmp-options !in-interface !in-interface-list \
!ingress-priority !ipsec-policy !ipv4-options !limit !nth !out-interface \
!out-interface-list !packet-size !per-connection-classifier !port \
!priority !protocol !psd !random !src-address !src-address-list \
!src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \
!ttl
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set irc disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
Re: Зафильтровать UDP флуд на игровой сервер
Ох, жесть какая! Это в какой версии? Проверил 6.33, 6.35, 6.36 и 6.37 - экспорт нормальный, только в 6.38rc нашёл такую ересь...
-
- Сообщения: 16
- Зарегистрирован: 08 сен 2016, 12:36
Re: Зафильтровать UDP флуд на игровой сервер
Откачусь наверн на предыдущую версию.
Вообщем моя текущая проблема: роутер держит 200к SYN и другого TCP флуда в секунду, дальше - идет пропуск и задержка пакетов из-за 100% CPU роутера
Все рабочие правила перенесены в RAW. В стандартном фильтре только fasttrack и Ваш эффективный анти дудос с списками для малого к-ва хостов.
Вообщем моя текущая проблема: роутер держит 200к SYN и другого TCP флуда в секунду, дальше - идет пропуск и задержка пакетов из-за 100% CPU роутера
Все рабочие правила перенесены в RAW. В стандартном фильтре только fasttrack и Ваш эффективный анти дудос с списками для малого к-ва хостов.