Cet article explique comment réagir face à une suspicion d'attaque contre votre site internet hébergé sur un serveur Linux en supposant que vous disposez d'un accès administrateur (root) sur celui-ci.
I. Détecter le nombre de paquets perdus
La première étape est de tester l'accessibilité de votre site internet. Un site difficilement accessible peut être la conséquence d'une attaque. Utilisez la commande PING pour mesurer la disponibilité de votre site ou serveur à partir d'une machine distante reliée au réseau.
A partir d'un terminal Linux :
Ping -c 20 monsite.fr
(le paramètre -c indique le nombre de demandes d'écho à envoyer)
A partir d'une machine Windows, ouvrez l'invite de commande et exécutez :
Ping -n 20 monsite.fr
(le paramètre -n indique le nombre de demandes d'écho à envoyer)
Si les statistiques montrent un pourcentage important de paquets perdus, il est probable qu'il se passe quelque chose d'inhabituel sur votre serveur.
II. Vérifier le nombre de tâches et la charge de votre serveur
Une fois connecté en administrateur, vous devez vérifier que votre serveur n'est pas victime d'une surcharge. La commande « Uptime » permet d'afficher la charge moyenne. Un résultat correct ne devrait pas excéder 3.00.
[root]# uptime
09:19:18 up 10 days, 12:44, 1 user, load average: 0.10, 0.09, 0.09
La commande PS permet d'afficher le nombre de tâches exécutées à l'instant T :
[root]# ps -edf | wc -l
Si le résultat est largement supérieur à la normale, alors il est probable que votre serveur subisse une attaque. Vous pouvez affiner votre recherche en filtrant seulement les taches exécutées par votre serveur http (ici apache) :
[root]# ps -edf | grep " /usr/sbin/httpd" | wc -l
III. Déterminer la source de l'attaque
La commande « netstat » vous permet de détecter les IP d'où proviennent l'attaque en affichant le volume des requêtes par IP.
[root]# netstat -np | grep 'httpd' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
2 141.255.109.124
4 85.110.133.235
100 93.40.214.238
200 95.223.74.237
Le premier nombre affiche le volume des requêtes. Dans notre exemple, l'IP 95.223.74.237 avec 200 requêtes, et l'IP 93.40.214.238 avec 100 requêtes sont suspectes.
IV. Bannir les IP à l'origine de l'attaque
Une fois les IP coupables détectées, vous pouvez les bannir avec la commande « iptables ».
Bannir l'IP 95.223.74.237 :
[root]# /sbin/iptables -I INPUT -s 95.223.74.237 -j DROP
L'IP sera bannie jusqu'au redémarrage du serveur. Vous pouvez annuler le bannissement avec :
[root]# /sbin/iptables -D INPUT -s 95.223.74.237 -j DROP
Pour lister les IP bannies :
[root]# /sbin/iptables -L INPUT -v -n | grep DROP
V. Sécuriser votre serveur Linux en installant RK Hunter
Rk Hunter est un logiciel chasseur de rootkit. Un rootkit est un petit programme généralement malveillant dissimulé dans les commandes du système Linux afin de cacher sa présence. Le rootkit ouvre généralement un accès à votre serveur (cheval de Troie) au pirate souhaitant prendre le contrôle de votre serveur.
Rk Hunter va scanner votre système afin de détecter ce genre de programme en comparant les exécutables connus de votre système avec une base en ligne. Pour plus d'information sur RKhunter, veuillez consulter la documentation.
Installer RK Hunter avec yum (centOS) :
[root]# sudo yum install rkhunter
Exécuter RkHunter et analyser le système :
[root]# sudo rkhunter --check --sk
Il est conseillé d'exécuter RKhunter dès l'installation du serveur.