Тези команди ще ви помогнат да се защитите от DoS атака. Посредством тях, ще блокирате всяко IP, което за 60 секунди има повече от 20 връзки (connections) към текущата машина:
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP |
Резултат от командата:
[root@server ~]# netstat -alpn| grep ":80"| awk '{ print $5 }'| cut -d: -f4| sort| uniq -c | sort -n 1 * 3 66.249.72.131 16 81.100.74.82 17 82.12.246.158 19 212.183.140.13 19 78.148.123.94 20 85.211.47.252 20 86.166.141.234 20 87.97.215.7 20 89.253.191.173 20 91.92.170.172 20 94.156.57.170 20 94.169.158.18 22 77.78.11.99 |
Разбира се това е само пример и можете да смените стоностите за секунди (60) и брои връзки (20).
Имайте впредвид, че максималните стойности за –seconds са 60, а за –hitcount са 20
За да премахнете правило (RULE) от iptables използвайте следните команди.
Лист на всички правила в iptables:
iptables -L INPUT -n --line-numbers |
[root@server ~]# iptables -L INPUT -n --line-numbers Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW recent: UPDATE seconds: 60 hit_count: 20 name: DEFAULT side: source 2 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 state NEW recent: SET name: DEFAULT side: source 3 fail2ban-SSH tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 4 DROP all -- 67.195.0.0/24 0.0.0.0/0 [root@server ~]# |
За да изтрием правилото за блокиране на IP-тата в този случай пишем:
iptables -D INPUT 1 |