01 déc. 2008
Configuration Sécurisation Apache2
Par Christophe de saint leger le lundi, décembre 1 2008, 08:45 - Serveur - Lien permanent
Aprés l'installation d'apache2 et des ses modules complémentaires comme mod_security ou autres , nous allons voir ici , les premiers paramètres à modifier pour un serveur qui se retrouve en production afin qu'il n'en dis pas trop sur lui .
Etape 1 le fichier httpd.conf
Commençons par le commencement , éditer le fichier httpd.conf qui dans ma configuration (installation manuel expliqué dans ce blogue ) , se trouve à cette endroit /usr/local/conf/
cd /usr/local/conf/ vim httpd.conf
Commencez par ajouter cette ligne :
TraceEnable Off
Cette directive est à désactiver en production , car elle est reconnue comme une faille potentiel , j'avoue ne jamais l'avoir utilisé voici un lien vers sa documentation ici
Nous allons ensuite compléter les paramètres suivants :
ServerAdmin monadresse@mondomaine.com ServerName lindev.fr:80
Ces deux paramètres sont les minimums à renseigner , pas pour la sécurité , mais pour un bon fonctionnement du serveur apache ( même si vous ne les renseignez pas le serveur fonctionnera , mais risque de vous retourner des warning au démarrage ).
Ensuite , je trouve dans mon fichier httpd.conf , des directives comme ceci :
<Directory /> ... </Directory> <Directory "/usr/local/htdocs"> ... </Directory> <Directory "/usr/local/cgi-bin"> ... </Directory>
Nous allons par défaut interdire l'acess complet à tout le monde .. Ce qui doit être accessible , sera paramétré dans les VHost . De plus nous allons interdire tout listage de fichiers . Pour mener à bien , ces régles , vérifiez qu'entre les balises <Directory ...> et </Directory> vous trouvez ces options réglé comme suite:
Options -Indexes FollowSymLinks AllowOverride None Order deny,allow Deny from all
Viens ensuite l'activation ou non d'autres fichiers de configuration qui par défaut ne sont pas activé ..
# Server-pool management (MPM specific) #Include conf/extra/httpd-mpm.conf # Multi-language error messages #Include conf/extra/httpd-multilang-errordoc.conf # Fancy directory listings #Include conf/extra/httpd-autoindex.conf # Language settings #Include conf/extra/httpd-languages.conf # User home directories #Include conf/extra/httpd-userdir.conf # Real-time info on requests and configuration #Include conf/extra/httpd-info.conf # Local access to the Apache HTTP Server Manual #Include conf/extra/httpd-manual.conf # Distributed authoring and versioning (WebDAV) #Include conf/extra/httpd-dav.conf # Various default settings #Include conf/extra/httpd-default.conf
Nous allons donc en activer certains , puis regarder ce qu'il y a à modifier dans ces fichiers .. ( rien pour la plupart ).
Pour activer ( prendre en compte un fichier de configuration supplémentaire , il suffit de décommenter la ligne correspondante. )
Je vais donc activer les fichiers suivants :
Include conf/extra/httpd-mpm.conf
Permet de gérer la gestions des process d'apache utile si vous souhaitez modifier ses valeurs en fonction de vos besions , mais les paramétres par défaut fonctionne trés bien ... nous n'allons donc pas toucher à ce fichier et laisser le tout par défaut .
Include conf/extra/httpd-autoindex.conf
Permet d'améliorer l'affichage lorsque l'on souhaite lister les fichiers d'un répertoire .. Cette ligne est lion d'être nécessaire ... mais si vous accedez à une arborescence de fichiers via votre navigateur , pourquoi s'en priver
Include conf/extra/httpd-languages.conf
Contient le paramètres concernant les langages , ouvrons ce fichier httpd-languages.conf
Nous allons changer la directive LanguagePriority pour y mettre fr en premier
LanguagePriority fr en ca cs da de el eo es et he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW
Encore une fois , ce fichier n'est pas absolument nécessaire dans un cas standard ...
Enfin , et certainement le plus important ,
Include conf/extra/httpd-default.conf
Paramètres globaux importants à configurer ...
ouvrons ce fichier httpd-default.conf
Les paramètres à modifier sont les suivants :
ServerTokens Prod ServerSignature Off HostnameLookups Off
ServerTokens permet d'en dire le moins possible sur l'environement dans lequel travail apache , en complément , ServerSignature permet de ne pas dévoiler quel type de serveur web il sagit . Notez que si vous avez installé le module mod_security , vous devez mettre le paramétre ServerSignature à full pour utiliser la directive SecServerSignature qui met une fausse signature ..
Voilà pour l'essentiel , notez que les paramètres édités ici peuvent tous se trouver dans le fichier principale httpd.conf , mais je trouve cette façon de faire moins pratique .
Si quelqu'un conseil d'autres directives pour sécuriser ou mieux configurer un serveur web apache , surtout , qu'il n'hésite pas à m'en faire part .
Christophe.

Commentaires
Intéressant, mais il manque peut-être un point extrêmement important : ne pas charger les modules dont on n'a pas besoin.
Car ils apportent une probabilité de faille plus importante.
Merci pour ton commentaire ,
Effectivement , mais ce point est conseillé dans un de mes billets "Installation Apache2 Et PHP5 manuellement" plus pour un gain de performances que de sécurité ..
Mais tu as raison de le préciser aussi ici ..
Merci , tous les commentaires sont les bienvenus .. .
Très bel article, et je confirme cet article !