Livello 1: slowloris semplice DOS
Per trovare l'indirizzo IP dell'attaccante slowloris uso la seguente riga di comando:
netstat -ntu -4 -6 | awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' | sort | uniq -c | sort -n
Questo ti darà il numero di connessioni attive per ogni IP connesso
Se sei sotto un semplice attacco DOS, un kiddie con uno o pochi IP, quello con 50-100 connessioni (o più) è molto probabilmente un attaccante slowloris che puoi rilasciare.
Questo per rilevare e rilasciare (con iptables o il tuo hlfw preferito) "real time" se sei connesso al server durante l'attacco.
L'aggiunta del tempo di elaborazione (argomento% D o% T) nei registri di Apache può anche aiutare a rilevare gli attacchi di rallentatore "post mortem" analizzando i registri, se non si dispone di queste informazioni nei registri, non sarà possibile trovare nulla di interessante . Vedere http://httpd.apache.org/docs/current/mod/mod_log_config.html per la configurazione del registro.
Livello 2: vero grande DDOS slowloris
netstat (usa watch netstat per l'aggiornamento) può comunque aiutarti a vedere che alcuni IP sono sempre connessi
Per combattere slowloris, su apache, installa i moduli reqtimeout e configuralo, ad esempio:
http://pastebin.com/3BNNwfyb
Dopodiché, ogni 408 che vedi in access_log è sicuro al 99,999% di un IP attaccante slowloris.
Utilizzando il modulo reqtimeout apache, puoi facilmente affrontare migliaia di ips e migliaia di pacchetti / secondo su un server dedicato decente
Iptables può anche aiutare un po 'con qualcosa come:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP