Nível 1: DOS simples e lento
Para encontrar o endereço IP do invasor slowloris, eu uso a seguinte linha de comando:
netstat -ntu -4 -6 | awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' | sort | uniq -c | sort -n
Isso fornecerá o número de conexões ativas para cada IP conectado
Se você estiver sob um ataque simples do DOS, um garoto com um ou alguns IPs, aquele com 50 a 100 conexões (ou mais) provavelmente é um invasor do slowloris que pode ser descartado.
Isso é para detectá-los e descartá-los (com iptables ou seu hlfw preferido) em "tempo real" se você estiver conectado ao servidor durante o ataque.
Adicionar o tempo de processamento (argumento% D ou% T) em seus logs do apache também pode provavelmente ajudar a detectar ataques lentos "post-mortem" analisando os logs; se você não tiver essas informações em seus logs, não poderá encontrar nada de interessante. . Consulte http://httpd.apache.org/docs/current/mod/mod_log_config.html para obter a configuração do log.
Nível 2: DDOS grandes e reais
O netstat (use o watch netstat para atualização) ainda pode ajudar você a ver que alguns IPs estão sempre sempre conectados
Para combater o slowloris, no apache, instale os módulos reqtimeout e configure-o, exemplo:
http://pastebin.com/3BNNwfyb
Depois disso, todos os 408 que você vê no access_log têm 99,999% de certeza de que um ip do invasor do slowloris.
Usando o módulo reqtimeout apache, você pode enfrentar facilmente milhares de ips e milhares de pacotes / segundo em um servidor dedicado decente
O Iptables também pode ajudar um pouco com algo como:
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP