Para proteger WordPress de ataques de wp brute force necesitás actuar en varias capas: limitá los intentos de login a no más de 5 por IP, cambiá la URL de acceso que los bots conocen de memoria, activá autenticación de dos factores en cuentas admin y nunca uses «admin» como nombre de usuario. Cada capa suma.

Un ataque de fuerza bruta en WordPress es un método de intrusión automatizado que consiste en probar miles de combinaciones de usuario y contraseña por minuto hasta encontrar las correctas. Los bots apuntan siempre a wp-login.php porque esa URL existe en todos los sitios WordPress del planeta, salvo que alguien la haya cambiado. Según la documentación oficial de WordPress, incluso con contraseñas seguras, el volumen de requests consume recursos del servidor y puede provocar ralentizaciones o caídas temporarias del sitio.

En 30 segundos

  • Instalá Limit Login Attempts Reloaded (gratuito, más de 2 millones de instalaciones activas) y configurá el bloqueo en 5 intentos fallidos con 20 minutos de lockout
  • Cambiá la URL de wp-login.php con WPS Hide Login: los bots atacan esa ruta fija y si devuelve 404, rebotan sin ver el formulario
  • Activá 2FA en todas las cuentas admin con Google Authenticator o Two Factor Authentication
  • Cambiá el usuario «admin» por uno personalizado: es el primer nombre que prueban todos los bots, sin excepción
  • Un WAF a nivel servidor o cloud bloquea el ataque antes de que el request llegue a PHP

wp brute force es una técnica de ataque en la que herramientas automatizadas prueban repetidamente múltiples combinaciones de usuario y contraseña contra el login de WordPress. El objetivo es encontrar credenciales válidas para acceder a cuentas de administrador o autor.

¿Por qué los ataques de fuerza bruta ralentizan tu servidor WordPress?

Ponele que te levantás un lunes y tu sitio no responde o carga en 20 segundos. Revisás los logs y encontrás miles de requests a wp-login.php acumuladas durante las últimas horas. No es un plugin pesado ni un problema de caché. Es un bot trabajando en turno completo.

El mecanismo detrás de la lentitud es concreto: cada request HTTP que llega a WordPress, aunque sea para validar credenciales incorrectas, genera un ciclo completo en el servidor: PHP se inicializa, WordPress carga todas sus funciones y hooks, se conecta a la base de datos MySQL, ejecuta las consultas de autenticación, y finalmente devuelve el mensaje de «contraseña incorrecta» al bot, que registra el intento fallido y lanza el siguiente sin perder un segundo.

(El daño ocurre aunque el bot nunca adivine nada. El recurso consumido es real igual.)

El hosting compartido es el escenario más vulnerable: CPU y memoria son recursos compartidos entre múltiples sitios, y un ataque sostenido puede disparar alertas de uso excesivo y provocar la suspensión temporaria de la cuenta. La solución de fondo es bloquear el tráfico malicioso antes de que llegue a PHP, no dentro de WordPress.

¿Qué es un ataque de fuerza bruta en WordPress?

Los bots que ejecutan ataques de fuerza bruta prueban usuarios y contraseñas en secuencia: empiezan con «admin» porque fue el nombre predeterminado de WordPress durante años, y continúan con las contraseñas más comunes del mundo: «123456», «password», el nombre del dominio, variaciones con números al final. Ya lo cubrimos antes en diferencia entre firewall perimetral y microsegmentación.

El blanco siempre es wp-login.php. La URL es pública, está documentada y es igual en todos los sitios WordPress del mundo salvo configuración explícita. Los bots no necesitan ningún tipo de inteligencia para encontrarla.

¿Y qué pasa cuando finalmente adivinan? Acceso completo al panel: pueden instalar plugins maliciosos, redirigir el tráfico a sitios de phishing, extraer datos de clientes o encriptar el contenido y pedir rescate. Por eso la «seguridad» de tener una contraseña fuerte sin otras capas es insuficiente.

Limita intentos de login: primera línea de defensa

