Skip to content
Home » Cómo bloquear un brute-force attack sobre el login y xmlrpc de WordPress

Cómo bloquear un brute-force attack sobre el login y xmlrpc de WordPress

Para bloquear múltiples intentos fallidos de inicio de sesión en WordPress utilizando iptables, puedes usar el módulo recent en combinación con las reglas de iptables. El módulo recent ayuda a realizar un seguimiento del número de intentos de inicio de sesión fallidos recientes y toma medidas en función de un umbral especificado. Aquí tienes un ejemplo básico de cómo puedes lograrlo:

  1. Carga los módulos necesarios:
   sudo modprobe ipt_recent
  1. Crea una cadena de iptables para hacer un seguimiento de los intentos de inicio de sesión fallidos:
   sudo iptables -N LOGINVALID
   sudo iptables -N LOGXMLRPC
  1. Configura reglas para la cadena LOGINVALID:
   sudo iptables -A LOGINVALID -m recent --name wplogin --update --seconds 600 --hitcount 4 -j DROP
   sudo iptables -A LOGINVALID -m recent --name wplogin --set -j ACCEPT

sudo iptables -A LOGXMLRPC -m recent --name xmlrpc --update --seconds 600 --hitcount 4 -j DROP
sudo iptables -A LOGXMLRPC -m recent --name xmlrpc --set -j ACCEPT

En este ejemplo, los intentos fallidos se rastrean durante 600 segundos (10 minutos) y, si hay más de 4 intentos fallidos dentro de ese período, se bloqueará la dirección IP de origen.

  1. Redirige el tráfico a la cadena LOGINVALID para los intentos de inicio de sesión en WordPress:
   sudo iptables -A INPUT -p tcp --dport 80 -m string --string "wp-login.php" --algo bm -j LOGINVALID
   sudo iptables -A INPUT -p tcp --dport 443 -m string --string "wp-login.php" --algo bm -j LOGINVALID

sudo iptables -A INPUT -p tcp --dport 80 -m string --string "xmlrpc.php" --algo bm -j LOGXMLRPC
sudo iptables -A INPUT -p tcp --dport 443 -m string --string "xmlrpc.php" --algo bm -j LOGXMLRPC

Esto asume que tu página de inicio de sesión de WordPress es accesible a través de HTTP (puerto 80) y HTTPS (puerto 443). Ajusta los números de puerto si tu configuración es diferente.

Bloqueo de todos los ataques no de deseados contra xmlrpc

iptables -I INPUT 1 -i lo -j ACCEPT
iptables -N xmlrpc
iptables -I INPUT 2 -p tcp --dport 80 -j xmlrpc
iptables -I xmlrpc 1 -m recent -p tcp --syn --set
iptables -I xmlrpc 2 -m recent -p tcp --tcp-flags PSH,SYN,ACK ACK --update
iptables -I xmlrpc 3 -m recent -p tcp --tcp-flags PSH,ACK PSH,ACK --remove -m string --to 70 --algo bm --string "POST /xmlrpc.php" -j DROP
  1. Guarda las reglas de iptables:
   sudo service iptables save

Este comando variará según tu distribución de Linux. En algunos sistemas, puede ser sudo iptables-save o sudo systemctl save iptables ( iptables-save > /etc/iptables/rules.v4 )

Es importante tener en cuenta que, aunque las reglas de iptables pueden ayudar a mitigar los ataques de fuerza bruta, también se recomienda implementar medidas de seguridad adicionales, como contraseñas fuertes, autenticación de dos factores y mantener actualizada la instalación de WordPress y sus complementos. Además, considera el uso de complementos de seguridad específicos para WordPress que estén diseñados para manejar estos escenarios de manera más efectiva.