Защита от OOG атак на основе iptables

follow

Пользователь
Пользователь
Регистрация
24 Окт 2019
Сообщения
37
Реакции
23
Взято с соседнего форума

Первым делом мы создаем скрипт-правила фаерволла, назвать можете как пожелаете.
iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length 500:65535 -j LOG --log-prefix "PW"
Этим правилом мы записываем все игровые пакеты с порта 29000 размером от 500 до 65535 байтов.
iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length 500:65535 -m recent --name packets --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length 500:65535 -m recent --name packets --update --seconds 1 --hitcount 100 -j REJECT
Этими правилами мы блокируем пользователя, если сервер получил от него больше 100 пакетов размером 500 - 65535 байт за 1 секунду на 29000 (игровой) порт.
iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length SIZE -m recent --name packet1 --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m length --length SIZE -m recent --name packet1 --update --seconds 15 --hitcount 3 -j REJECT
Этими правилами мы блокируем пользователей, которые отправили больше 3-х пакетов за 15 секунд на порт 29000. SIZE - размер пакета в байтах.
Как отследить размер пакета в байтах?
После первого правила, где мы логируем все игровые пакеты, Вы сможете увидеть их в файле /var/log/syslog или командой dmesg в консоли сервера.
Когда идет атака в syslog будет множество одинаковых пакетов за короткое время.
[68003.357231] PW IN=ipip1 OUT= MAC= SRC=USER IP ADRESS DST=*.*.*.* LEN=547 TOS=0x00 PREC=0x00 TTL=241 ID=13328 DF PROTO=TCP SPT=22511 DPT=63947 WINDOW=254 RES=0x00 ACK PSH URGP=0
В примере выше - размером пакета является 'LEN=547'.

С OOG защитой разобрались. Перейдем к другим способам конкуренции NewDestiny.
Брут аккаунтов. Здесь все совершенно просто:
#block brute force login
iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate NEW -m recent --name brute --set
iptables -A INPUT -p tcp -m multiport --dports 29000 -m conntrack --ctstate NEW -m recent --name brute --update --seconds 30 --hitcount 3 -j REJECT
Этим правилом мы блокируем IP пользователя на 30 секунд, если он сделал больше 3-х запросов на подключение к порту 29000.

Рекомендации защиты сервера от взлома:
  • Делайте полное ограничение по портам, кроме игрового через iptables.
  • Делайте подключение к серверу по ssh key (ключи) с кодовым словом.
  • Используйте последние версии mysql, apache2 и других немаловажных пакетов.
  • После нагрузки через OOG используйте logrotate, иначе при резервном копировании логов оперативная память Вашего сервера будет полностью использована. Это может стать последствием для взлома.
  • Не используйте постороннее ПО на игровом сервере.
  • Используйте нестандартный фильтр паролей игроков. За несколько часов на нашей авторизации было свыше 50.000 невалидных попыток авторизаций. У 30% наших игроков совпадали логины из этих пар логин-пароль.
(с)UNITWAY
 

Vice

Активный пользователь
Пользователь
Регистрация
2 Окт 2019
Сообщения
78
Реакции
39
Telegram
pokseaz
помогает? кто ставил?
 
Сверху