Apache HTTP Server est l’un des serveurs web les plus utilisés au monde.
Par défaut, sa configuration est fonctionnelle, mais pas forcément optimisée pour la sécurité.
Dans cet article, nous allons voir comment durcir la configuration d’Apache pour protéger efficacement vos sites et applications web.
Plan de l’article
- Masquer les informations sensibles
- Activer HTTPS et forcer TLS
- Configurer les en-têtes de sécurité
- Restreindre les accès aux répertoires
- Bonnes pratiques supplémentaires
- Conclusion
Masquer les informations sensibles
Évitez d’exposer la version d’Apache et du système :
Fichier /etc/apache2/conf-available/security.conf
:
ServerTokens Prod
ServerSignature Off
Activer HTTPS et forcer TLS
Installer le module SSL et générer un certificat (exemple avec Let’s Encrypt) :
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
Forcer l’utilisation de TLS et interdire les protocoles obsolètes :
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
SSLHonorCipherOrder on
Configurer les en-têtes de sécurité
Dans /etc/apache2/conf-available/security.conf
:
Header always set X-Frame-Options "SAMEORIGIN"
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'"
Activer le module headers :
sudo a2enmod headers
sudo systemctl restart apache2
Restreindre les accès aux répertoires
Exemple dans un VirtualHost :
<Directory /var/www/html>
Options -Indexes
AllowOverride None
Require all granted
</Directory>
👉 Options -Indexes
empêche la navigation dans les répertoires.
👉 AllowOverride None
limite l’usage des .htaccess
.
Bonnes pratiques supplémentaires
- Désactiver les modules non utilisés (
a2dismod
). - Restreindre l’accès SSH et surveiller les journaux (
/var/log/apache2/
). - Mettre en place un WAF (Web Application Firewall).
- Garder Apache et OpenSSL à jour.
Conclusion
En appliquant ces bonnes pratiques, vous renforcez considérablement la sécurité de votre serveur Apache.
Un serveur correctement configuré limite la surface d’attaque et protège vos applications web contre les menaces courantes.