Sécurisez et durcissez le serveur web Apache en suivant les meilleures pratiques pour garder votre application web sécurisée.
Le serveur web est un élément essentiel des applications web. Une mauvaise configuration et une configuration par défaut peuvent exposer des informations sensibles, ce qui constitue un risque.
En tant que propriétaire ou administrateur d’un site web, vous devez régulièrement effectuer des analyses de sécurité de votre site web afin de détecter les menaces en ligne et d’agir avant qu’un pirate ne le fasse.
Passons en revue les configurations essentielles pour préserver votre serveur web Apache
Toutes les configurations suivantes se trouvent dans le fichier httpd.conf
de votre instance Apache
Remarque: faites une sauvegarde du fichier de configuration nécessaire avant de le modifier, afin de pouvoir le restaurer facilement en cas de problème
Désactiver la trace des requêtes HTTP
Par défaut, TraceEnable
on permet TRACE, ce qui interdit à tout corps de requête d’accompagner la requête
TraceEnable off fait en sorte que le serveur central et le mod_proxy renvoient une erreur 405 (Méthode non autorisée) au client
TraceEnable on permet le Cross-Site Tracing Issue et donne potentiellement la possibilité à un hacker de voler vos informations de cookies
Solution
Résolvez ce problème de sécurité en désactivant la méthode HTTP TRACE dans la configuration d’Apache
Vous pouvez le faire en modifiant/ajoutant la directive ci-dessous dans le fichier httpd.conf de votre serveur Web Apache
TraceEnable off
Exécutez en tant qu’utilisateur et groupe distincts
Par défaut, Apache est configuré pour fonctionner avec nobody ou daemon
Ne donnez pas à l’utilisateur (ou au groupe) le statut de root, à moins que vous ne sachiez exactement ce que vous faites et quels en sont les dangers
Solution
L’exécution d’Apache dans son propre compte non root est une bonne chose. Modifiez la directive User & Group dans le fichier httpd.conf de votre serveur web Apache
Utilisateur apache
Groupe apache
Désactiver la signature
Le paramètre Off, qui est le paramètre par défaut, supprime la ligne de bas de page
Le paramètre On ajoute simplement une ligne avec le numéro de version du serveur et ServerName de l’hôte virtuel qui sert
Solution
Il est préférable de désactiver la signature, car vous ne souhaitez peut-être pas révéler la version d’Apache que vous utilisez
ServerSignature Désactivé
Désactiver la bannière
Cette directive détermine si le champ d’en-tête de la réponse du serveur, qui est renvoyée aux clients, inclut une description du type de système d’exploitation générique du serveur ainsi que des informations sur les modules compilés
Solution
ServerTokens Prod
Restreindre l’accès à un réseau ou à une IP spécifique
Si vous souhaitez que votre site ne soit visible que par une adresse IP ou un réseau spécifique, vous pouvez modifier le répertoire de votre site dans httpd.conf
Solution
Indiquez l’adresse réseau dans la directive Allow
<Directory /yourwebsite>
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.20.0.0/24
</Directory>
Indiquez l’adresse IP dans la directive Allow
<Directory /yourwebsite>
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 10.20.1.56
</Directory>
Utilisez uniquement TLS 1.2
SSL 2.0, 3.0, TLS 1, 1.1 souffre de plusieurs failles cryptographiques
Vous avez besoin d’aide pour configurer SSL ? Consultez ce guide
Solution
SSLProtocol -ALL TLSv1.2
Désactivez la liste des répertoires
Si vous n’avez pas index.html dans le répertoire de votre site web, le client verra tous les fichiers et sous-répertoires listés dans le navigateur (comme ls -l en sortie)
Solution
Pour désactiver l’exploration des répertoires, vous pouvez définir la valeur de la directive Option à “None” ou à “-Indexes”
<Répertoire>
Options None
Order allow,deny
Allow from all
</Directory>
OU
<Directory
/>
Options -Indexes
Order allow,deny
Allow from all
</Directory>
Supprimez les modules DSO inutiles
Vérifiez votre configuration pour supprimer les modules DSO redondants
De nombreux modules sont activés par défaut après l’installation. Vous pouvez supprimer ceux dont vous n’avez pas besoin
Désactiver les chiffrages nuls et faibles
N’autorisez que les algorithmes de chiffrement forts, afin de fermer toutes les portes qui tentent d’utiliser des suites de chiffrement inférieures
Solution
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4 RSA : HIGH : MEDIUM
Restez à jour
Apache étant un logiciel libre actif, le moyen le plus simple d’améliorer la sécurité du serveur Web Apache est de conserver la dernière version. De nouvelles corrections et de nouveaux correctifs de sécurité sont ajoutés à chaque version. Mettez toujours à jour vers la dernière version stable d’Apache
Il ne s’agit là que de quelques-unes des configurations essentielles, et si vous souhaitez les approfondir, vous pouvez consulter mon guide de sécurité et de renforcement étape par étape