http://phpsuxx.blogspot.com/2009/12/iptables_16.html и http://phpsuxx.blogspot.com/2010/01/http-get-dos.html
То есть, итого:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name http --set
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name http --update --seconds 60 --hitcount 20 -j DROP
А если хотите только записывать подозрительных товарищей, то -j LOG и dmesg Вам в помощь и вот примерчик:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j LOG
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name http --set
iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name http --update --seconds 60 --hitcount 20 -j LOG
Только не забываем отключить syslog, иначе будем смерть винтам :)
/etc/init.d/rsyslog stop
Ну и следом пускаем бан-скрипт:
while true; do sleep 1; dmesg -c; done | awk '{print $6}' | tr '=' ' ' | awk '{print $2}' | while read ip; do iptables -I INPUT -p tcp --dport 80 -s $ip -j DROP ; done
No comments :
Post a Comment
Note: only a member of this blog may post a comment.