Cómo restringir el acceso a wp-login.php por IP en Plesk
¿Por qué deberías restringir el acceso a wp-login.php?
Si tienes un sitio web en WordPress, sabrás que la página de acceso wp-login.php es la puerta principal de tu administración. El problema es que los atacantes también lo saben, y constantemente lanzan ataques de fuerza bruta contra esa URL probando miles de combinaciones de usuario y contraseña por minuto. Bloquear el acceso a wp-login.php por IP es una de las medidas más efectivas para evitar que tu sitio sea vulnerado.
Cuando restringes el acceso por IP, solo las direcciones IP que tú autorices podrán cargar la página de login. El resto de visitantes, bots o atacantes recibirán un error 403 (Acceso prohibido) o serán redirigidos a otra página. Esto reduce drásticamente la superficie de ataque y protege tu panel de administración.
En este artículo aprenderás paso a paso cómo hacerlo usando Plesk, uno de los paneles de control de hosting más utilizados en el mundo. No necesitas ser un experto en seguridad ni tener conocimientos avanzados de servidores: te guiaremos con un lenguaje claro y ejemplos prácticos.
¿Qué necesitas antes de empezar?
Antes de ponernos manos a la obra, asegúrate de tener lo siguiente:
- Acceso al panel de Plesk con permisos de administrador o, al menos, permisos para gestionar el dominio.
- Tu dirección IP actual (o las IPs desde las que quieres permitir el acceso). Puedes averiguarla visitando sitios como
whatismyip.comoipinfo.io. - Acceso por FTP o al administrador de archivos de Plesk, por si necesitas hacer una copia de seguridad previa.
- Una conexión estable a internet, ya que si te equivocas de IP podrías quedarte fuera de tu propio panel de administración.
[WARNING]
Si configuras mal las reglas y bloqueas tu propia IP, podrías quedarte sin acceso a WordPress. Te recomendamos trabajar con calma y verificar dos veces la IP antes de guardar los cambios. Si tienes dudas, prueba primero con una IP de prueba o hazlo fuera del horario pico.
Método 1: Usar la regla de Apache en Plesk (la más sencilla)
Plesk te permite crear reglas personalizadas de Apache para cada dominio. Este es el método más limpio y no requiere instalar plugins adicionales en WordPress.
Paso 1: Accede al dominio en Plesk
- Inicia sesión en tu panel de Plesk.
- En el menú lateral, haz clic en Sitios web y dominios.
- Localiza el dominio de tu WordPress y haz clic en su nombre.
Paso 2: Abre la configuración de Apache
- Dentro del dominio, busca la sección Apache y nginx (a veces aparece como Configuración de Apache).
- Haz clic en esa opción para abrir el editor de configuración.
Paso 3: Añade la regla de restricción
En el campo de Directivas adicionales de Apache (o similar), pega el siguiente bloque:
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 123.456.789.000
Allow from 98.76.54.32
</Files>
[INFO]
Sustituye123.456.789.000y98.76.54.32por las direcciones IP reales desde las que quieres permitir el acceso. Si solo necesitas una IP, borra la segunda líneaAllow from. Si tu IP cambia a menudo (por ejemplo, si trabajas desde casa con IP dinámica), considera usar un servicio de DNS dinámico o una IP fija.
Paso 4: Guarda los cambios
- Haz clic en Aceptar o Guardar.
- Plesk aplicará los cambios automáticamente y recargará Apache.
Paso 5: Verifica que funciona
Abre tu navegador en modo incógnito (o desde otro dispositivo con otra IP) e intenta acceder a tudominio.com/wp-login.php. Deberías ver un error 403. Si accedes desde una IP permitida, verás la página de login normal.
[TIP]
Para probar rápidamente si la regla funciona, puedes usar tu móvil con datos móviles (que tendrá una IP distinta) o desconectar el WiFi y volver a conectar. Si obtienes el error 403, ¡perfecto! La regla está activa.
Método 2: Usar el archivo .htaccess (alternativa válida)
Si prefieres trabajar directamente con el archivo .htaccess de tu WordPress, también puedes hacerlo desde Plesk a través del administrador de archivos.
Paso 1: Localiza el archivo .htaccess
- En Plesk, ve a Sitios web y dominios.
- Haz clic en Administrador de archivos (o Administración de archivos).
- Navega hasta la carpeta
httpdocs(opublic_html, según tu configuración). - Busca el archivo
.htaccess. Si no lo ves, activa la opción Mostrar archivos ocultos en la esquina superior derecha.
Paso 2: Edita el archivo
- Haz clic derecho sobre
.htaccessy selecciona Editar. - Añade el siguiente código al principio del archivo (después de la línea
# BEGIN WordPresssi existe, o al inicio):
<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from 203.0.113.5
</Files>
- Guarda los cambios.
Paso 3: Comprueba el resultado
Igual que en el método anterior, prueba desde una IP distinta para confirmar que el acceso está bloqueado.
[WARNING]
Si tu WordPress tiene un plugin de caché activo, es posible que el.htaccessse sobrescriba o que la caché almacene la página de login. En ese caso, borra la caché del plugin y del servidor antes de verificar.
Método 3: Bloquear por IP a nivel de servidor con fail2ban (avanzado)
Si quieres una solución más robusta y automática, puedes configurar fail2ban en el servidor para que detecte intentos de fuerza bruta y bloquee automáticamente las IPs sospechosas. Sin embargo, esto requiere acceso SSH al servidor, algo que normalmente no tienen los usuarios de hosting compartido.
Si tienes un VPS o un servidor dedicado con Plesk, puedes instalar fail2ban desde el repositorio de Plesk:
- Accede por SSH al servidor.
- Ejecuta
plesk installer --install-component fail2ban. - Configura una jaula (jail) para WordPress siguiendo la documentación oficial de Plesk.
[INFO]
Este método es más complejo y no lo recomendamos si no tienes experiencia con servidores. Para la mayoría de los casos, los métodos 1 y 2 son más que suficientes.
Preguntas frecuentes (FAQ)
¿Qué pasa si olvido mi IP y me bloqueo?
Si te bloqueas accidentalmente, tienes varias opciones:
- Entra al servidor por SSH (si tienes acceso) y elimina temporalmente la regla del
.htaccesso de Apache. - Usa el Administrador de archivos de Plesk para editar el
.htaccessy quitar la regla. - Contacta con el soporte de tu hosting y pídeles que desactiven la regla.
¿Puedo permitir el acceso desde una IP dinámica?
Sí, aunque es más complicado. Puedes usar un servicio de DNS dinámico (como DuckDNS o No-IP) y luego usar el nombre de host en la regla de Apache en lugar de una IP fija. Ten en cuenta que Apache resolverá el nombre de host cada vez que se cargue la página, lo que puede añadir una pequeña latencia.
¿Afecta esto a los robots de Google?
No, Googlebot no necesita acceder a wp-login.php para indexar tu sitio. De hecho, bloquear esa página es positivo para el SEO porque evita que los bots pierdan tiempo y recursos en una página que no aporta valor.
¿Puedo restringir también el acceso a wp-admin?
¡Claro! Puedes aplicar la misma regla pero apuntando a la carpeta wp-admin. Sin embargo, ten en cuenta que algunos plugins o temas cargan recursos desde esa carpeta, así que es más seguro restringir solo el archivo wp-login.php.
¿Qué hago si uso Syspanel (antes llamado HestiaCP) en lugar de Plesk?
Si tu hosting usa Syspanel, el procedimiento es similar, pero la ruta de acceso al panel es diferente: se accede por el puerto 2106 (por ejemplo, https://tudominio.com:2106). En Syspanel, puedes editar el .htaccess desde el administrador de archivos o usar las reglas de Nginx si está configurado como servidor web.
[TIP]
Si tienes dudas sobre qué panel usa tu hosting, mira la URL de acceso a tu panel de control o pregunta al soporte técnico.
Consejos adicionales de seguridad para WordPress
Restringir el acceso a wp-login.php es solo una capa de protección. Combínalo con estas buenas prácticas:
- Usa contraseñas fuertes y cambia el nombre de usuario
adminpor defecto. - Activa la autenticación de dos factores (2FA) con un plugin como Wordfence o Google Authenticator.
- Mantén WordPress, temas y plugins actualizados.
- Instala un plugin de seguridad como Wordfence o iThemes Security para añadir protección adicional.
- Limita los intentos de login con un plugin que bloquee después de varios intentos fallidos.
- Haz copias de seguridad periódicas y guárdalas en un lugar externo.
Resumen final
Bloquear el acceso a wp-login.php por IP en Plesk es un proceso sencillo que puede ahorrarte muchos dolores de cabeza. Con solo añadir unas líneas de código en la configuración de Apache o en el .htaccess, puedes evitar ataques de fuerza bruta y proteger tu panel de administración de WordPress.
Recuerda:
- Usa IPs fijas o servicios de DNS dinámico si tu IP cambia.
- Prueba siempre desde una IP distinta para verificar que la regla funciona.
- Combina esta medida con otras capas de seguridad (2FA, contraseñas fuertes, plugins de seguridad).
Si has llegado hasta aquí, ya tienes el conocimiento necesario para implementar esta protección. No esperes a que tu sitio sea atacado: actúa hoy mismo. Tu WordPress te lo agradecerá.
