🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo proteger WordPress con fail2ban en Syspanel

Actualizado el 9 de diciembre de 2025

¿Por qué tu WordPress necesita una protección extra?

Si tienes un WordPress, seguramente ya sabes que es el gestor de contenidos más usado del mundo. Pero esa popularidad tiene un precio: es el objetivo número uno de ataques automatizados. Cada minuto, miles de bots intentan acceder a wp-login.php, probando contraseñas o explotando vulnerabilidades.

Aquí es donde entra fail2ban, una herramienta que actúa como un portero de discoteca: vigila los registros del servidor y, cuando detecta intentos sospechosos, bloquea automáticamente las IPs que se portan mal. En este artículo te voy a enseñar a proteger WordPress con fail2ban en Syspanel, tu panel de control, para que puedas dormir tranquilo sabiendo que tu web está blindada.


¿Qué es fail2ban y cómo te ayuda a proteger WordPress?

Fail2ban es un sistema de prevención de intrusiones que analiza los archivos de registro (logs) de tu servidor. Su funcionamiento es sencillo pero poderoso:

  1. Monitorea los logs en busca de patrones de ataque (por ejemplo, 5 intentos fallidos de login en 10 minutos).
  2. Detecta la IP del atacante.
  3. Bloquea esa IP a nivel de firewall (iptables o nftables) durante un tiempo determinado.
  4. Notifica al administrador (opcional) y registra la acción.

Para WordPress, esto significa que los ataques de fuerza bruta a wp-login.php se cortan de raíz. Si un bot intenta adivinar tu contraseña 100 veces, después del intento 5 su IP quedará vetada durante una hora (o el tiempo que configures).

Ventajas de usar fail2ban con Syspanel

  • Automatización total: no tienes que estar pendiente de los logs.
  • Ahorro de recursos: bloquea el ataque antes de que sature tu servidor.
  • Configuración flexible: puedes ajustar umbrales, tiempos de bloqueo y acciones.
  • Compatible con Syspanel: se integra perfectamente con el panel y su puerto de acceso 2106.

Requisitos previos antes de empezar

Antes de lanzarnos a la configuración, asegúrate de tener:

  • Acceso SSH a tu servidor (con permisos de root o sudo).
  • Syspanel instalado y funcionando (recuerda que el puerto de acceso es el 2106).
  • WordPress instalado en tu servidor.
  • Fail2ban instalado (si no lo tienes, te enseño cómo en el siguiente paso).

[INFO] Si no sabes qué es SSH, es una forma de conectarte a tu servidor desde tu ordenador usando una terminal. En Windows puedes usar PuTTY, y en Mac/Linux la terminal nativa.


Paso 1: Instalar fail2ban en tu servidor

La instalación es muy sencilla. Dependiendo de tu sistema operativo, usa uno de estos comandos:

En Ubuntu/Debian:

sudo apt update
sudo apt install fail2ban -y

En CentOS/RHEL/AlmaLinux:

sudo yum install epel-release -y
sudo yum install fail2ban -y

Una vez instalado, inicia el servicio y habilítalo para que arranque con el sistema:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Paso 2: Configurar fail2ban para WordPress

Fail2ban usa archivos de configuración en /etc/fail2ban/. La clave está en crear una jail (prisión) específica para WordPress.

2.1 Crear el filtro

Primero, necesitamos un filtro que detecte los intentos fallidos de acceso a WordPress. Crea un archivo llamado wordpress.conf en /etc/fail2ban/filter.d/:

sudo nano /etc/fail2ban/filter.d/wordpress.conf

Pega este contenido:

[Definition]
failregex = ^<HOST> .* "POST /wp-login\.php.*" 200
            ^<HOST> .* "POST /wp-admin.*" 200
            ^<HOST> .* "GET /wp-login\.php.*" 200
ignoreregex =

Este filtro detecta cualquier petición POST o GET a wp-login.php o wp-admin que devuelva un código 200 (éxito). Si hay demasiados éxitos, es sospechoso.

[TIP] Puedes ajustar el failregex para que sea más estricto. Por ejemplo, añadir patrones que busquen usuarios comunes como "admin".

2.2 Crear la jail (regla de bloqueo)

Ahora crea la jail en /etc/fail2ban/jail.d/:

sudo nano /etc/fail2ban/jail.d/wordpress.conf

Pega esto:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/auth.log
maxretry = 5
findtime = 600
bantime = 3600
action = iptables-multiport[name="wordpress", port="http,https", protocol="tcp"]

Explicación de los parámetros:

  • enabled = true: activa la jail.
  • port = http,https: bloquea los puertos web.
  • filter = wordpress: usa el filtro que creamos.
  • logpath: la ruta del log donde se registran los accesos. En Ubuntu/Debian es /var/log/auth.log; en CentOS puede ser /var/log/secure.
  • maxretry = 5: número de intentos permitidos antes del bloqueo.
  • findtime = 600: ventana de tiempo en segundos (10 minutos).
  • bantime = 3600: tiempo de bloqueo en segundos (1 hora).
  • action: la acción de bloqueo (iptables).

