TBC_Ly0n
25/07/2009, 15h46
Bonjour,
Hier, SYN flood + Spoofing IP...
Pendant une petite journée, j'ai bloqué des millions de paquets à tour de bras.
Si vous utilisez Shorewall, l'idée d'utiliser les commandes iptables directement peut vous déplaire. Du coup, voila un petit script qui vous permettra de résister à un SYN flood en utilisant les fonctionnalités de Shorewall
Les services redémarrés sont à modifier en fonction du SYN flood auquel vous avez droit. Hier, c'était une attaque sur le port FTP et HTTP... (en même temps, il n'y avait que trois ports d'ouverts sur la machine !)
Pour détailler le fonctionnement :
- je blackliste une fois chaque IP (les connexions peuvent ne pas être fermées immédiatement)
- je redémarre les services impactés s'il y a encore trop de requêtes SYN.
Comme on dit : HTH
Hier, SYN flood + Spoofing IP...
Pendant une petite journée, j'ai bloqué des millions de paquets à tour de bras.
Si vous utilisez Shorewall, l'idée d'utiliser les commandes iptables directement peut vous déplaire. Du coup, voila un petit script qui vous permettra de résister à un SYN flood en utilisant les fonctionnalités de Shorewall
Code:
while [ true ] do BL=`shorewall show dynamic` LISTE_IPS=`netstat -tanpu | awk '/SYN_RECV/ {print $5}' | cut -f1 -d':' | sort | uniq -c | awk '{if ($1 > 10) {print $2}}'` if [ ! -z "$LISTE_IPS" ] then echo "$LISTE_IPS" | while read IP do echo "$BL" | grep "$IP" > /dev/null 2>&1 if [ $? -ne 0 ] then shorewall drop $IP fi done /etc/init.d/apache stop > /dev/null 2>&1 /etc/init.d/pure-ftpd stop > /dev/null 2>&1 sleep 10 /etc/init.d/apache start > /dev/null 2>&1 /etc/init.d/pure-ftpd start > /dev/null 2>&1 fi sleep 2 done
Pour détailler le fonctionnement :
- je blackliste une fois chaque IP (les connexions peuvent ne pas être fermées immédiatement)
- je redémarre les services impactés s'il y a encore trop de requêtes SYN.
Comme on dit : HTH