Services et serveurs

Apache : Installation, configuration, sécurisation

Table des matières

logo_apache



Installation



Pour Debian : se référer à l'article https://www.linuxtricks.fr/wiki/debian-installer-un-serveur-lamp-apache-mysql-php
Pour Gentoo : se référer à l'article https://www.linuxtricks.fr/wiki/installer-lamp-sur-gentoo-calculate-linux
Pour CentOS : se référer à l'article https://www.linuxtricks.fr/wiki/centos-7-installer-et-configurer-un-serveur-lamp
Pour Fedora : se référer à l'article https://www.linuxtricks.fr/wiki/fedora-installer-un-serveur-lamp


Configuration



Suivant les distributions, les fichiers ne s'appellent pas pareil et ne se situent pas au même endroit.

Gentoo

CentOS

Debian

Fichier de configuration Apache /etc/apache2/httpd.conf /etc/httpd/conf/httpd.conf /etc/apache2/apache2.conf
Fichier de configuration PHP /etc/php/apache2-phpX.Y/php.ini /etc/php.ini /etc/php/X.Y/apache2/php.ini



Masquer les détails du serveur web



Pour des raisons de sécurité, il est nécessaire de masquer la version d'Apache (afin que l'éventuel pirate ne puisse pas identifier la version et donc d'exploiter les failles associées).

Ainsi, dans le fichier de configuration Apache, il faut modifier les valeurs:

Code TEXT :
ServerTokens Prod
ServerSignature Off


Nous pouvons masquer aussi la version de PHP utilisée modifiant le fichier php.ini

Code TEXT :
expose_php = Off


Dans le VirtualHost, on peut ajouter ceci afin de masquer la version de PHP utilisée :

Code TEXT :
Header unset X-Powered-By



Renforcer la sécurité dans les VirtualHosts



De manière générale, on peut ajouter dans les VirtualHosts ces directives :

Code BASH :
# Bloquer le détournement de clic (clickjacking)
Header always set X-Frame-Options DENY
# Bloquer le changement des types MIME
Header always set X-Content-Type-Options nosniff


Renforcer la sécurité en HTTPS



Côté SSL/TLS, afin de renforcer la note "SSL Labs" ( https://www.ssllabs.com/ssltest/ ) on peut modifier ou ajouter ces directives :

Code BASH :
# Désactiver les protocoles non sûrs
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
# Forcer les algorithmes forts et sûrs 
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
# Forcer l'ordre de ces algorithmes 
SSLHonorCipherOrder on
# utiliser HSTS
Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"



Se protéger contre les attaques DoS



On peut réduire le TimeOut d'apache à 60 secondes au lieu de 300 secondes (à adapter suivant si le site peut avoir des requêtes longues) :

Code TEXT :
Timeout 60


Mais aussi réduire le nombre de processus apache à lancer par le serveur :

Code TEXT :
ServerLimit 64



Utiliser le module mod_security



ModSecurity est un module d'Apache spécialisé dans la sécurité. Il permet donc de sécuriser la couche applicative avant l'arrivée des requêtes sur le site hébergé sur l'Apache en question. Même s'il s'agit d'un module, ses fonctionnalités sont vastes et permettent de toucher à tous les points de sécurité nécessaire.

Installation sous Gentoo
Code BASH :
emerge  www-apache/mod_security


Installation sous CentOS
Code BASH :
yum install mod_security


Installation sous Debian
Code BASH :
apt install libapache-mod-security
Cette page a été vue 30945 fois