WordPress: Cómo proteger el archivo wp-config.php contra accesos no autorizados
¿Sabías que el archivo wp-config.php es, probablemente, el archivo más importante de tu sitio WordPress? Este pequeño archivo contiene las credenciales de acceso a tu base de datos, las claves secretas de autenticación y la configuración principal de tu instalación. Si un atacante logra acceder a él, tendría las llaves de tu reino: podría robar información, modificar tu sitio o incluso secuestrarlo por completo.
Proteger este archivo no es una opción, es una necesidad. La buena noticia es que no necesitas ser un experto en programación para hacerlo. En esta guía completa, te explicaré paso a paso, con un lenguaje claro y sencillo, cómo blindar tu wp-config.php contra accesos no autorizados. Vamos a ello.
¿Por qué es tan crítico proteger wp-config.php?
Antes de entrar en las soluciones, es fundamental entender el porqué. El archivo wp-config.php se encuentra en la raíz de tu instalación de WordPress (normalmente en public_html o www). Su función principal es conectar WordPress con tu base de datos MySQL. Dentro de él se almacenan:
- Nombre de la base de datos: El nombre exacto de tu base de datos.
- Usuario y contraseña de la base de datos: Las credenciales para acceder a ella.
- Prefijo de las tablas: El prefijo que usa tu instalación (ej.
wp_). - Claves secretas (Salts): Unas claves únicas que cifran las cookies y contraseñas de los usuarios.
- Configuraciones adicionales: Como el idioma, la memoria asignada, o ajustes de depuración.
Si un ciberdelincuente consigue este archivo, puede conectarse directamente a tu base de datos y robar, modificar o eliminar todo tu contenido. Incluso podría inyectar código malicioso en tu sitio para afectar a tus visitantes.
El objetivo de esta guía es que, al finalizarla, tu wp-config.php sea una fortaleza inexpugnable. Empecemos con el método más común y efectivo: el archivo .htaccess.
Método 1: Bloquear el acceso mediante el archivo .htaccess (El más común)
El archivo .htaccess es un archivo de configuración que permite controlar el comportamiento del servidor web Apache. Es la herramienta perfecta para restringir el acceso a archivos o directorios específicos.
Paso 1: Localizar o crear el archivo .htaccess
Este archivo se encuentra en la raíz de tu instalación de WordPress. A veces está oculto, por lo que necesitarás un cliente FTP (como FileZilla) o el Administrador de Archivos de tu panel de control (cPanel, Syspanel, etc.) para verlo.
- Con FileZilla: Conecta a tu servidor, ve a la carpeta raíz de WordPress y habilita la opción "Mostrar archivos ocultos" en el menú "Servidor" o "Ver".
- Con el Administrador de Archivos: La mayoría de los paneles de control tienen un botón para mostrar archivos ocultos (archivos que empiezan con un punto).
Si no existe, puedes crearlo. Solo necesitas un editor de texto plano (como el Bloc de notas) y guardar el archivo con el nombre .htaccess (sin extensión adicional).
Paso 2: Añadir el código de protección
Una vez que tengas el archivo .htaccess abierto en un editor, añade las siguientes líneas al final del mismo:
# PROTEGER WP-CONFIG.PHP
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
Este código le dice al servidor que niegue el acceso a cualquier persona que intente solicitar el archivo wp-config.php.
Paso 3: Guardar y subir el archivo
Guarda los cambios y sube el archivo .htaccess de vuelta a tu servidor, reemplazando el existente.
[TIP] Después de hacer esto, intenta acceder a tudominio.com/wp-config.php desde tu navegador. Deberías ver un error 403 (Prohibido). Si eso ocurre, ¡felicidades! Has bloqueado el acceso directo.
Paso 4: Un refuerzo extra con HTTPS
Si tu sitio usa HTTPS (algo que debería ser obligatorio), puedes añadir una regla adicional para que el servidor fuerce el uso de HTTPS al intentar acceder a él, aunque el bloqueo anterior ya debería ser suficiente.
# FUERZA HTTPS EN WP-CONFIG.PHP (OPCIONAL)
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
Método 2: Mover el archivo wp-config.php a un directorio superior
Esta es una técnica muy efectiva que recomiendan los expertos. WordPress permite que el archivo wp-config.php esté ubicado fuera de la carpeta raíz de tu sitio, en un directorio superior que no es accesible desde el navegador.
¿Cómo funciona?
En un servidor típico, tienes una estructura como esta:
/home/usuario/(Tu directorio de inicio)/public_html/(La raíz de tu sitio web, donde está WordPress)wp-config.phpindex.phpwp-admin/- etc.
El truco es mover wp-config.php a /home/usuario/, es decir, un nivel por encima de public_html. De esta manera, aunque alguien intente acceder a tudominio.com/wp-config.php, el archivo ya no estará ahí, y el servidor devolverá un error 404.
Paso a paso para moverlo
- Accede a tu servidor mediante FTP o el Administrador de Archivos.
- Localiza el archivo
wp-config.phpen tu carpeta raíz. - Córtalo y pégalo en el directorio padre. Si tu raíz es
public_html, pégalo en el directorio que contiene apublic_html(por ejemplo,home/usuario). - No necesitas hacer nada más. WordPress buscará automáticamente el archivo en ese directorio superior.
[WARNING] Si tu servidor no tiene la estructura estándar o si estás en un hosting compartido con restricciones, es posible que esta opción no funcione. Si después de moverlo tu sitio da un error de conexión a la base de datos, simplemente vuelve a moverlo a la carpeta raíz.
Método 3: Configurar permisos de archivo (CHMOD) correctamente
Los permisos de archivo controlan quién puede leer, escribir o ejecutar un archivo. En un servidor Linux, se representan con números (por ejemplo, 644, 600, 755).
Los permisos ideales para wp-config.php
- 644: El propietario puede leer y escribir, los grupos y otros usuarios solo pueden leer. Este es el estándar y suele funcionar bien.
- 600: El propietario puede leer y escribir, y nadie más tiene acceso. Este es el más seguro, pero puede causar problemas en algunos servidores si el proceso PHP no se ejecuta como el propietario del archivo.
Cómo cambiar los permisos
- Con un cliente FTP: Haz clic derecho sobre el archivo
wp-config.phpy selecciona "Permisos de archivo" o "CHMOD". - Con el Administrador de Archivos: Busca el archivo, haz clic derecho y selecciona "Permisos" o "Cambiar permisos".
Cambia el valor a 600 o 644 y guarda.
[INFO] Si cambias los permisos a 600 y tu sitio se cae, no te asustes. Vuelve a ponerlos a 644. La protección del .htaccess es más importante que los permisos de archivo en la mayoría de los casos.
Método 4: Deshabilitar la edición de archivos desde el panel de administración
WordPress tiene un editor de archivos integrado en el panel de administración (Apariencia > Editor de archivos de temas y Plugins > Editor de archivos de plugins). Un atacante que haya comprometido tu cuenta de administrador podría usar esta herramienta para modificar tu wp-config.php o inyectar código malicioso.
La solución: Deshabilitarlo en tu archivo wp-config.php
Añade esta línea de código a tu wp-config.php, justo después de las definiciones de las claves secretas:
// Deshabilitar el editor de archivos del panel
define('DISALLOW_FILE_EDIT', true);
Este simple código elimina la opción de editar archivos desde el admin, dificultando enormemente la vida a los atacantes.
Método 5: Proteger el archivo a nivel de servidor con Syspanel (HestiaCP)
Si tu hosting utiliza el panel de control Syspanel (anteriormente conocido como HestiaCP), tienes una ventaja adicional. Puedes proteger el archivo directamente desde la configuración del servidor web.
Recuerda que para acceder a Syspanel, la URL es: https://tudominio.com:2106
Protección a nivel de Nginx o Apache
Syspanel te permite gestionar la configuración de Nginx y Apache. Dependiendo de la configuración de tu servidor, puedes añadir reglas de bloqueo.
- Accede a Syspanel usando el puerto 2106.
- Ve a la sección de "Web" y busca tu dominio.
- Entra en las opciones de configuración avanzada (normalmente hay un botón para editar la configuración de Nginx o Apache).
- Añade una regla como la siguiente (si usas Nginx):
location ~* wp-config.php {
deny all;
}
Esta regla le dice al servidor Nginx que rechace cualquier petición que contenga wp-config.php en la URL.
[TIP] Si no te sientes cómodo editando la configuración del servidor directamente, te recomiendo usar el método del .htaccess o el de mover el archivo. Son igual de efectivos y mucho más fáciles de implementar para usuarios sin experiencia.
Método 6: Usar un plugin de seguridad (La opción fácil)
Si no quieres tocar código o archivos de configuración, la opción más sencilla es instalar un plugin de seguridad. Los plugins como Wordfence, Sucuri Security o iThemes Security incluyen funciones para proteger archivos críticos.
Cómo hacerlo con un plugin (ejemplo con Wordfence)
- Instala y activa el plugin desde "Plugins" > "Añadir nuevo".
- Ve al panel de configuración del plugin.
- Busca la sección de "Protección de archivos" o "Firewall".
- Activa la opción que bloquea el acceso a
wp-config.phpy otros archivos sensibles.
La mayoría de estos plugins añaden las reglas necesarias al .htaccess automáticamente, sin que tengas que hacer nada manualmente.
Preguntas frecuentes (FAQ)
¿Qué hago si mi sitio se cae después de proteger el archivo?
Lo primero es no entrar en pánico. Si el sitio se cae, es probable que el archivo .htaccess tenga un error de sintaxis o que los permisos 600 no sean compatibles con tu servidor. Simplemente revierte los cambios: vuelve a poner los permisos a 644 y asegúrate de que el código del .htaccess sea exactamente el que te he mostrado.
¿Necesito proteger otros archivos además de wp-config.php?
Sí, es recomendable proteger otros archivos sensibles como .htaccess (para que nadie lo modifique), xmlrpc.php (que es un punto de entrada para ataques de fuerza bruta) y el directorio wp-includes. La mayoría de los plugins de seguridad lo hacen automáticamente.
¿Cada cuánto tiempo debo revisar la seguridad de mi WordPress?
La seguridad es un proceso continuo, no un evento único. Te recomiendo hacer una revisión básica al menos una vez al mes. Actualiza WordPress, tus plugins y temas, y revisa los registros de acceso para detectar actividades sospechosas.
¿Proteger wp-config.php me hace invulnerable?
No, ninguna medida te hace 100% invulnerable, pero sí levanta una barrera muy sólida contra los ataques más comunes. La seguridad de WordPress se basa en capas: proteger este archivo es una de las capas más importantes, pero no debes descuidar otras como usar contraseñas fuertes, mantener todo actualizado y hacer copias de seguridad.
Conclusión
Proteger el archivo wp-config.php es una de las tareas más importantes que puedes hacer para asegurar tu sitio WordPress. No importa si eres un principiante o un usuario avanzado, los métodos que te he mostrado son fáciles de implementar y no requieren conocimientos técnicos profundos.
Resumen de acciones clave:
- Bloquea el acceso con el código
.htaccess. - Mueve el archivo fuera de la carpeta raíz si es posible.
- Ajusta los permisos a
600o644. - Deshabilita el editor de archivos desde el panel.
- Utiliza un plugin de seguridad para automatizar el proceso.
Tómate unos minutos hoy para implementar estas medidas. Es una inversión de tiempo que te ahorrará muchos dolores de cabeza en el futuro. Tu sitio web y tus visitantes te lo agradecerán.
