J'ai plusieurs blogs Wordpress hébergés, et j'ai essayé de les visiter et ils sont vraiment lents. J'ai regardé les journaux de mon serveur et j'ai trouvé ceci
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:28 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:29 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:31 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:31 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
stanfordflipside.com:80 188.138.33.149 - - [17/Aug/2013:17:14:31 -0700] "POST /xmlrpc.php HTTP/1.1" 200 595 "-" "GoogleBot/1.0"
Je reçois environ 10 consultations par seconde du fichier /xmlrpc.php par GoogleBot vers plusieurs sites, ce qui semble ralentir le serveur. je cours
tail -f
sur le fichier journal et pouvez simplement voir ces demandes se poursuivre. Est-ce que quelqu'un sait pourquoi cela pourrait se produire ou ce que vous pourriez faire pour l'arrêter?
Je bloquerais l'adresse IP avec iptables
si c'était moi et si vous avez ce genre d'accès au niveau du serveur.
Vous pouvez également désactiver xmlrpc. Malheureusement, depuis la version 3.5, l'option d'écran pour désactiver cette fonctionnalité a été supprimée. Cependant, une seule ligne de code devrait le désactiver: add_filter( 'xmlrpc_enabled', '__return_false' );
Cela pourrait économiser une surcharge des demandes, bien que cela ne l'élimine pas entièrement.
"Googlebot" n'a aucune raison d'accéder à xmlrpc.php Vous pouvez l'ajouter en haut de votre xmlrpc.php
// Block fake Googlebot
if ( strpos($_SERVER['HTTP_USER_AGENT'], "Googlebot") === true ) { exit(); }
Je suppose que c'est un fichier WordPress de base. Il peut donc être agaçant de garder cette mise à jour. Ce serait bien si Automattic utilisait Akismet pour répertorier ces adresses IP de tous les scripts WP, partout.
Mise à jour: j'ai fini par supprimer l'autorisation avec chmod 0 xmlrpc.php
(voir mes commentaires) après qu'un DDoS ait commencé à taxer mon serveur. En d'autres termes, ce code PHP conditionnel pourrait ne pas empêcher un attaquant agressif de désactiver temporairement votre blog. Dans tous les cas, ils abandonnent généralement assez vite.
bloquer l'IP avec iptables:
for ip in $(grep xmlrpc /var/log/Apache2/access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn | head -n8 | awk '{print $2}'); do \
iptables -A INPUT -s $ip -j DROP; \
done
Si cela s'était produit récemment et que le serveur était en train de tuer, nous utilisons maintenant fail2ban pour atténuer le problème.
Ajout de cette configuration à jail.local :
[Apache-xmlrpc]
enabled = true
port = http,https
filter = xmlrpc
logpath = /var/log/Apache2/*access.log
maxretry = 30
findtime = 300
bantime = -1
Et créez le filtre dans filter.d/Apache-xmlrpc.conf :
[Definition]
failregex = ^<Host> -.*"(GET|POST) .*xmlrpc.php
ignoreregex =
Dans mon cas, les attaques ne venaient pas toujours de googlebot, donc la regex est un peu plus large, mais pour les besoins de mon propos, il n’ya aucune raison valable pour qu’une adresse IP frappe xmlrpc plus de 30 fois en 5 minutes.