El plugin más instalado para este propósito es Limit Login Attempts Reloaded, gratuito, con más de 2 millones de instalaciones activas. La lógica: después de X intentos fallidos desde la misma IP, esa IP queda bloqueada por un tiempo determinado.

Configuración recomendada para un sitio estándar:

  • Máximo de intentos antes del bloqueo: 4 o 5 (suficiente para un usuario que olvidó la contraseña, demasiado para un bot que opera en volumen)
  • Tiempo de lockout inicial: 20 minutos
  • Bloqueos repetidos: si la misma IP reincide dos veces, extendé el lockout a 24 horas o bloqueala de forma permanente
  • Notificaciones por email: activadas, para saber cuándo se están produciendo ataques sostenidos

La instalación es Plugins > Añadir nuevo > buscar «Limit Login Attempts Reloaded» > Instalar > Activar. La configuración está en Ajustes > Limit Login Attempts.

Eso sí: este plugin actúa dentro de WordPress. El request ya llegó al servidor, PHP ya cargó, y recién ahí el plugin bloquea. Para frenar el tráfico antes de que llegue a PHP, hace falta algo en la capa del servidor o del CDN.

Oculta la URL de acceso a WordPress con plugins

Si los bots no encuentran el formulario de login, no pueden atacarlo. El plugin WPS Hide Login permite cambiar /wp-login.php por cualquier ruta que vos elijas. Un acceso directo a /wp-login.php devuelve 404. Sin formulario, sin respuesta de autenticación, sin posibilidad de probar credenciales.

La configuración lleva dos minutos:

  • Instalá WPS Hide Login desde el directorio oficial de WordPress (Plugins > Añadir nuevo)
  • Andá a Ajustes > WPS Hide Login y escribí la nueva URL de acceso
  • Evitá rutas predecibles como /acceso, /admin, /entrar, /wp: son las que los bots prueban después de /wp-login.php
  • Anotá la nueva URL antes de guardar: si la olvidás, tenés que acceder por FTP o phpMyAdmin para desactivar el plugin

El inconveniente de olvidar la URL es real pero recuperable. Lo que evitás a cambio justifica ampliamente ese riesgo menor.

Activá autenticación de dos factores (2FA) en cuentas admin

El 2FA agrega una segunda capa que detiene el acceso incluso si alguien obtuvo tu contraseña. El segundo factor es un código temporal generado en tu teléfono que caduca cada 30 segundos. Sin el teléfono físico, no hay acceso. Lo explicamos a fondo en estrategias integrales de seguridad WordPress.

Dos plugins que funcionan bien en WordPress:

  • Google Authenticator (by miniOrange): configura el 2FA por usuario, compatible con la app Google Authenticator en iOS y Android. El setup es directo: escaneás un QR desde el perfil de usuario y listo.
  • Two Factor Authentication (by David Anderson): soporta TOTP estándar y tiene opción de contraseñas de un solo uso por email como respaldo si perdés el teléfono

Activar 2FA solo en la cuenta admin principal y olvidarse del resto no sirve. Si tenés editores o colaboradores con acceso al panel, cada una de esas cuentas es un punto de entrada posible. El 2FA debería ser estándar para todos los roles con permisos de administración o edición.

Usá contraseñas de mínimo 12 caracteres y cambiá el usuario admin

«Admin» como nombre de usuario es una invitación. Los bots lo prueban primero en todos los sitios porque fue el nombre predeterminado de WordPress durante años y muchos sitios nunca lo cambiaron. Si todavía tenés esa cuenta, el primer paso es hoy.

El problema: WordPress no permite cambiar el nombre de usuario desde el panel. Las opciones son dos: crear un usuario nuevo con rol de administrador, entrar con ese usuario nuevo y borrar el usuario «admin»; o modificarlo en la tabla wp_users de la base de datos por phpMyAdmin, columna user_login.

Para la contraseña, WordPress tiene un generador integrado en el perfil de usuario. Una contraseña de 16 caracteres con mayúsculas, minúsculas, números y símbolos convierte un ataque de fuerza bruta pura en algo que llevaría décadas sin un vector adicional.