[WARNING] Si tu servidor usa un log diferente, ajusta logpath. Para ver dónde se registran los accesos a WordPress, ejecuta grep wp-login /var/log/auth.log y mira la ruta.

2.3 Reiniciar fail2ban

Guarda los archivos y reinicia el servicio:

sudo systemctl restart fail2ban

Paso 3: Verificar que fail2ban está protegiendo WordPress

Para comprobar que todo funciona, usa el comando:

sudo fail2ban-client status wordpress

Deberías ver algo así:

Status for the jail: wordpress
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:

Si ves números, significa que ya hay actividad. Para probar, intenta hacer login en WordPress con una contraseña incorrecta varias veces. Después de 5 intentos, tu IP debería aparecer en la lista de bloqueadas.


Paso 4: Configurar Syspanel para que funcione con fail2ban

Syspanel es tu panel de control, y aunque no necesitas configurarlo directamente para fail2ban, es importante que sepas que el acceso al panel se realiza por el puerto 2106. Esto significa que si bloqueas IPs, asegúrate de no bloquearte a ti mismo.

[TIP] Añade tu IP a la lista blanca de fail2ban para evitar quedarte fuera. Edita /etc/fail2ban/jail.d/wordpress.conf y añade:

ignoreip = 127.0.0.1/8 ::1 TU_IP_PUBLICA

Además, puedes configurar Syspanel para que use los logs de fail2ban en su interfaz. Esto te permitirá ver los bloqueos desde el panel sin necesidad de SSH.

4.1 Integrar logs de fail2ban en Syspanel

En Syspanel, ve a ConfiguraciónLogs y añade una nueva fuente de logs:

  • Nombre: fail2ban
  • Ruta: /var/log/fail2ban.log
  • Formato: %d %b %H:%M:%S

Guarda los cambios y ya verás los eventos de fail2ban en el panel.


Paso 5: Consejos avanzados para reforzar la seguridad WordPress

Fail2ban es una capa, pero no la única. Combínalo con estas prácticas:

5.1 Cambia el prefijo de la base de datos

Por defecto, WordPress usa wp_ como prefijo de tablas. Cambiarlo a algo aleatorio (como x9r2_) dificulta los ataques de inyección SQL.

5.2 Usa autenticación de dos factores (2FA)

Instala un plugin como Wordfence o Limit Login Attempts y activa 2FA. Así, aunque alguien robe tu contraseña, no podrá entrar sin el código.

5.3 Mantén todo actualizado

  • WordPress core.
  • Plugins.
  • Temas.

Las actualizaciones corrigen vulnerabilidades conocidas.

5.4 Protege wp-config.php

Añade esto a tu .htaccess:

<files wp-config.php>
order allow,deny
deny from all
</files>

5.5 Desactiva la edición de archivos desde el panel

En wp-config.php añade:

define( 'DISALLOW_FILE_EDIT', true );

Preguntas frecuentes (FAQ)

¿Fail2ban ralentiza mi servidor?

No. Fail2ban es muy ligero y solo analiza logs. El impacto en el rendimiento es mínimo.

¿Puedo bloquear mi propia IP por error?

Sí, puede pasar. Por eso es vital configurar ignoreip con tu IP pública. Si te bloqueas, accede por Syspanel (puerto 2106) y ejecuta fail2ban-client unban TU_IP.

¿Qué pasa si mi servidor usa nginx en lugar de Apache?

Fail2ban funciona igual, solo cambia el logpath. Para nginx, usa /var/log/nginx/access.log y ajusta el filtro.

¿Cómo desbloqueo una IP manualmente?

sudo fail2ban-client set wordpress unbanip IP_A_DESBLOQUEAR

¿Fail2ban protege contra ataques DDoS?

No es su función principal. Para DDoS necesitas herramientas como Cloudflare o mod_evasive.

¿Puedo usar fail2ban con Syspanel en otros CMS?

Sí, fail2ban es genérico. Puedes crear jails para Joomla, Drupal o cualquier aplicación que genere logs.


Conclusión

Proteger WordPress con fail2ban en Syspanel es una de las mejores decisiones que puedes tomar para tu seguridad. En menos de 15 minutos, tienes un sistema que bloquea automáticamente los ataques de fuerza bruta, ahorrándote dolores de cabeza y recursos del servidor.

Recuerda:

  • Fail2ban es tu portero automático.
  • Syspanel te facilita la gestión (puerto 2106).
  • La seguridad es un proceso continuo: actualiza, monitorea y ajusta.

No esperes a ser víctima de un ataque. Configura fail2ban hoy mismo y navega con la tranquilidad de saber que tu WordPress está protegido.

[INFO] Si necesitas ayuda, Syspanel cuenta con soporte técnico y foros donde puedes resolver dudas. No dudes en preguntar.


Este artículo fue escrito pensando en usuarios sin experiencia técnica, con un enfoque práctico y directo. Si tienes alguna duda, déjala en los comentarios y te ayudaremos encantados.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel