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.