Un detalle que pocos revisan: los permisos del archivo wp-config.php. Este archivo tiene las credenciales de la base de datos y las claves de seguridad del sitio. Los permisos deberían ser 400 o 440, nunca 777 ni 666. Con permisos incorrectos, un atacante que tenga acceso a lectura de archivos puede leer las credenciales de base de datos sin necesidad de adivinar ninguna contraseña.

Configurá un Firewall de Aplicación Web (WAF) como protección adicional

Un WAF analiza el tráfico HTTP antes de que llegue a WordPress y bloquea requests que corresponden a patrones de ataque conocidos. A diferencia de los plugins que actúan dentro de PHP, el WAF opera en una capa anterior: el plugin frena al bot cuando ya está en la puerta, el WAF lo para en la calle. Complementá con vulnerabilidades conocidas que atacan brute force.

Dos variantes con distinto punto de implementación:

  • WAF a nivel servidor: ModSecurity es el módulo más común en servidores Apache y Nginx. Lo configura el proveedor de hosting. Muchos planes de hosting compartido en Argentina lo incluyen con reglas básicas activadas por defecto, pero vale la pena confirmarlo con soporte.
  • WAF en la nube: Cloudflare tiene un plan gratuito que incluye protección básica contra ataques automatizados. Si los nameservers del dominio apuntan a Cloudflare, todo el tráfico pasa por sus servidores antes de llegar al tuyo. El plan Pro agrega reglas WAF específicas para WordPress.

Si tu sitio está alojado en donweb.com, consultale a soporte si tu plan incluye WAF activo a nivel servidor. Es el tipo de protección que funciona sin instalar nada en WordPress ni dedicarle mantenimiento propio.

Mantené WordPress, plugins y temas siempre actualizados

Los ataques de fuerza bruta buscan acceso por contraseña, pero hay una variante que no necesita adivinar nada: explotar una vulnerabilidad conocida en un plugin o tema desactualizado. El bot no te pide la contraseña, encuentra una puerta trasera que ya existe en el código.

WordPress tiene actualizaciones automáticas de seguridad para el core desde la versión 3.7. Para plugins y temas, podés activarlas por separado: en el listado de Plugins del panel, cada plugin tiene la opción «Activar actualizaciones automáticas» en su fila.

  • Desinstalá plugins que no usés: un plugin instalado pero desactivado sigue siendo superficie de ataque si tiene vulnerabilidades sin parchear
  • Revisá la fecha de última actualización antes de instalar: según el directorio oficial de plugins de WordPress, hay decenas de herramientas de seguridad disponibles, pero las sin actualizaciones desde hace más de un año son un riesgo en sí mismas
  • Actualizá el tema activo: los temas tienen acceso completo al código del sitio y también presentan vulnerabilidades

Comparativa de plugins de protección contra fuerza bruta

PluginGratuitoLímite de intentos2FA incluidoWAF
Limit Login Attempts ReloadedNoNo
WPS Hide LoginIndirectamenteNoNo
Wordfence SecuritySí / ProSolo en Pro
All In One WP SecurityBásico
iThemes SecuritySí / ProSolo en ProNo
wp brute force diagrama explicativo

Errores comunes que dejan tu WordPress expuesto

Pensar que «mi sitio es chico, nadie me ataca». Los bots no discriminan por tamaño ni popularidad. Escanean rangos de IP de forma automatizada y atacan cualquier sitio con wp-login.php accesible, sin importar las visitas mensuales que tenga.

Configurar el límite de intentos en 20 o más «para no bloquearse». Si le das al bot 20 oportunidades por ciclo de bloqueo, el ataque simplemente se extiende en el tiempo. Cuatro o cinco intentos es suficiente para cualquier usuario humano que olvidó la contraseña, y suficiente para frenar el bot.

Cambiar la URL de login y no anotarla. WPS Hide Login funciona muy bien hasta que el dueño del sitio olvida la nueva ruta. El resultado es quedar sin acceso al propio panel. (Sí, le pasa a gente que lleva años administrando WordPress.) Guardá la nueva URL en un gestor de contraseñas antes de guardar la configuración del plugin.

