Renforcez la sécurité de votre serveur web Apache en appliquant ces pratiques exemplaires, afin de protéger efficacement votre application web.
Un serveur web est un élément essentiel pour toute application web. Une configuration inadéquate ou l’utilisation des paramètres par défaut peuvent engendrer des risques en exposant des données sensibles.
En tant que propriétaire ou administrateur d’un site web, il est crucial d’effectuer régulièrement des analyses de sécurité. Cette démarche proactive permet de détecter les menaces potentielles et d’agir avant qu’un acteur malveillant ne puisse exploiter une vulnérabilité.
Examinons ensemble les configurations indispensables pour maintenir votre serveur web Apache en toute sécurité.
La configuration complète se trouve dans le fichier `httpd.conf` de votre instance Apache.
Important : Avant toute modification, effectuez une sauvegarde du fichier de configuration. Cela vous permettra une restauration facile en cas de problème.
Désactivation de la requête HTTP TRACE
La valeur par défaut `TraceEnable on` autorise l’utilisation de la méthode TRACE, qui empêche tout corps de requête d’accompagner la requête.
Lorsque `TraceEnable` est désactivé, le serveur principal et `mod_proxy` renvoient une erreur 405 (Méthode non autorisée) au client.
La méthode TRACE activée peut être exploitée pour des attaques de traçage intersite, exposant potentiellement vos informations de cookies à des pirates.
La solution
Pour remédier à ce problème de sécurité, il est recommandé de désactiver la méthode HTTP TRACE dans la configuration Apache.
Ceci peut être fait en modifiant/ajoutant la directive suivante dans votre fichier `httpd.conf` de votre serveur web Apache :
TraceEnable off
Exécution avec un utilisateur et groupe dédiés
Par défaut, Apache est configuré pour s’exécuter avec l’utilisateur `nobody` ou `daemon`.
Il est fortement déconseillé de configurer l’utilisateur (ou le groupe) en tant que `root`, sauf si vous êtes parfaitement conscient des implications et des risques encourus.
La solution
L’exécution d’Apache avec un compte non-root dédié est une pratique sécuritaire. Pour cela, modifiez les directives d’utilisateur et de groupe dans `httpd.conf` de votre serveur web Apache :
User apache Group apache
Désactivation de la signature du serveur
Le paramètre par défaut `ServerSignature Off` supprime la ligne de pied de page du serveur.
L’option `On`, quant à elle, ajoute une ligne indiquant le numéro de version du serveur et le `ServerName` de l’hôte virtuel.
La solution
Il est préférable de désactiver la signature du serveur, car il est souvent déconseillé de révéler la version d’Apache que vous utilisez.
ServerSignature Off
Masquer la bannière du serveur
Cette directive contrôle si le champ d’en-tête de réponse du serveur, renvoyé aux clients, inclut une description du type de système d’exploitation et des informations sur les modules compilés.
La solution
ServerTokens Prod
Limitation de l’accès à un réseau ou une adresse IP spécifique
Si vous souhaitez restreindre l’accès à votre site web à une adresse IP ou un réseau précis, vous pouvez modifier le bloc de configuration du répertoire de votre site dans `httpd.conf`.
La solution
Spécifiez l’adresse réseau souhaitée dans la directive `Allow`.
<Directory /yourwebsite> Options None AllowOverride None Order deny,allow Deny from all Allow from 10.20.0.0/24 </Directory>
Vous pouvez également spécifier une adresse IP particulière dans la directive `Allow`.
<Directory /yourwebsite> Options None AllowOverride None Order deny,allow Deny from all Allow from 10.20.1.56 </Directory>
Utilisation exclusive de TLS 1.2
Les protocoles SSL 2.0, 3.0, TLS 1 et 1.1 sont connus pour souffrir de multiples failles de sécurité cryptographiques.
Besoin d’aide pour configurer SSL ? Consultez ce guide.
La solution
SSLProtocol -ALL +TLSv1.2
Désactivation de l’indexation des répertoires
Si votre répertoire de site web ne contient pas de fichier `index.html`, le client verra une liste de tous les fichiers et sous-répertoires (similaire à la sortie de la commande `ls -l`).
La solution
Pour désactiver la navigation dans les répertoires, vous pouvez configurer la directive `Option` avec la valeur « None » ou « -Indexes ».
<Directory /> Options None Order allow,deny Allow from all </Directory>
OU
<Directory /> Options -Indexes Order allow,deny Allow from all </Directory>
Suppression des modules DSO inutiles
Passez en revue votre configuration pour supprimer les modules DSO redondants.
De nombreux modules sont activés par défaut après l’installation. Désactivez ceux dont vous n’avez pas besoin pour améliorer la sécurité.
Désactivation des chiffrements nuls et faibles
Autorisez uniquement les chiffrements robustes pour bloquer toute tentative de négociation avec des suites de chiffrement inférieures.
La solution
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM
Maintenir votre serveur à jour
Apache étant un projet open-source actif, la meilleure façon d’améliorer la sécurité de votre serveur web est de le maintenir à jour. Chaque nouvelle version apporte des corrections de bugs et des améliorations de sécurité. Veillez à mettre à niveau vers la dernière version stable d’Apache.
Les configurations présentées ci-dessus ne sont qu’une partie des mesures de sécurité essentielles. Pour des informations plus détaillées, n’hésitez pas à consulter mon guide de sécurité et de renforcement pas à pas.
Avez-vous apprécié cet article ? N’hésitez pas à le partager !