Posts Tagged ddos
Apache2 – mod_evasive
Vediamo come prevenire attacchi DDOS con questo modulo di apache:
# up2date -i httpd-devel
# cd /usr/local/src
# wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
# tar -zxvf mod_evasive_1.10.1.tar.gz
# cd mod_evasive
# /usr/sbin/apxs -cia mod_evasive20.c
Adesso aggiungiamo quanto segue in /etc/apache2/apache2.conf
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 600
</IfModule>
# /etc/init.d/apache2 restart
Rate-limit: salvaci dal DDoS
Questo interessantissimo modulo di IPTables ci permette di regolare le connessioni in arrivo sulla nostra macchina, in modo da limitare i danni, sia in caso di DDoS che di bruteforce, in quest’ultimo caso puo’ essere evitato con le seguenti regole:
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \
--update --seconds 60 --hitcount 4 -j DROP
Dopo 4 tentativi in 60 secondi l’ip viene droppato.
Con la seguente regola invece possiamo limitare i pacchetti di tipo ICMP (molto spesso usati negli attacchi DDoS) a 3 richieste per secondo, il resto viene droppato:
iptables -I INPUT -p icmp --icmp-type echo-request -m limit !--limit 3/s -j ACCEPT
Un attacco DDoS invece su di un range di porte che va dalla 20100 alla 20400 e che accetta pacchetti UDP puo’ essere limitato cosi’:
iptables -A INPUT -p udp -m udp --dport 20100:20500 -m state --state NEW -m recent --set --name DEFAULT \
--rsource
iptables -A INPUT -p udp -m udp --dport 20100:20500 -m state --state NEW -m recent --update --seconds 10 \
--hitcount 10 --name DEFAULT --rsource -j DROP