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