10 bonnes pratiques pour sécuriser et renforcer votre serveur Web Apache



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 !