у меня есть сервер Ubuntu 15.4, я открываю порт с номером 20000, я получил крупную DDos-атаку на этом порте, который я ввел в терминале
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
чтобы поймать IP взломщика и заблокировать его, я нашел огромное количество IP с открытым соединением 55
я должен создать автоматический сценарий с помощью iptables для защиты того порта
таким образом, если IP имеет соединение больше чем 5 iptable блоков это автоматически использование
iptables -A INPUT -s attacker ip address -j DROP
но я не знаю, как сделать тот сценарий, который это возьмет навсегда для блокирования дюйм/с один за другим :)
Следующее обнаружит дюйм/с и затем отбросит их больше дня.
# Dynamic Badguy List. Detect and DROP Bad IPs that try to access port 20000.
# Once they are on the BADGUY list then DROP all packets from them.
iptables -A INPUT -i eth0 -m recent --update --hitcount 5 --seconds 90000 --name BADGUY -j LOG --log-prefix "Port 20000 BAD:" --log-level info
iptables -A INPUT -i eth0 -m recent --update --hitcount 5 --seconds 90000 --name BADGUY -j DROP
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 20000 -m recent --set --name BADGUY -j ACCEPT
Замена eth0
с Вашим фактическим именем интерфейса.
Место эти правила после Ваше УСТАНОВЛЕННОЕ, СВЯЗАННОЕ обходное правило. Типичный пример:
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT