Cómo proteger Drupal: guía completa de seguridad
Cómo proteger Drupal: guía completa de seguridad
Drupal es conocido por su sólida seguridad, pero solo si lo configuras y lo mantienes correctamente. En esta guía repasamos todas las medidas de seguridad esenciales para proteger tu sitio web Drupal contra los ataques.
Por qué es importante la seguridad de Drupal
Las administraciones públicas y las grandes organizaciones usan Drupal precisamente por su buena seguridad. Pero cualquier sitio web es un objetivo potencial:
- Los hackers buscan vulnerabilidades
- El malware puede infectar a los visitantes
- Los datos pueden ser robados
- Tu sitio puede utilizarse de forma abusiva para enviar spam Con las medidas adecuadas evitas el 95% de todos los ataques.
Las actualizaciones como primera línea de defensa
Las actualizaciones son la medida de seguridad más importante en Drupal.
Seguir los avisos de seguridad
Drupal publica actualizaciones de seguridad en momentos fijos:
- Sigue al Drupal Security Team
- Suscríbete a las notificaciones de seguridad
- Las versiones de seguridad salen los miércoles
- Las actualizaciones críticas se anuncian de inmediato
Actualizar el core de Drupal
Mantén el core siempre actualizado:
- Ve a Reports y después a Available updates
- Verás las actualizaciones disponibles
- Las actualizaciones de seguridad llevan una etiqueta roja
- Haz primero una copia de seguridad
- Ejecuta la actualización Con Composer (recomendado):
# Comprueba las actualizaciones disponibles
composer outdated drupal/*
# Actualiza el core de Drupal
composer update drupal/core-recommended drupal/core-composer-scaffold --with-all-dependencies
# Ejecuta las actualizaciones de la base de datos
drush updatedb
drush cache:rebuild
Actualizar los módulos
Los módulos también pueden tener fallos de seguridad:
- Ve a Reports y después a Available updates
- Comprueba la pestaña Security updates only
- Actualiza primero los módulos con problemas de seguridad
# Actualiza todos los módulos
composer update drupal/*
# Actualiza un módulo concreto
composer update drupal/webform
Contraseñas seguras y autenticación
Las contraseñas débiles son una vulnerabilidad muy habitual.
Configurar la política de contraseñas
- Ve a Configuration y después a People
- Haz clic en Account settings
- Configura los requisitos de las contraseñas:
- Longitud mínima
- Caracteres obligatorios (mayúsculas, números, caracteres especiales)
- Guarda la configuración
Módulo Password Policy
Para una política más completa:
composer require drupal/password_policy
Configura reglas para:
- Longitud mínima de la contraseña (12+ caracteres)
- Tipos de caracteres obligatorios
- Historial de contraseñas
- Fecha de caducidad
Autenticación de dos factores
Añade una capa de seguridad adicional:
composer require drupal/tfa
Configuración:
- Ve a Configuration y después a TFA
- Elige el método de autenticación (TOTP, códigos de recuperación)
- Exige 2FA a los administradores
- Los usuarios lo configuran desde su perfil
Limitar los permisos de los usuarios
El principio de privilegios mínimos es esencial.
Revisar los roles
- Ve a People y después a Permissions
- Revisa cada rol en busca de permisos innecesarios
- Elimina los permisos que no hagan falta
- Presta especial atención a:
- Permisos de gestión de contenido
- Permisos de administrador
- Permisos de ejecución de PHP
Nada de PHP en el contenido
El módulo PHP Filter se eliminó de Drupal 8+ por buenas razones. No lo instales nunca. En su lugar, usa:
- Módulos personalizados para la funcionalidad dinámica
- Plantillas Twig para la presentación
Limitar las cuentas de administrador
- Reduce al mínimo el número de cuentas de administrador
- Usa roles específicos en lugar de un administrador completo
- Revisa con regularidad quién tiene cada acceso
Permisos de archivos y seguridad del servidor
Unos permisos de archivos correctos evitan muchos ataques.
Permisos recomendados
Drupal necesita unos permisos concretos:
# Carpetas: 755
find /path/to/drupal -type d -exec chmod 755 {} \;
# Archivos: 644
find /path/to/drupal -type f -exec chmod 644 {} \;
# sites/default/files con permiso de escritura
chmod 755 sites/default/files
# settings.php de solo lectura
chmod 444 sites/default/settings.php
Proteger settings.php
Después de la instalación, settings.php debe ser de solo lectura:
chmod 444 sites/default/settings.php
chmod 555 sites/default
Trusted host settings
Configura en settings.php qué nombres de host son válidos:
$settings['trusted_host_patterns'] = [
'^www\.jouwdomein\.nl$',
'^jouwdomein\.nl$',
];
Esto evita los ataques de cabecera host.
Configurar SSL/HTTPS
Todos los sitios Drupal deben usar HTTPS.
Activar SSL
En el hosting de Theory7, el SSL está disponible gratis:
- Activa Let's Encrypt en DirectAdmin
- Espera a que se cree el certificado
- Comprueba que HTTPS funciona
Forzar HTTPS
Fuerza HTTPS mediante .htaccess:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
O mediante settings.php:
$settings['https'] = TRUE;
Cookies seguras
Asegúrate de que las cookies solo se envían por HTTPS:
// En settings.php
ini_set('session.cookie_secure', 1);
Instalar módulos de seguridad
Los módulos adicionales refuerzan tu seguridad.
Security Kit
composer require drupal/seckit
Configura:
- Content Security Policy (CSP)
- Protección contra el clickjacking
- Prevención del cross-site scripting (XSS)
Honeypot
Protege contra los bots de spam:
composer require drupal/honeypot
Añade campos invisibles que los bots rellenan y los usuarios legítimos no.
Flood Control
Protege contra los ataques de fuerza bruta:
composer require drupal/flood_control
Configura límites para:
- Intentos de inicio de sesión por IP
- Intentos de inicio de sesión por cuenta
- Envíos del formulario de contacto
reCAPTCHA
Protege los formularios contra los bots:
composer require drupal/recaptcha
Configúralo con tus claves de Google reCAPTCHA.
Supervisión y registros
Detecta los problemas rápidamente con una buena supervisión.
Consultar los registros de Drupal
- Ve a Reports y después a Recent log messages
- Filtra por nivel de gravedad
- Fíjate en los errores repetidos
- Busca actividad sospechosa
Configurar el registro de la base de datos
- Ve a Configuration y después a Development
- Haz clic en Logging and errors
- Indica cuántos mensajes se conservan
- Envía los errores a syslog para guardarlos de forma permanente
Supervisión externa
Plantéate usar supervisión externa para:
- Supervisión de la disponibilidad
- Análisis de seguridad
- Métricas de rendimiento
- Caducidad del certificado SSL
Estrategia de copias de seguridad
Las copias de seguridad son tu última línea de defensa.
Módulo Backup and Migrate
composer require drupal/backup_migrate
Configura:
- Copias de seguridad automáticas diarias
- Almacenamiento en una ubicación externa
- Conservación de varias versiones
- Pruebas periódicas de restauración
Copias de seguridad de DirectAdmin
Combínalas con las copias de seguridad de DirectAdmin para tener más seguridad.
Lista de comprobación de seguridad
Comprueba con regularidad:
- Core y módulos de Drupal actualizados
- Contraseñas seguras en todas las cuentas
- Autenticación de dos factores para los administradores
- Permisos mínimos por rol
- Permisos de archivos correctos
- HTTPS activo y forzado
- Módulos de seguridad instalados
- Registros activos
- Copias de seguridad en funcionamiento
¿Necesitas ayuda?
Estamos a tu disposición. ¿Te has encontrado con algún problema o tienes preguntas? Nuestro equipo de soporte te ayuda personalmente. Envíanos un mensaje a través del sistema de tickets: normalmente respondemos en unas horas y buscamos contigo la solución.
¿Buscas hosting WordPress? Consulta nuestra oferta.
A 0 de 0 personas les ha resultado útil