Mise en place serveur Apache
Procédure pour installer et configurer un serveur web Apache HTTP Server sur Debian/Ubuntu de manière sécurisée : virtualhosts, HTTPS via Let's Encrypt, durcissement de la configuration et hardening de base.
Mise en place sécurisée d’un serveur Apache sur Debian¶
Installation d’Apache¶
Avant d’installer Apache, assurez-vous que votre système est à jour :
Puis installez Apache :
Vérifiez que le service est bien démarré :
Activez Apache au démarrage :
Sécurisation de la configuration d’Apache¶
Désactiver les informations sensibles¶
Par défaut, Apache affiche sa version et d’autres informations qui pourraient être utilisées pour une attaque. Modifiez le fichier de configuration principal :
Assurez-vous que les lignes suivantes sont bien présentes et décommentées :
Appliquez les modifications :
Restreindre l’accès aux répertoires¶
Dans le fichier /etc/apache2/apache2.conf, localisez la section <Directory /> et modifiez-la comme suit :
Cela empêche l’accès aux répertoires système et réduit la surface d’attaque.
Activer les modules de sécurité¶
Activez les modules suivants pour renforcer la sécurité d’Apache :
Ajoutez des en-têtes de sécurité dans /etc/apache2/conf-available/security.conf :
Header always set X-Frame-Options "DENY"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; object-src 'none';"
Appliquez les changements :
Configuration HTTPS avec Let’s Encrypt¶
Installez Certbot et le module Apache correspondant :
Générez un certificat SSL :
Suivez les instructions et assurez-vous que la redirection HTTP vers HTTPS est activée.
Vérifiez l’automatisation du renouvellement :
Ajoutez un cron job pour renouveler automatiquement les certificats :
Protection contre les attaques courantes¶
Protection contre les attaques DoS (mod_evasive)¶
Installez le module :
Éditez son fichier de configuration :
Ajoutez les lignes suivantes :
DOSHashTableSize 2048
DOSPageCount 10
DOSSiteCount 50
DOSBlockingPeriod 600
DOSLogDir "/var/log/mod_evasive"
Créez le répertoire des logs et donnez-lui les bonnes permissions :
Redémarrez Apache :
Protection contre les injections SQL et XSS (mod_security)¶
Installez ModSecurity :
Activez la règle Core Rule Set (CRS) :
Activez ModSecurity :
Journalisation et surveillance¶
Configurer la journalisation des accès et erreurs¶
Les logs d’Apache se trouvent par défaut dans :
/var/log/apache2/access.log(journal des accès)/var/log/apache2/error.log(journal des erreurs)
Pour surveiller les tentatives suspectes, utilisez :
Installer Fail2Ban pour bloquer les IP malveillantes¶
Installez Fail2Ban :
Ajoutez un filtre Apache :
Ajoutez la configuration suivante :
Activez Fail2Ban :
Pour voir les IP bannies :