Sécuriser Apache2 : Les bonnes pratiques pour protéger votre serveur Web

Article publié le 17 Janvier 2026.

Installer un serveur Apache, c’est l’affaire de deux minutes en apt install. Le rendre prêt pour la production et résistant aux scans automatisés qui pullulent sur le web, c’est une autre histoire.

Aujourd’hui, on fait le tour des configurations indispensables pour durcir (hardener) votre service Apache2 sous Debian/Ubuntu.

1. On cache la version d’Apache et de l’OS

Par défaut, Apache est trop bavard. Il indique sa version et l’OS utilisé dans les signatures d’erreurs. C’est donner des indices précieux à un attaquant.

On modifie le fichier /etc/apache2/conf-enabled/security.conf (ou directement dans apache2.conf) :

 

2. Désactivation du listing des répertoires

Il n’y a rien de pire que de laisser un attaquant naviguer dans l’arborescence de vos fichiers si vous avez oublié un index.html.

Dans votre configuration de VirtualHost ou dans le répertoire racine :

Note : Le -Indexes désactive le listing, et -FollowSymLinks empêche de suivre des liens symboliques vers l’extérieur du répertoire.

3. Les Headers de sécurité (Le plat de résistance)

C’est ici que l’on gagne des points sur SecurityHeaders.com. Il faut activer le module headers : sudo a2enmod headers

Puis, ajoutez ces lignes dans votre config :

# Protection contre le Clickjacking
Header always set X-Frame-Options « SAMEORIGIN »
# Protection contre le XSS
Header set X-XSS-Protection « 1; mode=block »
# Désactivation du sniffing de type MIME
Header set X-Content-Type-Options « nosniff »
# Referrer Policy
Header set Referrer-Policy « no-referrer-when-downgrade »
# HSTS (A n’activer que si vous avez un certificat SSL valide !)
Header always set Strict-Transport-Security « max-age=31536000; includeSubDomains »

4. Désactiver les méthodes HTTP inutiles

La plupart du temps, vous n’avez besoin que de GET, POST et HEAD. Les méthodes TRACE ou TRACK peuvent être utilisées pour des attaques de type Cross-Site Tracing.

TraceEnable Off

<Location « / »>
AllowMethods GET POST HEAD
</Location>

5. Utiliser Fail2Ban pour bannir les bruteforcers

Apache génère des logs, autant s’en servir. Si vous ne l’avez pas encore, installez Fail2Ban pour bloquer les IPs qui cherchent des failles via des 404 à répétition.

Dans votre /etc/fail2ban/jail.local :

[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/apache2/error.log
maxretry = 3

Si vous ne vous souvenez plus comment installer fail2ban n’hésitez pas à jeter un coup d’oeil à mon article 😉 https://journaldunadminlinux.fr/tutoriel-protegez-votre-serveur-avec-fail2ban/

Conclusion

Avec ces quelques modifications, vous réduisez drastiquement la surface d’attaque de votre serveur. N’oubliez pas de tester votre configuration avec un petit apache2ctl configtest avant de redémarrer le service !

Comme toujours, la sécurité est un processus continu. Gardez vos paquets à jour avec un apt update && apt upgrade régulier.