Ceci est une ancienne révision du document !
Sécuriser un serveur Apache2
informations traduites de http://www.petefreitag.com/item/505.cfm
Cette page regroupe quelques manipulations qui vous permettront de sécuriser votre serveur LAMP.
Cacher la version d'Apache et autres informations sensibles
Par défaut, Apache affiche la version que vous utilisez, votre système d'exploitation, et d'autres informations. Une personne malveillante peut utiliser ces informations pour mieux cibler son attaque sur votre serveur, nous allons donc les cacher.
Éditez le fichier /etc/apache2/apache2.conf
Recherchez la ligne contenant
ServerSignature
et mettez
ServerSignature Off
Recherchez la ligne contenant
ServerTokens
et mettez
ServerTokens Prod
Restreindre l'accès aux seuls fichiers du répertoire web
On suppose que le répertoire /web est le répertoire où sont les fichiers de votre site web. (adaptez selon votre configuration) Éditez le fichier /etc/apache2/sites-available/default et insérez-y
<Directory /> Order Deny,Allow Deny from all Options None AllowOverride None </Directory> <Directory /web> Order Allow,Deny Allow from all </Directory>
Étant donné que les directives Options et AllowOverride sont mises à None, vous devrez ensuite les spécifier, si besoin, pour chaque répertoire décrit dans ce fichier.
Dans le cas d'hôtes virtuels, procédez de la même manière qu'avec le répertoire /web.
Empêcher le parcours d'un répertoire
Pour empêcher le parcours du répertoire /web, ajoutez l'option -Indexes:
<Directory /web> Order Allow,Deny Allow from all Options -Indexes </Directory>
Désactiver les inclusions coté serveur
Toujours au même endroit, (dans un tag <Directory>) :
Options -Includes
Désactiver l'exécution de scripts CGI
Si vous n'utilisez pas de scripts CGI ajoutez cette option :
Options -ExecCGI
Empêcher Apache de suivre les liens symboliques
Options -FollowSymLinks
Empêcher le téléchargement de fichiers .htaccess
AccessFileName .httpdoverride <Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files>
Filtrer les adresses IP
Vous pouvez choisir les adresses IP qui ont accès ou non à vos pages.
Par exemple : autoriser l'accès seulement depuis votre poste :
Order Deny,Allow Deny from all Allow from 127.0.0.1
ou encore sur votre réseau local :
Order Deny,Allow Deny from all Allow from 192.168.0.0/24
ou interdire une IP précise :
Order Allow,Deny Allow from all Deny from 192.168.0.5
etc…
Le principe est le suivant :
Allow,Deny Autorise tout le monde sauf les IP décrites dans Deny from
Deny,Allow Rejette tout le monde sauf les IP listés dans Allow from
Contributeurs : _Enchained