Nous allons sécuriser un minimum notre serveur Apache. Si vous souhaitez aller plus loin dans la sécurisation d'Apache, je vous invite à taper securiser apache dans un moteur de recherche.

Cacher la version d'apache

Lorsqu'une personne se connecte sur le port 80 d'un serveur web via telnet et qu'il tape HEAD / HTTP/1.0 suivi de deux Enter

telnet srvname.exemple-ch.org 80
...
HEAD / HTML/1.0

il obtient les informations ci-dessous:

...
Server: Apache/2.4.6 (CentOS)
...

Pour cacher ces informations modifier/ajouter la clés "ServerTokens Prod[uctOnly]" au fichier /etc/httpd/conf/httpd.conf. Avec la clés "ServerTokens Prod" la banière Server: Apache/2.4.6 (CentOS) se limite à Server : Apache.

Cela ne suffit toujours pas à masquer la version d'Apache : si vous demandez une page inexistante, Apache renvoie une page d'erreur 404 avec en bas de la page, le message Apache/2.4.6 Server at www.exemple-ch.org Port 80 qui révèle la version du serveur d'Apache.

Pour empêcher cela, il faut modifier/ajouter la clés "ServerSignature Off" au fichier /etc/httpd/conf/httpd.conf.

vim /etc/httpd/conf/httpd.conf
# Supplemental configuration
#
# Load config files in the "/etc/httpd/conf.d" directory, if any.
IncludeOptional conf.d/*.conf
ServerTokens Prod
ServerSignature Off

Supprimer également le fichier welcome.conf du répertoire /etc/httpd/conf.d. Ce fichier redirige sur la page de test d'Apache.

Restreindre l'accès aux fichiers

Toujours dans le fichier /etc/httpd/conf/httpd.conf modifier/ajouter les clés ci-dessous pour restreindre l'accès aux fichiers de l'arboresence du serveur. Cela implique qu'il faudra explicitement autoriser l'accès aux répertoires lors de la définition d'un hôte virtuel ou d'un alias (voir Aliases et Hôtes virtuels).

...
<Directory "/var/www/html">
...
     AllowOverride None
     #
     # Controls who can get stuff from this server.
     #
     # Require all granted
     Require all denied
     </Directory>
     ...

N'oubliez pas de redémarrer le service httpd avec la commande systemctl restart httpd.