Voici l’avant dernier conseil de cette longue série de vingt :
Sécurisez votre serveur web Apache sur Unix/Linux
Ce dernier conseil va s’avérer essentiel si vous êtes administrateur de votre propre serveur. En effet, vous devez sécuriser votre serveur Web Apache afin de le protéger au maximum des attaques. Pour cela, je vous propose de suivre mes dix conseils mentionnés ci-dessous. J’essaie au maximum de respecter ceux-ci dans chacun des serveurs que je mets en place.
- 1 – Désactiver les modules inutiles : Il s’avère que l’installation d’Apache peut être accompagnée de nombreux paquets qui peuvent être inutiles pour vous. Je vous conseille d’aller faire un tour et de désactiver ceux vous semblant obsolètes (
cgi
,userdir
, …) - 2 – Exécuter Apache avec un utilisateur et un groupe séparé : Par défaut, Apache peut fonctionner en tant que nobody ou daemon. Il est généralement conseillé d’exécuter Apache avec son propre compte. Par exemple : Apache
- 3 – Restreindre l’accès au répertoire racine (Utilisez Allow ou Deny) : Pour cela il vous faut fixer le répertoire racine en le définissant dans le fichier
httpd.conf
- 4 – Définir les autorisations appropriées pour les répertoires
conf
etbin
: Les répertoiresbin
etconf
doivent être consultés uniquement par les utilisateurs autorisés. C’est une bonne idée de créer un groupe, et ajouter tous les utilisateurs qui sont autorisés à voir/modifier les fichiers de configuration Apache pour ce groupe - 5 – Désactiver le listing du répertoire : Si vous ne faites pas cela, tous les utilisateurs seront en mesure de voir tous les fichiers (et répertoires) à la racine de votre serveur Web (voir même les sous dossiers)
- 6 – Ne laisser pas les
.htaccess
: En utilisant un fichier.htaccess
à l’intérieur d’un sous-répertoire du répertoirehtdocs
par exemple (ou n’importe où ailleurs), les utilisateurs pourront écraser les directives Apache par défaut. Dans certaines situations, ce n’est pas conseillé et devrait même être évité. Vous devrez désactiver cette fonctionnalité. - 7 – Désactiver les autres options : Je vous conseille de ne jamais spécifier
Options All
mais plutôt de toujours préciser une (ou plusieurs) des options mentionnées suivantes :Options ExecCGI
,Options Includes
,Options Indexes
, etc… - 8 – Retirer les indésirables modules DSO : Si vous avez chargé tous les modules dynamiques à Apache, ils seront présents à l’intérieur du fichier
httpd.conf
depuis les directivesLoadModule
- 9 – Restreindre l’accès à un réseau spécifique (ou adresse IP) : Si vous voulez que votre site soit consulté seulement par une adresse IP ou un réseau spécifique je vous conseille de rajouter la directive
Allow from
- 10 – Ne pas afficher ou envoyer la version d’Apache (Set ServerTokens) : Par défaut, l’en-tête de réponse du serveur HTTP contient la version de PHP et Apache. C’est dangereux de donner cette information à un hacker… Pour éviter cela, réglez le
ServerTokens
enProd
dans le fichierhttpd.conf
Voilà mes différents conseils afin de sécuriser votre serveur Web Apache sur Unix/Linux. Si vous souhaitez les commandes exactes pour chacun d’eux n’hésitez pas à me le demander en commentaire de cet article.
Avez-vous d’autres conseils afin de sécuriser un serveur Web ? Venez nous les dire.