Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Тех-документация (https://forum.zone-game.info/forumdisplay.php?f=41)
-   -   RouterOS и базовая защита L2 :D (https://forum.zone-game.info/showthread.php?t=33686)

MrShyr 20.01.2014 21:27

RouterOS и базовая защита L2 :D
 
Небольшой мануальчик в продолжение темы о Mikrotik Routerboard и RouterOS.

https://forum.zone-game.info/showthread.php?t=30893

В общем то тема пойдет о базовой защите l2 сервера находящегося
за железкой поднятой на операционной системе RouterOS.

Что то типо домашная защита от школоты своими руками,
от UDP и SYN не спасет, но от нежелательного TCP избавит.
Защитит на неком уровне от брута, от превышения числа коннектов
с одного уникального хоста.

Все манипуляции будут выполняться встроенным фаерволлом.

Тема создана с учетом, что ваша подсеть уже поднята, машине с
сервером выдан локальный статический IP по средствам DHCP.

Основные понятия:

1. ether1 - интерфейс принимающий интернет, гнездо со шнурком провайдера.

2. !ВАША_ПОДСЕТЬ/24 - диапазон адресов вашей подсети.
Например 192.168.0.0/24, что включает в себя локальные адреса
в диапазоне от 192.168.0.1 до 192.168.0.254. Восклицательный знак
обозначает - применять правило ко всем хостам кроме вашей подсети.

3. ИПИ_САЙТА - яснопонятно, введено для снятия ограничений
прохождения хоста сайта сквозь все правила, что бы сайт
запрашивающий статистику или ломящийся в мускуль не забанило.

4. ЛОКАЛ_ИПИ_СЕРВЕРА - статический, локальный IP машины на которой
запущен сервер. Присваивается вручную непосредственно из
диапазона адресов !ВАША_ПОДСЕТЬ/24. Например 192.168.0.100.

5. 2106,7777,3306 - порты Логина, Гейма, Мускуля.

Для отлова нарушителей мы будем использовать всем давно приевшеюся
ловушку под названием "tarpit" да да, RouterOS умеет и не такое, так
как он основан на ядре Linux, в его пакет входит множество няшек.

Рассматривать мы будем лишь один пример, так как для всех
портов все практически одинаково, главное открыть суть.
А рассматривать на примере мы будем Login Server.

1. add action=tarpit chain=forward protocol=tcp src-address-list="L2AuthD DoS"

Так как трафик по фаерволлу как правило идет сверху-вниз, то правило
с ловушкой должно находится на самом верху нашей пирамиды.
А именно это правило проверяет занесенные адреса нарушителей
в лист L2AuthD DoS. И если они там имеются, то трафик дальше уже
пройти не сможет.

2. add action=add-src-to-address-list address-list="L2AuthD DoS" address-list-timeout=10m chain=forward connection-limit=10,32 dst-port=2106 protocol=tcp src-address=!ВАША_ПОДСЕТЬ/24

Данное правило проверяет количество одновременных соединений, и
если это правило обнаружит что хост имеет больше 10 одновременных
соединений с нашим портом - отправит хост в L2AuthD DoS на 10 минут.

3. add chain=forward dst-address=ЛОКАЛ_ИПИ_СЕРВЕРА dst-port=2106 protocol=tcp src-address=ИПИ_САЙТА

Правило снимающее все запреты с хоста нашего сайта.

4. add chain=forward dst-address=ЛОКАЛ_ИПИ_СЕРВЕРА dst-port=2106 limit=25/1m,5 protocol=tcp

Если хост не является сайтом, не имеет больше 10 соединений с портом,
и не находится в бане, то мы начинаем считать его подключения,
в данный момент правило настроено на 25 повторных подключений в минуту.
Если этот лимит не исчерпан то хост подключается к порту.

5. add action=add-src-to-address-list address-list="L2AuthD DoS" address-list-timeout=10m chain=forward dst-port=2106 protocol=tcp src-address=!ВАША_ПОДСЕТЬ/24

Относится к предыдущим правилам, что захватывает последнее правило
с лимитом повторных подключений в минуту, и если их больше указанного
количества - отправляет снова в бан лист L2AuthD DoS на 10 минут.

Вот и все, базовая защита для порта собрана :)

Извиняюсь, тему писал на коленке, может что то разъяснил не верно.
Может что-то вовсе забыл рассказать. Далее приведу полный конфиг.

Код:

add action=tarpit chain=forward protocol=tcp src-address-list="L2AuthD DoS"
add action=add-src-to-address-list address-list="L2AuthD DoS" address-list-timeout=10m chain=forward connection-limit=10,32 dst-port=2106 protocol=tcp src-address=!ВАША_ПОДСЕТЬ/24
add chain=forward dst-address=ЛОКАЛ_ИПИ_СЕРВЕРА dst-port=2106 protocol=tcp src-address=ИПИ_САЙТА
add chain=forward dst-address=ЛОКАЛ_ИПИ_СЕРВЕРА dst-port=2106 limit=25/1m,5 protocol=tcp
add action=add-src-to-address-list address-list="L2AuthD DoS" address-list-timeout=10m chain=forward dst-port=2106 protocol=tcp src-address=!ВАША_ПОДСЕТЬ/24
add action=tarpit chain=forward protocol=tcp src-address-list="L2Server DoS"
add action=add-src-to-address-list address-list="L2Server DoS" address-list-timeout=10m chain=forward connection-limit=10,32 dst-port=7777 protocol=tcp src-address=!ВАША_ПОДСЕТЬ/24
add chain=forward dst-address=ЛОКАЛ_ИПИ_СЕРВЕРА dst-port=7777 protocol=tcp src-address=ИПИ_САЙТА
add chain=forward dst-address=ЛОКАЛ_ИПИ_СЕРВЕРА dst-port=7777 limit=25/1m,5 protocol=tcp
add action=add-src-to-address-list address-list="L2Server DoS" address-list-timeout=10m chain=forward dst-port=7777 protocol=tcp src-address=!ВАША_ПОДСЕТЬ/24
add action=tarpit chain=forward protocol=tcp src-address-list="MySQL DoS"
add action=add-src-to-address-list address-list="MySQL DoS" address-list-timeout=10m chain=forward dst-port=3306 protocol=tcp src-address=!ВАША_ПОДСЕТЬ/24
add chain=forward dst-address=ЛОКАЛ_ИПИ_СЕРВЕРА dst-port=3306 protocol=tcp src-address=ИПИ_САЙТА

Все остальное просто дропаем :)

Auri 20.01.2014 22:51

Re: RouterOS и базовая защита L2 :D
 
Отличный мануал, настроил на компе и теперь запускаю сервера и срубаю миллионы!!!!!!
Когда уже будет защитка от upd?

MrShyr 20.01.2014 23:02

Re: RouterOS и базовая защита L2 :D
 
Цитата:

Сообщение от Auri (Сообщение 347352)
Отличный мануал, настроил на компе и теперь запускаю сервера и срубаю миллионы!!!!!!
Когда уже будет защитка от upd?

Жди, скоро все будет :D З.Ы. Благодарю за тестирование на лайве :_smile_:


Текущее время: 10:43. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot