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
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/TLS, afin de renforcer la note "SSL Labs" ( https://www.ssllabs.com/ssltest/ ) on peut modifier ou ajouter ces directives :
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) :
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 sous Gentoo
Installation sous CentOS
Installation sous Debian
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