Apache : Installation, configuration, sécurisation
Table des matières
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
Se référer à l'article Configurer les services LAMP
Suivant les distributions, les fichiers ne s'appellent pas pareil et ne se situent pas au même endroit.
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:
Nous pouvons masquer aussi la version de PHP utilisée modifiant le fichier php.ini
Dans le VirtualHost, on peut ajouter ceci afin de masquer la version de PHP utilisée :
De manière générale, on peut ajouter dans les VirtualHosts ces directives :
Côté SSL, afin de renforcer la note SSL Labs ( https://www.ssllabs.com/ssltest/ ) on peut modifier ou ajouter ces directives :
On peut réduite le TimeOut d'apache à 60 secondes au lieu de 300 secondes:
Mais aussi réduire le nombre de processus apache à lancer par le serveur
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
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
Se référer à l'article Configurer les services LAMP
Les fichiers utilisés dans la suite
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 |
Sécurisation
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 et dans SSL
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
Côté SSL, 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éduite le TimeOut d'apache à 60 secondes au lieu de 300 secondes:
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