Cómo proteger tu sitio WordPress con DirectAdmin
¿Por qué es importante proteger WordPress cuando usas DirectAdmin?
WordPress es el gestor de contenido más usado del mundo, y precisamente por eso es uno de los objetivos favoritos de los atacantes. Si tu sitio está alojado en un servidor con DirectAdmin, tienes una ventaja enorme: el panel de control te permite aplicar medidas de seguridad a nivel de servidor, archivos y bases de datos sin necesidad de ser un experto en Linux.
Sin embargo, la seguridad no es un acto único, sino un proceso continuo. Un sitio WordPress vulnerable puede provocar desde la caída temporal de tu web hasta el robo de datos de tus clientes o la inclusión de tu dominio en listas negras de malware. Por eso, en este artículo te voy a enseñar, paso a paso y con un lenguaje muy claro, cómo proteger tu sitio WordPress usando las herramientas que ya tienes en DirectAdmin.
No necesitas conocimientos avanzados de programación. Solo seguir las instrucciones, entender qué hace cada medida y aplicarlas con calma. Al final, tendrás un WordPress mucho más blindado y dormirás tranquilo.
Configuración inicial de seguridad en DirectAdmin
Antes de tocar WordPress, debemos asegurarnos de que la base sobre la que se asienta (el servidor y el panel) esté bien configurada. DirectAdmin ofrece varias capas de protección que muchos usuarios pasan por alto.
Actualiza siempre el sistema operativo y el panel
Suena obvio, pero es la medida más eficaz. Tanto el sistema operativo (por ejemplo, AlmaLinux, Ubuntu o CloudLinux) como DirectAdmin reciben parches de seguridad periódicos. Si tu proveedor de hosting gestiona el servidor, asegúrate de que tenga activas las actualizaciones automáticas.
En tu cuenta de DirectAdmin, puedes revisar la versión del panel en la esquina inferior derecha. Si ves que está desactualizada, contacta con tu proveedor. Un panel antiguo puede tener vulnerabilidades conocidas que comprometan todo el servidor.
Usa contraseñas robustas y autenticación en dos pasos (2FA)
DirectAdmin te permite asignar una contraseña de acceso al panel y también a las cuentas de correo o bases de datos. No uses la misma contraseña para todo. Una buena práctica es generar contraseñas aleatorias de al menos 16 caracteres, combinando mayúsculas, minúsculas, números y símbolos.
Además, activa la autenticación en dos pasos (2FA) para tu cuenta de administrador de DirectAdmin. Esta función está en Cuenta del usuario → Autenticación en dos pasos. Con esto, aunque alguien robe tu contraseña, necesitará el código de tu móvil para entrar.
Protege el acceso SSH (si tienes acceso root o de usuario)
Si tienes acceso SSH, es fundamental cambiar el puerto por defecto (22) y deshabilitar el acceso por contraseña, usando solo claves SSH. En DirectAdmin, esto se gestiona desde Administración de servidor → Configuración SSH. Si no sabes qué es esto, déjalo como está, pero si tu proveedor te lo permite, pídele que lo configure por ti.
Seguridad de archivos y permisos en WordPress
WordPress se compone de archivos y carpetas. Si esos archivos tienen permisos demasiado abiertos, cualquier usuario del sistema (o un script malicioso) puede modificarlos. Vamos a poner orden.
Permisos recomendados para archivos y carpetas
En un hosting Linux, los permisos se expresan con números. La regla de oro es:
- Carpetas (directorios): 755
- Archivos: 644
- Archivo wp-config.php: 600 (solo lectura para el propietario)
Puedes cambiarlos desde el Administrador de archivos de DirectAdmin. Selecciona todos los archivos de tu carpeta public_html (o la carpeta donde esté WordPress) y haz clic en Cambiar permisos.
[TIP] Si usas un plugin de caché o de seguridad, algunos archivos necesitan permisos 604 o 444. No te obsesiones con el número exacto; la clave es que el servidor web pueda leerlos, pero no modificarlos.
Elimina archivos innecesarios y peligrosos
Revisa tu carpeta raíz de WordPress. Debes eliminar:
- Archivos de instalación como
install.php(si aún existe). - Archivos de lectura como
readme.htmlolicense.txt(revelan la versión de WordPress). - Cualquier archivo
.zipo.tar.gzque hayas subido para instalar temas o plugins y que ya no uses.
Un atacante puede usar esos archivos para obtener información sobre tu versión exacta de WordPress y buscar vulnerabilidades específicas.
Protege el archivo wp-config.php
Este es el archivo más importante de tu WordPress. Contiene las claves de acceso a la base de datos y las claves secretas de autenticación. En DirectAdmin, puedes editarlo desde el Administrador de archivos o desde Administrador de bases de datos MySQL.
Además de los permisos 600, puedes añadir al principio una regla para bloquear el acceso directo desde el navegador. Abre el archivo y justo después de la línea <?php pega esto:
if (strpos($_SERVER['REQUEST_URI'], 'wp-config.php') !== false) { header('HTTP/1.0 403 Forbidden'); die('Acceso denegado'); }
[WARNING] Haz una copia de seguridad de
wp-config.phpantes de editarlo. Un error de sintaxis puede dejar tu web caída. Si no te sientes seguro, usa un plugin de seguridad para hacer esto automáticamente.
Proteger la base de datos MySQL en DirectAdmin
La base de datos guarda todo tu contenido, usuarios y contraseñas. Si alguien accede a ella, tiene el control total de tu sitio.
Prefijos de tabla personalizados
Durante la instalación de WordPress, se usa el prefijo wp_ por defecto. Esto facilita los ataques de inyección SQL, porque el atacante ya sabe el nombre de las tablas. Si ya tienes WordPress instalado, puedes cambiar el prefijo en el archivo wp-config.php, pero es un proceso delicado que requiere modificar también las tablas en MySQL.
Si vas a instalar WordPress desde cero, te recomiendo que uses un prefijo aleatorio como xh7k2_ o miweb_2024_. En DirectAdmin, cuando creas una base de datos, el prefijo lo eliges tú.
Usuarios de base de datos con privilegios mínimos
En DirectAdmin, al crear una base de datos, se crea un usuario con todos los privilegios. Eso es un riesgo. Lo ideal es que el usuario que usa WordPress solo tenga privilegios de SELECT, INSERT, UPDATE y DELETE sobre las tablas de tu sitio.
Para hacerlo, entra en Administrador de bases de datos MySQL, selecciona tu base de datos y haz clic en Editar privilegios. Desmarca opciones como DROP, ALTER, CREATE o GRANT. Así, si un atacante consigue las credenciales, no podrá borrar tablas ni cambiar la estructura.
Cambia la contraseña de la base de datos periódicamente
Al menos cada 6 meses, cambia la contraseña del usuario de la base de datos desde DirectAdmin. Luego actualiza el archivo wp-config.php con la nueva contraseña. Es un poco tedioso, pero es una barrera muy eficaz.
Hardening de WordPress: ajustes clave en wp-config.php
El archivo wp-config.php no solo guarda credenciales. También puedes añadir líneas que mejoran la seguridad de forma notable.
Desactiva la edición de archivos desde el administrador
Por defecto, WordPress permite editar archivos de temas y plugins desde el panel de administración. Si un atacante consigue acceso a tu panel, podrá inyectar código malicioso directamente. Para desactivarlo, añade esta línea:
define('DISALLOW_FILE_EDIT', true);
Limita las revisiones y autosave
WordPress guarda muchas revisiones de tus entradas, lo que puede llenar la base de datos y ralentizarla. Pero también es un vector de ataque si se filtra información sensible. Añade:
define('WP_POST_REVISIONS', 5);
define('AUTOSAVE_INTERVAL', 300);
Con esto, solo guardará 5 revisiones por entrada y autoguardará cada 5 minutos.
Claves de seguridad únicas
En wp-config.php hay 8 constantes llamadas AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY y sus variantes _SALT. Estas claves cifran las cookies de sesión. Si son débiles o se han filtrado, un atacante puede suplantar tu sesión.
Para regenerarlas, ve a la página oficial https://api.wordpress.org/secret-key/1.1/salt/, copia el bloque generado y reemplázalo en tu wp-config.php. Puedes hacerlo cada vez que sospeches de una intrusión.
Plugins de seguridad recomendados para WordPress
No hay una bala de plata, pero ciertos plugins complementan muy bien la seguridad a nivel de servidor. Te recomiendo instalar solo los imprescindibles para no ralentizar tu web.
Wordfence Security
Es el plugin de seguridad más completo y gratuito. Ofrece firewall de aplicación web (WAF), escaneo de malware, protección contra fuerza bruta y monitorización de archivos. Configúralo para que te envíe un correo si detecta cambios en archivos importantes.
[INFO] Wordfence puede consumir muchos recursos si tu hosting es limitado. Si notas lentitud, usa la versión gratuita y desactiva el escaneo en tiempo real, dejando solo el escaneo manual.
iThemes Security (antes Better WP Security)
Este plugin es excelente para usuarios de DirectAdmin porque integra muchas reglas de servidor. Puedes ocultar la URL de login, cambiar el prefijo de la base de datos, forzar SSL y deshabilitar la edición de archivos. Es más ligero que Wordfence y muy didáctico, ya que te explica cada opción.
Limit Login Attempts Reloaded
Este plugin es simple pero crucial. Limita el número de intentos de inicio de sesión fallidos. Si alguien intenta 5 veces y falla, bloquea su IP temporalmente. Esto frena los ataques de fuerza bruta, que son los más comunes.
[TIP] No instales más de dos plugins de seguridad. Se solapan y pueden generar conflictos. Elige uno de firewall completo (como Wordfence) y uno de límite de intentos de login.
Protección contra ataques de fuerza bruta en el login
El acceso wp-login.php es la puerta principal. Vamos a blindarla.
Cambia la URL de acceso
Con plugins como WPS Hide Login, puedes cambiar la URL de login de wp-login.php a algo como /acceso-seguro. Así, los bots que intentan entrar en la URL estándar se encontrarán con un 404.
Bloquea IPs maliciosas desde DirectAdmin
DirectAdmin incluye un Administrador de firewall (CSF o Firewall de ConfigServer). Si ves intentos de acceso repetidos desde una IP concreta, puedes bloquearla manualmente.
En Cuenta del usuario → Administrador de firewall, introduce la IP y selecciona Bloquear. También puedes añadir reglas para limitar el número de conexiones por minuto al puerto 80 (HTTP) y 443 (HTTPS).
Usa autenticación HTTP a nivel de servidor
Una técnica avanzada pero muy eficaz es añadir una capa de autenticación HTTP al directorio wp-login.php. En DirectAdmin, puedes hacerlo desde Administrador de protección de contraseña. Crea un usuario y contraseña adicionales que se pedirán antes de ver el formulario de WordPress.
[WARNING] Si usas caché de página, asegúrate de que no se cachee la página de login, o los usuarios legítimos podrían no poder acceder.
Seguridad a nivel de servidor con DirectAdmin
DirectAdmin te permite configurar reglas de servidor que protegen todo tu sitio, no solo WordPress.
Activa SSL/TLS con Let's Encrypt
Un sitio sin HTTPS es un imán para problemas. Además de la confianza del usuario, Google penaliza los sitios no seguros. En DirectAdmin, ve a SSL Certificates y selecciona Let's Encrypt. Introduce tu dominio y el panel renovará automáticamente el certificado cada 90 días.
Una vez activado, fuerza la redirección de HTTP a HTTPS. Puedes hacerlo desde el archivo .htaccess o desde la configuración del dominio en DirectAdmin.
Configura cabeceras de seguridad HTTP
Las cabeceras HTTP le dicen al navegador cómo comportarse. Puedes añadir estas en el archivo .htaccess de tu carpeta raíz:
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin-when-cross-origin"
Estas cabeceras mitigan ataques de clickjacking, XSS y de tipo MIME. Si usas un plugin de seguridad, es posible que ya las añada, pero no está de más tenerlas.
Desactiva la ejecución de PHP en carpetas de subida
Los atacantes suelen subir archivos PHP disfrazados de imágenes en la carpeta wp-content/uploads/. Para impedir que se ejecuten, crea un archivo .htaccess dentro de esa carpeta con el siguiente contenido:
<FilesMatch "\.(?i:php|phtml|php3|php4|php5)$">
Order Deny,Allow
Deny from All
</FilesMatch>
[INFO] Si usas algún plugin que necesite ejecutar PHP desde uploads (como ciertos generadores de PDF), esta regla podría romperlo. En ese caso, es mejor usar un plugin de seguridad que gestione esto de forma más granular.
Copias de seguridad: tu red de seguridad definitiva
Ningún sistema es 100% seguro. Por eso, las copias de seguridad son imprescindibles. Si todo lo demás falla, podrás restaurar tu sitio en minutos.
Copias de seguridad en DirectAdmin
DirectAdmin tiene un sistema de copias de seguridad integrado. Ve a Administrador de copias de seguridad y crea una copia completa de tu cuenta (archivos + bases de datos). Puedes programarlas para que se generen cada semana y se almacenen en otro servidor o en un servicio de nube.
Copias de seguridad con plugins de WordPress
Además de las copias del servidor, instala un plugin como UpdraftPlus o BackWPup. Estos te permiten programar copias automáticas de tu WordPress y enviarlas a Google Drive, Dropbox o un almacenamiento remoto. Así tienes una copia fuera del servidor, que te protegerá incluso si el servidor entero se cae o es hackeado.
[TIP] Cada vez que actualices WordPress, un tema o un plugin, haz una copia de seguridad justo antes. Si algo sale mal, podrás revertir el cambio en segundos.
Monitorización y respuesta ante incidentes
La seguridad no termina con la configuración. Debes vigilar tu sitio para detectar problemas a tiempo.
Revisa los registros de acceso y errores
En DirectAdmin, puedes ver los logs de acceso en Administrador de logs. Fíjate en peticiones extrañas a wp-login.php, xmlrpc.php o archivos de configuración. Si ves muchas desde una misma IP, es señal de ataque.
Configura alertas por correo
WordPress puede enviarte un correo cuando se detecte un cambio de archivos, un intento de login fallido o una actualización de plugins. Configura esto en tu plugin de seguridad.
Mantén un calendario de mantenimiento
Cada mes, dedica 15 minutos a:
- Actualizar WordPress, temas y plugins.
- Cambiar contraseñas de acceso al panel y a la base de datos.
- Revisar usuarios registrados en tu WordPress (elimina los que no reconozcas).
- Comprobar que las copias de seguridad se están generando correctamente.
Preguntas frecuentes (FAQ)
¿Puedo usar DirectAdmin y WordPress en el mismo servidor sin riesgos?
Sí, siempre que apliques las medidas de este artículo. DirectAdmin es un panel muy seguro si está actualizado y bien configurado. El riesgo principal suele venir de plugins de WordPress mal codificados o de contraseñas débiles.
¿Qué hago si mi sitio ya fue hackeado?
Primero, no entres en pánico. Restaura la copia de seguridad más reciente desde DirectAdmin. Luego, cambia todas las contraseñas (panel, base de datos, WordPress, FTP). Escanea tu ordenador por si el malware vino de tu equipo. Y después, aplica todas las medidas de seguridad que te he explicado antes de volver a subir el
