Configurar permisos de archivos seguros en DirectAdmin para evitar hackeos
Imagina que tu web es una casa. Los permisos de archivos DirectAdmin son las cerraduras de las puertas y ventanas. Si las dejas mal puestas o abiertas, cualquiera podría entrar, robar datos, modificar tu web o, peor aún, infectar a tus visitantes. Configurarlos correctamente es una de las tareas más básicas y efectivas para evitar hackeos y proteger directorios sensibles.
En esta guía, aprenderás paso a paso a establecer una postura de seguridad sólida en tu servidor usando DirectAdmin. No necesitas ser un experto en Linux; solo seguir estas instrucciones con cuidado.
¿Por qué son tan importantes los permisos de archivos?
Cada archivo y carpeta en tu servidor tiene un conjunto de permisos que determinan quién puede leer, escribir o ejecutar ese recurso. Los tres actores principales son:
- Usuario (Owner): Eres tú, el dueño de la cuenta de hosting.
- Grupo (Group): Normalmente, el grupo del servidor web (ej.
apacheonobody). - Otros (Others): Cualquier persona en internet.
Si un archivo tiene permisos demasiado abiertos (ej. 777), cualquier script malicioso que se ejecute en tu servidor podría modificarlo, borrarlo o inyectar código malicioso. Por eso, la regla de oro es: dar solo los permisos mínimos necesarios para que tu web funcione.
Los Peligros de los Archivos Mal Configurados
Antes de ver cómo arreglarlos, veamos qué puede pasar si no lo haces:
- Inyección de código malicioso: Un atacante puede subir un archivo PHP malicioso (ej.
shell.php) a una carpeta con permisos 777 y ejecutar comandos en tu servidor. - Modificación de archivos del core: Si los archivos de WordPress (o cualquier CMS) tienen permisos 777, un hacker podría modificar
wp-config.php,index.phpo cualquier otro archivo para redirigir tráfico, mostrar anuncios o robar credenciales. - Borrado de archivos: Podrían eliminar archivos críticos, dejando tu web caída.
- Lectura de datos sensibles: Archivos como
wp-config.phpoconfig.phpcontienen contraseñas de bases de datos. Si tienen permisos 644 o 755, cualquiera podría leerlos si accede directamente a la URL. - Ataques de denegación de servicio (DoS): Podrían saturar tu servidor ejecutando scripts maliciosos que consuman recursos.
[WARNING] Un archivo con permisos 777 es como una puerta abierta de par en par. Cualquier script en tu servidor, incluso uno inofensivo, podría ser explotado para modificarlo. Nunca uses 777 a menos que sea estrictamente necesario y temporal.
¿Qué permisos son seguros para mi web?
Aquí tienes una tabla de referencia rápida. Recuerda: el usuario debe ser el dueño de todos los archivos.
| Tipo de Recurso | Archivos | Directorios | Explicación |
|---|---|---|---|
| Archivos del core (CMS, plugins, temas) | 644 | 755 | El usuario puede leer/escribir; el grupo y otros solo leer. Los directorios necesitan ejecución para poder listar su contenido. |
Archivos de configuración (ej. wp-config.php) | 600 o 640 | - | Solo el usuario (o el grupo) puede leer. Nadie más. Esto evita que se muestren contraseñas. |
| Archivos de subida de usuarios (ej. imágenes) | 644 | 755 | El usuario puede escribir, el resto solo leer. No deben tener permisos de ejecución (PHP). |
| Archivos de caché | 644 | 755 | Normalmente el usuario los genera, pero a veces el servidor web necesita escribirlos. |
| Archivos de logs | 644 | 755 | Solo el usuario puede escribir, el grupo y otros solo leer. |
Resumen rápido:
- Archivos: 644 (seguro) | 600 (muy seguro, para config) | Nunca 777.
- Directorios: 755 (seguro) | 750 (más restrictivo) | Nunca 777.
Cómo revisar y cambiar permisos en DirectAdmin
DirectAdmin te ofrece varias herramientas para gestionar los permisos. Vamos a ver las más útiles.
1. Usando el Administrador de Archivos (File Manager)
Es la forma más visual y fácil para principiantes.
- Inicia sesión en DirectAdmin.
- Ve a Administrador de Archivos (suele estar en la sección "Administración de Archivos").
- Navega hasta la carpeta de tu web (normalmente
public_htmlodomains/tudominio.com/public_html). - Para ver los permisos actuales: Haz clic en el nombre del archivo o carpeta. En la ventana que aparece, verás una línea como
-rw-r--r--(para archivos) odrwxr-xr-x(para directorios). - Para cambiarlos:
- Haz clic derecho sobre el archivo o carpeta.
- Selecciona Cambiar permisos.
- Se abrirá una ventana con casillas de verificación para Usuario, Grupo y Otros. Marca/desmarca las opciones Lectura (r), Escritura (w) y Ejecución (x) según la tabla anterior.
- Haz clic en Guardar.
- Repite este proceso para todos los archivos y carpetas de tu web.
[TIP] Si tienes muchos archivos, puedes seleccionar varios a la vez manteniendo presionada la tecla Ctrl y haciendo clic en cada uno. Luego, haz clic derecho y elige "Cambiar permisos". Pero ten cuidado: esto aplicará los mismos permisos a todos los seleccionados.
2. Usando el Comando chmod en SSH (para usuarios avanzados)
Si te sientes cómodo con la terminal, es mucho más rápido.
- Conéctate a tu servidor por SSH.
- Navega a la raíz de tu web:
cd /home/tuusuario/domains/tudominio.com/public_html - Para cambiar todos los archivos a 644:
find . -type f -exec chmod 644 {} \; - Para cambiar todos los directorios a 755:
find . -type d -exec chmod 755 {} \;
[INFO] Este comando
findes muy potente. Aplica el cambio a todos los archivos/directorios de forma recursiva. Úsalo con cuidado.
3. Usando la herramienta "Fix File Permissions" de DirectAdmin
Algunos paneles de hosting incluyen una herramienta automática. En DirectAdmin, busca "Fix File Permissions" o "Repair File Permissions" en la sección de herramientas avanzadas. Esta opción suele restaurar los permisos a los valores por defecto seguros (644 para archivos, 755 para directorios) para todo el contenido de public_html.
[WARNING] Esta herramienta puede no ser perfecta. Después de usarla, verifica manualmente los permisos de archivos críticos como
wp-config.phpo cualquier archivo de configuración de tu aplicación.
Cómo proteger directorios específicos
No todos los directorios necesitan el mismo nivel de protección. Aquí tienes algunos ejemplos clave.
Proteger el directorio wp-admin (WordPress)
Este es el panel de administración de WordPress. Debes restringir el acceso solo a ciertas IPs o, al menos, protegerlo con una contraseña adicional.
-
Crear un archivo
.htaccessdentro dewp-admincon el siguiente contenido:# Proteger wp-admin <Files wp-login.php> Order Deny,Allow Deny from all Allow from 192.168.1.100 # Reemplaza con tu IP </Files>Esto bloqueará el acceso a
wp-login.phpdesde cualquier IP que no sea la tuya. -
Proteger con contraseña (HTTP Auth):
- Crea un archivo
.htpasswd(puedes generarlo online o con herramientas de DirectAdmin). - Crea un archivo
.htaccessenwp-admincon:AuthType Basic AuthName "Acceso Restringido" AuthUserFile /home/tuusuario/.htpasswd Require valid-user
- Crea un archivo
Proteger el directorio de subidas (wp-content/uploads)
Aquí se almacenan las imágenes y archivos que subes. No deben ejecutar scripts PHP.
- Crea (o modifica) un archivo
.htaccessdentro dewp-content/uploadscon:
Esto evita que alguien suba un archivo PHP malicioso disfrazado de imagen y lo ejecute.# Denegar la ejecución de PHP en uploads <FilesMatch "\.(php|php5|phtml|phps)$"> Deny from all </FilesMatch>
Proteger el archivo wp-config.php
Este archivo contiene las credenciales de tu base de datos. Debe tener permisos 600 o 640 y, si es posible, estar fuera del directorio raíz de la web.
- Permisos: 600 (solo el usuario puede leer/escribir).
- Ubicación: Puedes moverlo un nivel arriba (a
public_html) y WordPress lo encontrará automáticamente. Esto lo hace inaccesible desde la web.
Configuración de permisos en Syspanel (HestiaCP)
Si estás usando Syspanel (anteriormente conocido como HestiaCP), el proceso es muy similar, pero el acceso es por el puerto 2106.
- Accede a tu panel:
https://tudominio.com:2106 - Inicia sesión con tus credenciales.
- Ve a Archivos > Administrador de Archivos.
- Sigue los mismos pasos que en DirectAdmin para cambiar permisos.
[INFO] Syspanel también tiene una herramienta de reparación de permisos. Búscala como "Repair File Permissions" en el menú de herramientas.
Preguntas Frecuentes (FAQ)
P: ¿Qué pasa si cambio los permisos de un archivo a 600 y mi web deja de funcionar?
R: Es probable que el servidor web (Apache/Nginx) no pueda leer el archivo. Si es un archivo de configuración, puede que la web funcione, pero si es un archivo que necesita ser ejecutado (como un script PHP), el servidor necesita permiso de lectura (644). Nunca pongas un archivo PHP a 600 a menos que sepas que el servidor web puede leerlo.
P: ¿Es seguro usar permisos 777 para la carpeta wp-content/cache?
R: No. Aunque algunos plugins de caché lo recomienden, es peligroso. En su lugar, intenta que el plugin use un método de escritura más seguro (como FTP o directamente a través del usuario del servidor). Si es inevitable, usa 777 temporalmente y luego revierte a 755.
P: ¿Cómo sé qué permisos tiene un archivo en DirectAdmin sin entrar al File Manager?
R: Puedes usar el comando ls -la en SSH. La salida mostrará algo como -rw-r--r--. Los primeros tres caracteres son para el usuario, los siguientes tres para el grupo y los últimos tres para otros.
P: Mi web fue hackeada. ¿Cambiar los permisos la arreglará?
R: No. Cambiar los permisos previene futuros ataques, pero no elimina el malware existente. Primero debes limpiar tu web (reinstalar desde una copia de seguridad limpia) y luego aplicar los permisos correctos.
P: ¿Qué hago si un plugin me pide permisos 777 para funcionar?
R: Desconfía de ese plugin. Busca alternativas más seguras o contacta al desarrollador. Un plugin que requiere permisos inseguros es un riesgo de seguridad.
P: ¿Los permisos afectan al rendimiento de mi web?
R: No directamente. Pero una web con archivos maliciosos por malos permisos puede ralentizarse o caerse.
Conclusión
Configurar los permisos de archivos DirectAdmin no es opcional; es una necesidad para evitar hackeos y proteger directorios. Dedica 15 minutos a revisar y corregir los permisos de tu web. Es una de las inversiones de seguridad más rentables que puedes hacer.
Recuerda la regla de oro: mínimos necesarios. 644 para archivos, 755 para directorios, y nunca 777. Si tienes dudas, siempre es mejor ser más restrictivo que permisivo. Tu web y tus visitantes te lo agradecerán.
Si necesitas más ayuda, no dudes en contactar a nuestro equipo de soporte. ¡Estamos aquí para ayudarte a mantener tu web segura!
