Christophe Casalegno

Votre WordPress subit une attaque DDoS de type « Pingback » ? Utilisez iptables

Les attaques DDoS sur les sites WordPress de type « Pingback » peuvent générer beaucoup de requêtes qui peuvent au final affecter les performances et la disponibilité de votre site internet. Vous pouvez facilement reconnaître ces attaques au travers de vos logs : des milliers de requêtes provenant de User-Agents « WordPress xxx » qui vous envoie un « pingback ».
 
Il est possible d’utiliser une règle dans le .htaccess pour bloquer le User-Agent WordPress comme indiqué à la fin du post, cependant, ceci n’empêchera pas la saturation de votre serveur Web Apache, Nginx ou autre s’il y en a vraiment trop de connexions. La solution consiste alors à utiliser directement iptables pour se débarrasser des requêtes avant même qu’elles ne soient traitées par votre serveur web préféré. Voici comment je procède :

iptables -N Wpddosblock
iptables -I INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /' -j Wpddosblock
iptables -A Wpddosblock -p tcp --dport 80 -m string --to 80 --algo bm ! --string 'User-Agent: WordPress/' -j RETURN
iptables -A Wpddosblock -p tcp --dport 80 -m string --to 300 --algo bm --string 'verifying pingback from' -j DROP
iptables -A Wpddosblock -j RETURN

Vous pouvez également directement télécharger mon script shell pour faire le travail à votre place via le lien suivant : wpddosblock.sh

Si vous souhaitez le télécharger directement depuis le serveur actuellement attaqué :

wget --no-check-certificate https://www.christophe-casalegno.com/tools/wpddosblock.sh
chmod +x wpddosblock.sh
./wpddosblock.sh

Attention : si votre site est en https vous ne pourrez pas utiliser iptables. Il faudra alors s’en remettre à la couche applicative et bloquer l’attaque directement dans la configuration de votre vhost ou dans le .htaccess de votre site internet de la manière suivante :

Order Deny,Allow
SetEnvIf User-Agent WordPress keep_out
Deny from env=keep_out

ou encore :

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} WordPress
RewriteRule .* - [F]

Christophe Casalegno
Vous pouvez me suivre sur : Twitter | Facebook | Linkedin | Telegram

Leave a Comment