FastNetMon

Saturday, 16 January 2010

Защита HTTP серверов от DoS / DDoS атак

Рекомендую для этого следующие правила:

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.