Contents
Cómo proteger la carpeta wp-admin con .htaccess
La carpeta wp-admin de WordPress es el núcleo del panel de control de tu sitio. Si un atacante logra acceder a ella, podría tomar el control total de tu web. Implementar una capa adicional de seguridad mediante .htaccess
y .htpasswd
es una técnica recomendada por expertos en seguridad.
Índice de contenidos
- Por qué proteger wp-admin
- Métodos de protección
- Implementación paso a paso
- Buenas prácticas
- Referencias y lecturas recomendadas
1. Por qué proteger la carpeta wp-admin
El directorio wp-admin
alberga archivos críticos del dashboard de WordPress, incluyendo:
- Archivos de configuración y conexión a la base de datos.
- Scripts de administración y actualización.
- Herramientas internas de gestión de usuarios y roles.
Sin una protección adecuada, un atacante podría:
- Probar contraseñas mediante brute force.
- Explotar vulnerabilidades de plugins o temas.
- Subir malware o modificar archivos críticos.
Ventajas de añadir una capa extra:
- Autenticación HTTP básica antes de llegar a WordPress.
- Bloqueo de bots y usuarios no autorizados.
- Registro de intentos de acceso en el servidor.
2. Métodos de protección
Método | Descripción | Ventajas |
---|---|---|
Autenticación HTTP básica | Usa .htpasswd para pedir usuario y contraseña antes de acceder. |
Fácil de implementar y efectiva. |
Filtrado por IP | Solo permite el acceso desde direcciones IP confiables. | Control muy estricto. |
Protección combinada | Mezcla autenticación y filtro de IP. | Mayor seguridad en capas. |
Limitación de intentos | Plugins o reglas mod_security para limitar login fails. |
Mitiga ataques de fuerza bruta. |
3. Implementación paso a paso
3.1. Crear archivo .htpasswd
El archivo .htpasswd
almacena usuarios y contraseñas encriptadas. Puedes generarlo mediante la herramienta htpasswd
de Apache o un generador en línea.
- En servidor Linux/SSH:
htpasswd -c /ruta/oculta/.htpasswd usuario
- En Windows: usar herramientas como Apache Utilities.
El resultado será una línea como:
usuario:apr1abcd1234XyZ9QwErT5YzK7/8p0QaB.
3.2. Configurar .htaccess en wp-admin
Crea (o edita) wp-admin/.htaccess
con este contenido:
AuthName Área restringida
AuthType Basic
AuthUserFile /ruta/oculta/.htpasswd
Require valid-user
# Permitir admin-ajax.php para AJAX
Require all granted
Explicación:
AuthName
: Mensaje que verá el usuario en el diálogo.AuthType Basic
: Tipo de autenticación.AuthUserFile
: Ruta absoluta al .htpasswd.Require valid-user
: Solo usuarios del .htpasswd.- Se excluye
admin-ajax.php
para mantener funcionalidad AJAX de plugins.
3.3. Filtrado por IP (opcional)
Para añadir restricción por dirección IP, combina estas reglas:
Order Deny,Allow
Deny from all
# Lista blanca de IPs
Allow from 123.45.67.89
Allow from 98.76.54.32
# Autenticación adicional
AuthType Basic
AuthName Acceso WP-Admin
AuthUserFile /ruta/oculta/.htpasswd
Require valid-user
Require all granted
Ajusta las IPs según tu configuración de oficina o proveedores VPN.
3.4. Probar y depurar
- Accede a
tusitio.com/wp-admin
. Debe pedir usuario/clave. - Verifica
admin-ajax.php
funcionando: prueba un plugin con AJAX. - Revisa los logs de Apache (
error_log
) si hay errores 500 o 401.
4. Buenas prácticas adicionales
4.1. Desactivar edición de temas y plugins
define(DISALLOW_FILE_EDIT, true)
4.2. Renombrar la carpeta de login
Usa plugins como WPS Hide Login para ocultar wp-login.php
. Así añades seguridad por oscuridad.
4.3. Actualización constante
- Mantén WordPress, plugins y temas siempre actualizados.
- Usa contraseñas robustas (passphrases).
- Aplica autenticación de dos factores (2FA).
4.4. Monitoreo y alertas
Implementa soluciones de monitoreo como Wordfence para recibir alertas sobre accesos fallidos o cambios de archivos.
5. Referencias y lecturas recomendadas
.htaccess
. Sigue estos pasos y refuerza la seguridad de tu sitio WordPress.
|
Acepto donaciones de BAT's mediante el navegador Brave 🙂 |