====== IPSet: простая блокировка DDOS по списку ====== Чтобы заблокировать небольшой DDOS - можно воспользоваться iptables. Добавлять много IP в iptables не вариант, т.к. чем больше правил в цепочках - тем больше нагрузка на CPU хоста. Лучше использовать довольно простой способ: берем список атакующих IP-адресов из файла, добавляем в список ipset и блокируем при помощи IPTables. Если атака серьезная - данный способ не подойдет, нужно уходить под защиту компаний, специализирующихся на данной услуге. Просто по той причине что ваш хостер получит забитые входящие каналы и отключит ваши IP для уменьшения нагрузки на других клиентов. ipset -N DDOS iphash xargs < ddos-addresses.txt -n 1 ipset -A DDOS iptables -A INPUT -m set --match-set DDOS dst -j DROP Осталось периодически обновлять список (в зависимости от скорости атаки) и перечитывать адреса из файла. Получить список адресов можно примерно так: iftop -nNPt -L 5000 -s 1 1> iftop-log.txt 2>/dev/null cat iftop-log.txt | grep ":22005" -A 1 | awk '{ print $1 }' | grep -x '[0-9\.\:]\{9,25\}' | grep -Eo "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" > dump.txt далее обрабатывал список ip адресов, убирая валидные адреса: grep -Fvxf valid-addrs.txt dump.txt | uniq > ddos-addresses.txt {{tag>iptables ipset ddos block_ddos}}