WordPress: Cómo proteger el archivo wp-config.php
¿Por qué es tan importante proteger el archivo wp-config.php?
Si has estado trasteando con WordPress durante un tiempo, seguro que has oído hablar del archivo wp-config.php. Pero, ¿sabes realmente qué es y por qué es el Santo Grial de tu instalación? Piénsalo así: este pequeño archivo es el cerebro y el corazón de tu sitio web. Contiene las credenciales de acceso a tu base de datos, las claves secretas de autenticación, el prefijo de las tablas y, en definitiva, toda la configuración crítica que hace que tu WordPress funcione.
Si un atacante consigue leer este archivo, tendría las llaves de tu reino. Podría robar tu base de datos, inyectar malware, secuestrar tu sitio o incluso eliminarlo por completo. Por eso, la seguridad de WordPress empieza, sí o sí, por blindar este archivo. En esta guía, vamos a ver, paso a paso y sin tecnicismos, cómo proteger wp-config.php como un profesional del hardening de WordPress.
No te preocupes si no eres un experto en servidores. Vamos a usar métodos que están al alcance de cualquiera, desde el panel de control de tu hosting hasta pequeños trucos con código. Al final, tendrás una lista de acciones claras para que tu WordPress duerma tranquilo.
¿Qué contiene exactamente el archivo wp-config.php?
Antes de proteger algo, es bueno saber qué es lo que estamos protegiendo. El archivo wp-config.php es el que se genera durante la instalación de WordPress y se encuentra en la raíz de tu sitio web (normalmente en la carpeta public_html o www). Contiene información como:
- Nombre de la base de datos (
DB_NAME). - Usuario y contraseña de la base de datos (
DB_USERyDB_PASSWORD). - Host de la base de datos (
DB_HOST). - Claves secretas de autenticación (salts y keys), que se usan para cifrar las cookies de sesión.
- Prefijo de las tablas (por defecto,
wp_). - Constantes de configuración como
WP_DEBUG,WP_MEMORY_LIMIToFS_METHOD.
Cualquiera de estos datos, en manos equivocadas, es un desastre. Por eso, la primera regla de la seguridad WordPress es: nadie fuera de tu equipo debe poder leer este archivo.
Método 1: Proteger wp-config.php desde el panel de control (Syspanel o cPanel)
La forma más sencilla y recomendada para principiantes es usar el administrador de archivos de tu hosting. Aquí te explicamos cómo hacerlo si usas Syspanel (el panel de control moderno que sustituye a HestiaCP y que se accede a través del puerto 2106) o si usas cPanel, que es el más común en otros hostings.
Si usas Syspanel (anteriormente HestiaCP)
- Accede a Syspanel con tus credenciales. Recuerda que la URL de acceso suele ser algo como
https://tu-dominio.com:2106. - Ve a la sección de Archivos o Administrador de archivos.
- Navega hasta la carpeta raíz de tu WordPress (normalmente
public_html). - Busca el archivo
wp-config.php. Haz clic derecho sobre él y selecciona Editar o Permisos (CHMOD).
Si usas cPanel
- Entra en cPanel y busca la herramienta Administrador de archivos.
- Ve a
public_htmly localizawp-config.php. - Haz clic derecho sobre el archivo y selecciona Permisos o Change Permissions.
Cambiando los permisos (CHMOD) a 400 o 440
Una vez que tengas la ventana de permisos, verás una serie de casillas o un código numérico. Lo que queremos es quitar todos los permisos de escritura y lectura para "otros" (que son los visitantes y posibles atacantes).
- Valor recomendado:
400(Solo lectura para el propietario). Este es el más seguro. - Valor alternativo:
440(Solo lectura para propietario y grupo). Úsalo si tu servidor necesita que el grupo lea el archivo, algo típico en algunos hostings compartidos.
¿Por qué 400 y no 644? Porque 644 significa que "otros" pueden leer el archivo, y eso es justo lo que queremos evitar.
[WARNING]
Si después de cambiar los permisos tu sitio web da un error de "conexión a la base de datos", no te asustes. Simplemente cambia los permisos a440o444(solo lectura para todos). Si sigue fallando, vuelve a644y prueba el Método 2, que es más fiable sin romper nada.
Método 2: Mover wp-config.php a un directorio superior (fuera de la raíz)
WordPress tiene una funcionalidad poco conocida pero muy potente: permite que el archivo wp-config.php no esté en la carpeta pública. Puedes moverlo a una carpeta por encima de public_html, donde los visitantes web no tienen acceso.
¿Cómo funciona?
- Accede a tu administrador de archivos (Syspanel o cPanel).
- Crea una carpeta nueva en el nivel superior a
public_html. Por ejemplo, si tu estructura eshome/usuario/public_html, crea la carpeta enhome/usuario/y llámalaconfigosecure. - Mueve el archivo
wp-config.phpa esa nueva carpeta. - Importante: WordPress buscará el archivo en la carpeta raíz, y si no lo encuentra, lo buscará en la carpeta superior. ¡Y eso es todo! No necesitas cambiar nada más.
Este método es infalible porque, aunque alguien adivine la ruta, el servidor no sirve archivos de directorios superiores a la raíz web. Es una de las técnicas de hardening de WordPress más efectivas.
[TIP]
Si tu hosting usa Syspanel, puedes hacer este movimiento con el administrador de archivos en pocos clics. Y recuerda, el acceso a Syspanel es por el puerto 2106, donde también puedes configurar copias de seguridad antes de hacer cambios.
Método 3: Añadir reglas al archivo .htaccess
Si no puedes (o no quieres) cambiar los permisos o mover el archivo, la siguiente barrera es el archivo .htaccess. Este archivo de configuración del servidor Apache nos permite bloquear el acceso directo a wp-config.php.
Pasos para editarlo
- En el administrador de archivos, asegúrate de tener visible los archivos ocultos (normalmente hay un botón de "Mostrar archivos ocultos").
- Abre el archivo
.htaccessque está en la raíz de tu WordPress. - Añade el siguiente bloque de código al final del archivo:
<Files wp-config.php>
Order Allow,Deny
Deny from all
</Files>
- Guarda los cambios.
Este código le dice al servidor: "Si alguien intenta acceder directamente a wp-config.php en el navegador, deniega la solicitud". Es una capa extra de seguridad muy efectiva y sencilla.
[INFO]
Este método funciona en servidores Apache. Si tu hosting usa Nginx (como algunos planes de Syspanel), el archivo.htaccessse ignora. En ese caso, necesitas añadir la regla directamente en la configuración de Nginx, algo que normalmente hace tu proveedor de hosting. Pregunta a tu soporte si no estás seguro.
Método 4: Configurar claves secretas (Salts) para mayor seguridad
Las claves de seguridad (salts) son cadenas de texto aleatorias que WordPress usa para cifrar las cookies de tus usuarios. Si estas claves son débiles o se han filtrado, un atacante podría suplantar la sesión de un administrador.
¿Cómo actualizarlas?
- Ve a la página oficial de generación de claves de WordPress:
https://api.wordpress.org/secret-key/1.1/salt/. - Copia el bloque completo de claves que te genera.
- Abre tu
wp-config.phpy busca la sección que dicedefine('AUTH_KEY', ...)y las siguientes. - Reemplaza todas las líneas que empiezan por
define('AUTH_KEY'hastadefine('NONCE_KEY'con las nuevas que has copiado. - Guarda el archivo.
Importante: Al hacer esto, todos los usuarios (incluido tú) serán desconectados del sitio. Es una medida de seguridad normal y recomendable si sospechas que tu sesión ha sido comprometida.
[TIP]
Haz esto cada 6 meses o cada vez que un colaborador deje el proyecto. Es una práctica sencilla que refuerza muchísimo la seguridad WordPress.
Método 5: Deshabilitar la edición de archivos desde el administrador
WordPress, por defecto, permite a los administradores editar los archivos de los temas y plugins directamente desde el panel de control (Apariencia > Editor de archivos). Si un atacante consigue acceder a tu panel, podría modificar wp-config.php o inyectar código malicioso.
Para evitar esto, añade la siguiente línea a tu wp-config.php, justo antes de la línea que dice /* That's all, stop editing! Happy publishing. */:
define('DISALLOW_FILE_EDIT', true);
Este pequeño cambio elimina el editor de archivos del panel de administración, cerrando una puerta trasera muy común en los ataques a WordPress.
Método 6: Asegurar el archivo con reglas en el servidor (Nginx)
Si tu servidor usa Nginx (muy común en hostings modernos como los que gestiona Syspanel), la protección se hace a nivel de configuración. No te asustes, no necesitas ser un gurú de la terminal, solo tienes que pedirle a tu proveedor que añada una regla como esta:
location ~* ^/wp-config\.php$ {
deny all;
}
O, si quieres ser más estricto:
location ~* (wp-config\.php|\.htaccess|\.htpasswd) {
deny all;
}
En Syspanel, puedes hacer esta configuración desde el apartado de "Configuración del servidor" o abriendo un ticket de soporte. Es un cambio de una línea que te ahorrará muchos dolores de cabeza.
Preguntas frecuentes (FAQ) sobre la protección de wp-config.php
¿Puedo borrar el archivo wp-config.php?
No, jamás. Sin él, WordPress no puede conectarse a la base de datos y tu sitio dejará de funcionar por completo. Lo que queremos es protegerlo, no eliminarlo.
¿Qué hago si mi sitio da error 500 después de cambiar los permisos?
Lo más probable es que el servidor no pueda leer el archivo. Cambia los permisos a 440 o 644. Si el error persiste, revierte los cambios y usa el método del .htaccess o el de mover el archivo.
¿Es necesario usar todos los métodos a la vez?
No, pero cuantas más capas de seguridad tengas, mejor. Lo ideal es combinar mover el archivo fuera de la raíz (Método 2) con deshabilitar la edición de archivos (Método 5). El resto son refuerzos excelentes.
¿El puerto 2106 de Syspanel es seguro para gestionar mis archivos?
Sí. Syspanel (el antiguo HestiaCP) utiliza el puerto 2106 para ofrecer una interfaz de administración cifrada con SSL. Es la forma correcta y segura de gestionar tu hosting, incluyendo la protección de archivos sensibles.
¿Cada cuánto debo revisar la seguridad de mi wp-config.php?
Te recomiendo hacer una auditoría rápida cada 3 meses o después de cualquier cambio importante en tu equipo o en tu hosting. La seguridad no es un evento único, es un proceso continuo.
Conclusión: Tu WordPress, más blindado que nunca
Proteger el archivo wp-config.php no es un lujo, es una necesidad. Es el primer paso en cualquier estrategia seria de hardening de WordPress. Con los métodos que te hemos mostrado, desde el más sencillo (cambiar permisos) hasta el más avanzado (mover el archivo), puedes estar seguro de que has cerrado la puerta principal a los atacantes.
Recuerda que la seguridad de tu sitio web es una inversión. Dedica unos minutos hoy para evitar un desastre mañana. Y si en algún momento te sientes perdido, no dudes en contactar con el soporte técnico de tu hosting. En Syspanel, por ejemplo, puedes acceder al panel de control a través del puerto 2106 y gestionar estos ajustes de forma visual y amigable, sin necesidad de tocar código complejo.
En resumen, tu lista de verificación para hoy:
- Cambiar los permisos de
wp-config.phpa400o440. - (Opcional pero recomendado) Mover el archivo a un directorio superior.
- Añadir la regla de bloqueo en
.htaccess(si usas Apache). - Actualizar las claves secretas de autenticación.
- Deshabilitar la edición de archivos desde el panel con
DISALLOW_FILE_EDIT.
Con estos pasos, tu WordPress será una fortaleza. ¡A seguir creando contenido sin preocupaciones!