Activar 2FA solo en el usuario principal e ignorar a los colaboradores. Si tenés editores, autores o cualquier rol con acceso al backend sin 2FA, cualquiera de esas cuentas puede ser el punto de entrada. El 2FA debería ser estándar para todos los roles que accedan al panel. Te puede servir nuestra cobertura de complementar con un WAF especializado.

Para una capa extra de seguridad, podés leer nuestro artículo completo sobre 2FA contra brute force.

Profundizá en esto con nuestro tutorial completo sobre detener ataques brute force.

Si querés profundizar en esto, mirá nuestro artículo sobre ataques brute force en xmlrpc.

Si querés profundizar en esto, tenemos un artículo sobre fuerza bruta WordPress.

Preguntas Frecuentes

¿Cómo puedo proteger mi WordPress de ataques de fuerza bruta?

Instalá Limit Login Attempts Reloaded para bloquear IPs después de 5 intentos fallidos, cambiá la URL de wp-login.php con WPS Hide Login, y activá 2FA en todas las cuentas admin. Esas tres medidas combinadas frenan la mayoría de los ataques automatizados. Si además agregás un WAF a nivel servidor, cubrís también los vectores que operan antes de llegar a WordPress.

¿Cuál es el mejor plugin para bloquear ataques de fuerza bruta?

Limit Login Attempts Reloaded es la opción más instalada del directorio oficial de WordPress, con más de 2 millones de sitios activos, y cubre el caso base sin complejidad innecesaria. Si querés una solución que combine límite de intentos, WAF y 2FA en un solo plugin, Wordfence Security tiene versión gratuita con esas tres funciones. Para la mayoría de los sitios, combinar plugins simples y específicos da mejor control que una solución monolítica.

¿Cómo limitar intentos de login en WordPress?

Instalás Limit Login Attempts Reloaded desde el directorio oficial de WordPress, vas a Ajustes > Limit Login Attempts y configurás el máximo de intentos en 4 o 5. Después de esos intentos, la IP queda bloqueada por el tiempo que vos definís. El plugin puede enviarte notificaciones por email cuando detecta ataques sostenidos.

¿Por qué mi servidor se ralentiza con ataques de fuerza bruta?

Cada intento de login genera un ciclo completo en el servidor: PHP se inicializa, WordPress carga sus funciones, se consulta la base de datos MySQL. Con cientos de intentos por minuto, el servidor consume CPU y memoria hasta quedarse sin recursos disponibles para el tráfico legítimo. La solución de fondo es bloquear el tráfico malicioso antes de que llegue a PHP: mediante WAF a nivel servidor, reglas en el CDN, o configuración de fail2ban si tenés acceso al servidor.

¿Cómo cambiar la URL de acceso a WordPress?

WPS Hide Login permite cambiar /wp-login.php por la ruta que vos configurés. Después de la instalación y configuración en Ajustes > WPS Hide Login, los accesos a /wp-login.php devuelven un 404. Anotá la nueva URL antes de guardar los cambios: si la olvidás, tenés que desactivar el plugin por FTP o phpMyAdmin para recuperar el acceso al login original.

Conclusión

Un ataque de wp brute force no requiere sofisticación. Requiere que el sitio no tenga capas de defensa. Con Limit Login Attempts Reloaded bloqueando IPs después de 5 intentos, WPS Hide Login ocultando el formulario de acceso, 2FA activo en todas las cuentas admin y el usuario «admin» reemplazado, la mayoría de los ataques automatizados rebotan sin resultado.

El WAF y las actualizaciones automáticas completan la defensa: el primero filtra el tráfico antes de que llegue a WordPress, las segundas cierran las puertas traseras que no requieren adivinar contraseñas. Ninguna de estas medidas cuesta dinero, y la configuración inicial no lleva más de una hora en total.

Si llegaste hasta acá con contraseña fuerte pero sin ninguna de estas capas activas, zafaste hasta ahora. No lo tomés como evidencia de que el riesgo no existe.

Fuentes

Categorizado en: