Después de dificultar el acceso a WordPress con reCAPTCHA
, vamos a dar otra vuelta de tuerca a la seguridad de nuestro servidor.
Si has llegado hasta aquí, te recomiendo que leas:
Hasta aquí, tenemos un blog funcionando con WordPress
y un sistema de bloqueo de accesos como fail2ban
.
Ahora vigilaremos los accesos e intentos de acceso al servidor WordPress
.
Veamos como configurar todo esto.
Crea el filtro
Crearemos el siguiente fichero /etc/fail2ban/filter.d/wordpress.conf
con el contenido:
sudo nano /etc/fail2ban/filter.d/wordpress.conf
Ahora pega lo siguiente:
[Definition]
failregex = ^ .* "(GET|POST) /+wp-login.php
^ .* "(GET|POST) /+xmlrpc.php
Guarda con Crtl + o y cierra con Crtl + x
Crea el jail
Crea también la siguiente jail con:
sudo nano /etc/fail2ban/jail.d/defaults-debian.conf
Pega el lo siguiente a continuación de la última línea:
[wordpress]
enabled = true
port = 443
filter = wordpress
logpath = /var/log/apache2/access.log
maxretry = 3
findtime = 15m
bantime = 1h
action = %(action_mwl)s
Como antes, guarda con Crtl + o y cierra con Crtl + x
Reiniciamos fail2ban:
sudo systemctl restart fail2ban
Comprobaciones.
Vamos a realizar una serie comprobaciones para ver si se están ejecutando correctamente los servicios, estados y advertencias.
Test estado del servicio
Comprobamos el estado del servicio con:
sudo systemctl status fail2ban
De momento todo correcto, el servicio está activo y corriendo.
Test estado general de fail2ban
Comprobamos el estado y la cantidad de jails en funcionamiento.
sudo fail2ban-client status
Perfecto, tenemos dos jail, el primero (ssh) que creamos en Instalar Fail2ban en Debian 12 y que funcione, y el segundo el que acabamos de crear para wordpress.
Test estado de Jails específicos
Comprobemos el estado para la jail de WordPress.
sudo fail2ban-client status wordpress
La salida nos muestra bastante información sobre las IPs baneadas (ninguna por el momento), el número de intentos de conexión, el número de baneos etc etc
Visualizar el log de eventos
Veamos si el archivo log de fail2ban contiene algún error. Visualiza el archivo log en tiempo real para ver los cambios que se van produciendo instantáneamente.
Copia y pega el siguiente comando:
sudo tail -f /var/log/fail2ban.log
En la siguiente imagen verás el log en tiempo real de los jail sin errores.
Test de Fail2ban
Fail2ban tiene un comando testear la configuración. Para esta comprobación tienes que usar este comando:
sudo fail2ban-client --test
Esto demuestra que todo está bien y no tenemos ningún problema con la configuración.