Sécuriser Drupal : guide complet pour protéger
Drupal est connu pour sa sécurité robuste, mais seulement si vous le configurez et le maintenez correctement. Dans ce guide, nous aborderons toutes les mesures de sécurité essentielles pour protéger votre site Drupal contre les attaques.
Pourquoi la sécurité de Drupal est-elle importante
Drupal est utilisé par des gouvernements et de grandes organisations précisément en raison de sa bonne sécurité. Mais chaque site web est une cible potentielle :
- Les hackers recherchent des vulnérabilités
- Les malwares peuvent infecter les visiteurs
- Les données peuvent être volées
- Votre site peut être utilisé pour du spam
Avec les bonnes mesures, vous pouvez prévenir 95 % de toutes les attaques.
Mises à jour comme première ligne de défense
Les mises à jour sont la mesure de sécurité la plus importante pour Drupal.
Suivre les avis de sécurité
Drupal publie des mises à jour de sécurité à des moments fixes :
- Suivez le Drupal Security Team
- Abonnez-vous aux notifications de sécurité
- Les mises à jour de sécurité sont publiées le mercredi
- Les mises à jour critiques sont annoncées immédiatement
Mettre à jour le cœur de Drupal
Gardez toujours le cœur à jour :
- Allez dans Rapports puis Mises à jour disponibles
- Vous verrez les mises à jour disponibles
- Les mises à jour de sécurité ont une étiquette rouge
- Faites d'abord une sauvegarde
- Exécutez la mise à jour
Via Composer (recommandé) :
# Vérifiez les mises à jour disponibles
composer outdated drupal/*
# Mettez à jour le cœur de Drupal
composer update drupal/core-recommended drupal/core-composer-scaffold --with-all-dependencies
# Exécutez les mises à jour de la base de données
drush updatedb
drush cache:rebuild
Mettre à jour les modules
Les modules peuvent également avoir des failles de sécurité :
- Allez dans Rapports puis Mises à jour disponibles
- Vérifiez l'onglet Mises à jour de sécurité uniquement
- Mettez à jour d'abord les modules avec des problèmes de sécurité
# Mettez à jour tous les modules
composer update drupal/*
# Mettez à jour un module spécifique
composer update drupal/webform
Mots de passe forts et authentification
Les mots de passe faibles sont une vulnérabilité courante.
Configurer la politique de mot de passe
- Allez dans Configuration puis Personnes
- Cliquez sur Paramètres du compte
- Configurez les exigences de mot de passe :
- Longueur minimale
- Caractères obligatoires (majuscule, chiffres, caractères spéciaux)
- Enregistrez les paramètres
Module de politique de mot de passe
Pour une politique plus détaillée :
composer require drupal/password_policy
Configurez des règles pour :
- Longueur minimale de mot de passe (12+ caractères)
- Types de caractères obligatoires
- Historique des mots de passe
- Date d'expiration
Authentification à deux facteurs
Ajoutez une couche de sécurité supplémentaire :
composer require drupal/tfa
Configuration :
- Allez dans Configuration puis TFA
- Choisissez la méthode d'authentification (TOTP, codes de récupération)
- Exigez 2FA pour les administrateurs
- Les utilisateurs le configurent via leur profil
Limiter les droits des utilisateurs
Le principe des droits minimaux est essentiel.
Réviser les rôles
- Allez dans Personnes puis Permissions
- Vérifiez chaque rôle pour des droits inutiles
- Supprimez les droits qui ne sont pas nécessaires
- Faites particulièrement attention à :
- Droits de gestion de contenu
- Droits d'administration
- Droits d'exécution PHP
Pas de PHP dans le contenu
Le module PHP Filter a été supprimé de Drupal 8+ pour de bonnes raisons. Ne l'installez jamais. Utilisez plutôt :
- Modules personnalisés pour des fonctionnalités dynamiques
- Templates Twig pour l'affichage
Limiter les comptes administrateurs
- Minimisez le nombre de comptes administrateurs
- Utilisez des rôles spécifiques au lieu d'un administrateur complet
- Révisez régulièrement qui a quel accès
Droits de fichiers et sécurité du serveur
Des droits de fichiers corrects préviennent de nombreuses attaques.
Droits recommandés
Drupal a besoin de droits spécifiques :
# Dossiers : 755
find /path/to/drupal -type d -exec chmod 755 {} \;
# Fichiers : 644
find /path/to/drupal -type f -exec chmod 644 {} \;
# sites/default/files writable
chmod 755 sites/default/files
# settings.php readonly
chmod 444 sites/default/settings.php
Sécuriser settings.php
Après l'installation, settings.php doit être en lecture seule :
chmod 444 sites/default/settings.php
chmod 555 sites/default
Paramètres d'hôte de confiance
Configurez quels noms d'hôtes sont valides dans settings.php :
$settings['trusted_host_patterns'] = [
'^www\.votredomaine\.fr$',
'^votredomaine\.fr$',
];
Cela prévient les attaques par en-tête d'hôte.
Configurer SSL/HTTPS
Tous les sites Drupal doivent utiliser HTTPS.
Activer SSL
Chez Theory7, SSL est disponible gratuitement :
- Activez Let's Encrypt dans DirectAdmin
- Attendez que le certificat soit créé
- Testez si HTTPS fonctionne
Forcer HTTPS
Forcez HTTPS via .htaccess :
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Ou via settings.php :
$settings['https'] = TRUE;
Cookies sécurisés
Assurez-vous que les cookies ne sont envoyés que via HTTPS :
// Dans settings.php
ini_set('session.cookie_secure', 1);
Installer des modules de sécurité
Des modules supplémentaires renforcent votre sécurité.
Security Kit
composer require drupal/seckit
Configure :
- Politique de sécurité du contenu (CSP)
- Protection contre le clickjacking
- Prévention des scripts inter-sites (XSS)
Honeypot
Protège contre les bots de spam :
composer require drupal/honeypot
Ajoute des champs invisibles que les bots remplissent, pas les utilisateurs légitimes.
Contrôle des inondations
Protège contre les attaques par force brute :
composer require drupal/flood_control
Configurez des limites pour :
- Essais de connexion par IP
- Essais de connexion par compte
- Envois de formulaires de contact
reCAPTCHA
Protège les formulaires contre les bots :
composer require drupal/recaptcha
Configurez avec vos clés Google reCAPTCHA.
Surveillance et journalisation
Détectez rapidement les problèmes grâce à une bonne surveillance.
Voir les journaux Drupal
- Allez dans Rapports puis Messages de journal récents
- Filtrez par niveau de gravité
- Faites attention aux erreurs répétées
- Vérifiez les activités suspectes
Configurer le journal de la base de données
- Allez dans Configuration puis Développement
- Cliquez sur Journalisation et erreurs
- Définissez combien de messages sont conservés
- Journalisez les erreurs vers syslog pour un stockage permanent
Surveillance externe
Envisagez une surveillance externe pour :
- Surveillance de la disponibilité
- Scans de sécurité
- Métriques de performance
- Expiration des certificats SSL
Stratégie de sauvegarde
Les sauvegardes sont votre dernière ligne de défense.
Module Backup and Migrate
composer require drupal/backup_migrate
Configurez :
- Sauvegardes automatiques quotidiennes
- Stockage sur un emplacement externe
- Conservez plusieurs versions
- Testez régulièrement la restauration
Sauvegardes DirectAdmin
Combinez avec les sauvegardes DirectAdmin pour une sécurité supplémentaire.
Liste de contrôle de sécurité
Vérifiez régulièrement :
- Cœur de Drupal et modules à jour
- Mots de passe forts pour tous les comptes
- Authentification à deux facteurs pour les administrateurs
- Droits minimaux par rôle
- Droits de fichiers corrects
- HTTPS actif et forcé
- Modules de sécurité installés
- Journalisation active
- Sauvegardes fonctionnelles
Articles connexes
- Sauvegarde et migration Drupal
- Configuration de base de Drupal
- Modules et thèmes Drupal
- Plus d'informations sur l'hébergement Drupal chez Theory7
Besoin d'aide ?
Nous sommes là pour vous ! Vous rencontrez un problème ou avez des questions ? Notre équipe de support est prête à vous aider personnellement. Envoyez-nous un message via le système de tickets - nous répondons généralement dans quelques heures et sommes heureux de vous aider.
0 van 0 vonden dit nuttig