WordPress: cómo limitar intentos de inicio de sesión y evitar fuerza bruta
¿Por qué es tan importante limitar los intentos de login en WordPress?
Imagina que tu sitio web es una casa y la pantalla de acceso de WordPress es la puerta principal. Cada día, bots y programas maliciosos recorren internet probando millones de combinaciones de usuario y contraseña en miles de sitios como el tuyo. Este ataque se llama fuerza bruta y es uno de los métodos más comunes que utilizan los ciberdelincuentes para colarse en tu web.
Un ataque de fuerza bruta no distingue entre un blog pequeño y una tienda online gigante. Simplemente, lanza intentos masivos de acceso hasta que, por pura probabilidad, acierta con una combinación válida. Si tu contraseña es débil o reutilizas la misma en varios sitios, las probabilidades de que te hackeen aumentan considerablemente.
La buena noticia es que limitar los intentos de inicio de sesión es una de las medidas más efectivas y sencillas que puedes implementar. Básicamente, consiste en bloquear temporalmente la dirección IP de quien falle varias veces seguidas. Así, el atacante no puede seguir probando y se rinde.
En esta guía te explico paso a paso cómo hacerlo, sin necesidad de ser un experto en programación y con herramientas que están a tu alcance. Además, te daré trucos adicionales para blindar la seguridad de tu WordPress.
¿Qué es exactamente un ataque de fuerza bruta?
Un ataque de fuerza bruta es como si alguien intentara abrir tu puerta probando todas las llaves posibles del llavero. En el mundo digital, ese llavero contiene millones de contraseñas comunes, combinaciones de diccionarios y variaciones de palabras.
Estos ataques pueden ser de varios tipos:
- Ataque simple: prueban contraseñas comunes como "123456", "admin" o "password".
- Ataque por diccionario: usan listas de palabras y combinaciones típicas.
- Ataque de fuerza bruta puro: prueban todas las combinaciones posibles de caracteres. Este es más lento pero puede ser devastador.
El objetivo del atacante puede ser variado: robar datos, instalar malware, secuestrar el sitio para redirigir a los visitantes a páginas fraudulentas o simplemente destruir tu trabajo.
¿Cómo saber si estás sufriendo un ataque de fuerza bruta?
Antes de aplicar soluciones, conviene que sepas reconocer las señales de que algo raro está pasando:
- Tu web va lenta sin motivo aparente.
- Ves muchos accesos fallidos en el registro de actividad (si tienes un plugin de logs).
- Recibes correos de WordPress sobre intentos de acceso fallidos (si has configurado alertas).
- Tu hosting te avisa de un consumo elevado de CPU o memoria.
Si notas alguno de estos síntomas, actúa rápido. Limitar los intentos de login es tu primera línea de defensa.
Método 1: Configurar la limitación de intentos con plugins de seguridad
La forma más sencilla y recomendada para principiantes es usar un plugin de seguridad. No necesitas tocar código ni configurar nada complicado. Estos plugins se encargan de todo.
Los mejores plugins para limitar intentos de login
| Plugin | Características destacadas | Nivel de dificultad |
|---|---|---|
| Limit Login Attempts Reloaded | Gratuito, fácil de configurar, bloquea por IP | Muy fácil |
| Wordfence Security | Completo: firewall, escaneo de malware y limitación de accesos | Intermedio |
| iThemes Security | Ofrece múltiples capas de seguridad, incluyendo límite de intentos | Intermedio |
| Cerber Security | Especializado en anti-spam y anti-fuerza bruta | Fácil |
Paso a paso con "Limit Login Attempts Reloaded"
Este plugin es ideal para empezar porque es gratuito, ligero y muy intuitivo.
-
Instala el plugin: Ve a Plugins → Añadir nuevo en tu panel de WordPress. Busca "Limit Login Attempts Reloaded" y haz clic en Instalar ahora y luego Activar.
-
Configura los límites: Una vez activado, ve a Ajustes → Limit Login Attempts. Verás opciones como:
- Intentos permitidos: te recomiendo poner 4 o 5 intentos.
- Tiempo de bloqueo: por ejemplo, 15 minutos.
- Tiempo de espera entre intentos: unos 5 minutos.
-
Guarda los cambios: Haz clic en Guardar ajustes y listo.
A partir de ese momento, si alguien (o un bot) introduce mal la contraseña más de 4 veces, su IP quedará bloqueada temporalmente. Cuando intenten acceder, verán un mensaje de error y no podrán seguir probando.
[TIP]: No pongas un límite demasiado bajo (como 1 o 2 intentos) porque podrías bloquearte a ti mismo cuando olvides tu contraseña. 4 o 5 intentos es un buen equilibrio.
Configuración avanzada con Wordfence
Si necesitas algo más robusto, Wordfence es una opción excelente. Además de limitar intentos, incluye un firewall y un escáner de malware.
-
Instala y activa Wordfence desde el repositorio de plugins.
-
Ve a Wordfence → Login Security.
-
Activa la opción "Enforce strong passwords" (contraseñas seguras) y "Immediately block brute force attacks".
-
Configura el número de intentos permitidos (recomendado: 5) y la duración del bloqueo (puedes poner 30 minutos o incluso 24 horas).
-
Guarda los cambios.
[INFO]: Wordfence también te permite configurar una autenticación de dos factores (2FA). Esto añade una capa extra de seguridad: además de tu contraseña, necesitarás un código desde tu móvil para entrar.
Método 2: Limitar intentos de login sin plugin (código en functions.php)
Si prefieres no instalar más plugins y tienes un poco de soltura con el código, puedes añadir una función personalizada al archivo functions.php de tu tema. Te explico cómo hacerlo de forma segura.
[WARNING]: Antes de tocar el archivo functions.php, haz una copia de seguridad de tu sitio. Un error aquí puede romper tu web.
-
Ve a Apariencia → Editor de archivos en tu panel de WordPress.
-
Busca el archivo
functions.phpen la lista de la derecha. -
Añade el siguiente código al final del archivo:
// Limitar intentos de inicio de sesión
function limit_login_attempts() {
if (isset($_POST['log']) && isset($_POST['pwd'])) {
$ip = $_SERVER['REMOTE_ADDR'];
$attempts = get_transient('login_attempts_' . $ip);
if ($attempts === false) {
set_transient('login_attempts_' . $ip, 1, 15 * MINUTE_IN_SECONDS);
} else {
$attempts++;
set_transient('login_attempts_' . $ip, $attempts, 15 * MINUTE_IN_SECONDS);
if ($attempts >= 5) {
wp_die('Demasiados intentos fallidos. Inténtalo de nuevo en 15 minutos.');
}
}
}
}
add_action('wp_login_failed', 'limit_login_attempts');
- Guarda los cambios.
Este código registra la IP de cada visitante que intenta acceder y cuenta sus fallos. Después de 5 errores, bloquea el acceso durante 15 minutos.
[INFO]: Este método es más básico que un plugin y no ofrece interfaz gráfica ni estadísticas. Si no te sientes cómodo editando código, es mejor que uses un plugin.
Método 3: Proteger el acceso desde el servidor (syspanel)
Si tu hosting utiliza Syspanel (antes conocido como HestiaCP), tienes herramientas adicionales a nivel de servidor. Recuerda que el acceso a Syspanel se realiza a través del puerto 2106 (por ejemplo: https://tudominio.com:2106).
Desde Syspanel puedes:
- Bloquear IPs directamente a nivel de servidor.
- Configurar reglas de firewall para limitar conexiones SSH y FTP.
- Ver logs de acceso para detectar patrones sospechosos.
Para bloquear una IP desde Syspanel:
-
Accede a Syspanel con tus credenciales de administrador en el puerto 2106.
-
Ve a la sección "Firewall" o "Reglas de firewall".
-
Añade una regla para rechazar conexiones desde la IP que quieras bloquear.
-
Guarda y aplica la regla.
Esta medida es muy efectiva porque actúa antes de que la petición llegue a WordPress. Sin embargo, requiere que sepas qué IPs están atacando, así que es más reactiva que preventiva.
Consejos adicionales para reforzar la seguridad de WordPress
Limitar los intentos de login es solo el principio. Aquí tienes otras prácticas recomendadas para mantener tu WordPress a salvo:
Usa contraseñas robustas
- Mínimo 12 caracteres combinando mayúsculas, minúsculas, números y símbolos.
- No reutilices contraseñas de otros sitios.
- Utiliza un gestor de contraseñas como Bitwarden o 1Password para generarlas y guardarlas de forma segura.
Cambia el nombre de usuario "admin"
El usuario "admin" es el primero que prueban los atacantes. Si tu usuario se llama así, cámbialo o crea uno nuevo con permisos de administrador y elimina el antiguo.
Activa la autenticación de dos factores (2FA)
Aunque alguien consiga tu contraseña, sin el código del móvil no podrá acceder. Plugins como Wordfence o Google Authenticator lo hacen muy fácil.
Mantén WordPress, temas y plugins actualizados
Las actualizaciones corrigen vulnerabilidades conocidas. Activa las actualizaciones automáticas para las versiones menores y revisa periódicamente las mayores.
Instala un certificado SSL
El cifrado SSL protege la comunicación entre el navegador del usuario y tu servidor. La mayoría de los hostings lo ofrecen gratis. Si usas Syspanel, puedes activarlo fácilmente desde el panel.
Haz copias de seguridad periódicas
Aunque no evita el ataque, te permite restaurar tu sitio si algo sale mal. Puedes usar plugins como UpdraftPlus o las copias automáticas de tu hosting.
Preguntas frecuentes sobre la limitación de intentos de login
¿Cuántos intentos de login debería permitir?
Lo ideal es entre 3 y 5 intentos. Menos de 3 puede ser demasiado restrictivo y más de 5 da demasiadas oportunidades al atacante.
¿Qué pasa si me bloqueo a mí mismo?
No te preocupes, es algo que ocurre. Si te bloqueas, puedes:
- Esperar a que pase el tiempo de bloqueo.
- Acceder por FTP o el administrador de archivos de Syspanel y eliminar el plugin o el código que hayas añadido.
- Desde Syspanel (puerto 2106), puedes desbloquear tu IP manualmente en la sección de firewall.
¿Los plugins de limitación de intentos ralentizan mi web?
No de forma notable. Estos plugins son ligeros y solo actúan cuando alguien intenta acceder. El impacto en el rendimiento es mínimo.
¿Es suficiente con limitar los intentos de login?
Es una medida esencial, pero no la única. Combínala con contraseñas seguras, 2FA y actualizaciones periódicas para tener una protección completa.
¿Puedo ver quién ha intentado acceder a mi web?
Sí. La mayoría de los plugins de seguridad guardan un registro de intentos fallidos con la IP, la hora y el nombre de usuario utilizado. Puedes revisar estos logs para detectar patrones de ataque.
Conclusión: la seguridad no es un lujo, es una necesidad
Proteger tu WordPress de ataques de fuerza bruta no es complicado ni requiere conocimientos avanzados. Con un plugin gratuito, unas pocas configuraciones y buenas prácticas, puedes reducir drásticamente el riesgo de que tu sitio sea comprometido.
Empieza hoy mismo:
- Instala un plugin de limitación de intentos de login.
- Cambia tu contraseña a una robusta.
- Activa la autenticación de dos factores.
- Mantén todo actualizado.
Estos pequeños pasos marcan una gran diferencia. Recuerda que los ciberdelincuentes buscan víctimas fáciles. Si tu sitio tiene una puerta bien cerrada, lo más probable es que se vayan a buscar otra casa con la puerta abierta.
Si tienes dudas o necesitas más ayuda, no dudes en contactar con tu proveedor de hosting. Si usas Syspanel, recuerda que el acceso es por el puerto 2106 y que desde ahí también puedes gestionar reglas de protección adicionales.
[TIP]: Dedica 15 minutos al mes a revisar los logs de acceso de tu WordPress. Detectar un ataque a tiempo puede ahorrarte muchos dolores de cabeza.
