Contrer les attaques DDOS
Le serveur attend pendant un certain délai la réponse et la connexion semi-ouverte consomme alors un certain nombre de ressources. En multipliant ce type de connexions, le hacker peut arriver à créer un déni de service qui rendra la machine inopérante.
1. Détection d’une l’attaque DDOS SYN flood
Pour détecter la présence de l’attaque, il faut utiliser la commande netstat et repérer la présence des connexions de type SYN_RECV :
# netstat -an | grep SYN
tcp 0 0 10.xxx.xxx.xxx 237.177.154.8:25882 SYN_RECV -
tcp 0 0 10.xxx.xxx.xxx 236.15.133.204:2577 SYN_RECV -
tcp 0 0 10.xxx.xxx.xxx 127.160.6.129:51748 SYN_RECV -
tcp 0 0 10.xxx.xxx.xxx 230.220.13.25:47393 SYN_RECV -
2. Contrer une attaque DDOS SYN flood
La dernière commande renvoie plusieurs dizaines de résultats. L’attaque par SYN flood est donc confirmée. Pour la contrer une solution consiste à modifier quelques paramètres du noyau Linux à chaud. Voici les commandes à utiliser en root uniquement :
echo « 1″ > /proc/sys/net/ipv4/tcp_syncookies
echo « 1024″ > /proc/sys/net/ipv4/tcp_max_syn_backlog
echo « 1″ > /proc/sys/net/ipv4/conf/all/rp_filter
Quelques explications :
- La première ligne fait en sorte que la machine ne garde pas en mémoire les demande de connexion semi-ouverte tant qu’elle n’as pas reçu la confirmation ACK
- La deuxième commandes positionne à 1024 le nombre maximum de SYN_WAIT
- Enfin, la variable rp_filter permet de vérifier qu’un paquet arrive bien par l’interface sur laquelle il devrait arriver
Il est possible de paramétrer ses valeurs de façon permanente en modifiant le fichier /etc/sysctl.conf :
# Protection SYN flood
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.tcp_max_syn_backlog = 1024
On pourra ensuite recharger la configuration avec la commande :
sysctl -p /etc/sysctl.conf
Via Tux-planet