Защита сервера от udp флуда и DDoS атак для Linux
На сегодняшний день существует множество способов DDoS'ить сервера движка hlds, а так же платформы srcds, udp (удп) флудом. Атаки в основном делаются с компьютеров у которых широкая полоса отдачи интернет канала либо (в основном) с VPS (расположенные в крупных датацентрах, злоумышленник как правило берёт тестовый период для умышленных атак, что бы в будущем сделать тоже самое, но уже с другого ip адреса), у которых большие каналы отдачи - к примеру 100 мегабит. В данной теме я приведу вам правила спасающие (частично) от "школьного" DDoS'а (От такого вида атак как программа под названием upd flooder и скрипт на perl'е). Защита заключается несколькими правилами, всеми нами любимого линуксового файрвола под названием iptables.
P.S - сейчас у многих есть на вооружении много гигабитные ботнеты. От них не спасут никакие файролы, да и приведённые в примере правила не дают гарантии ста процентной защиты.
Теперь к делу:
Я просто задал пару правил для линуховского iptables.. Точнее просто вбил пару строк в терминал!
iptables -A INPUT -p udp --dport 27015 -m hashlimit --hashlimit 50/s --hashlimit-burst 50 --hashlimit-mode srcip --hashlimit-name CSS -j ACCEPT
iptables -A INPUT -p udp --dport 27015 -j DROP
iptables -A INPUT -p udp --dport 27015 -j DROP
Где: 27015 - это порт Сервера, еще можно попробовать побаловаться с числом 50/s, но я себе поставил именно 50! Вбивайте и вы =)
После этого я тестил Зомбез несколькими програмками для ДОС-атак, среди которых был DDoS-ер с иконкой в виде лимона и CSS Server Lagger и Зомбез короче от них даже не пошевелился (хотя до этого любая из них сваливала Сервак за минуту).
Только одна програмка смогла поднять пинг до 200, но к счастью ее автор (програмки) эту прогу не распространяет и никому не дает =) !!!
Можно прописать и другие правила, для более точной фильтрации!
iptables -A INPUT -p udp -m udp --dport 27015 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --dport 27016 -m state --state NEW -m hashlimit --hashlimit 100/s --hashlimit-burst 100 --hashlimit-mode srcip --hashlimit-name TF -j ACCEPT
iptables -A INPUT -p udp --dport 27015 -j DROP
iptables -A INPUT -p udp --dport 27016 -m state --state NEW -m hashlimit --hashlimit 100/s --hashlimit-burst 100 --hashlimit-mode srcip --hashlimit-name TF -j ACCEPT
iptables -A INPUT -p udp --dport 27015 -j DROP
Здесь также можно попробовать изменить число 100, но мне кажется 50 или 100 - нормально!
Еще команды для iptables:
iptables -L -n - показывает уже существующие правила!
iptables -F - сбрасывает все правила!
iptables -F - сбрасывает все правила!
Или можно сделать так!
Ставите плагин DoS Attack Fixer (DAF) и в настройках включаете логирование! Далее, если произошла DDoS-атака, смотрите в логе с какого IP-адреса была атака, и баните IP-адрес через iptables! Бан по iptables - вещь очень надежная, на себе проверял =) !
Оффтоп: хотя и написано что этот плагин DAF защищает сервер от ДДОСа, но по моему мнению и опыту, ни фига он не защищает (Во всяком случае от лимона не спасал)
Оффтоп: хотя и написано что этот плагин DAF защищает сервер от ДДОСа, но по моему мнению и опыту, ни фига он не защищает (Во всяком случае от лимона не спасал)
Банить через iptables надо так:
iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Где xxx.xxx.xxx.xxx - это IP-адрес нарушителя!
Где xxx.xxx.xxx.xxx - это IP-адрес нарушителя!
Если нарушитель имеет динамический IP, сменил IP и ДДОСит дальше, то баним подсеть или несколько подсетей!
iptables -A INPUT -s xxx.xxx.xxx.0/24 -j DROP
Пример:
iptables -A INPUT -s 187.34.232.0/24 -j DROP -> Так мы забаним по iptables диапазон IP-адресов от 187.34.232.0 до 187.34.232.255
Разбан так:
iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
Правила и их описание взято отсюда.
Комментариев 0