Table des matières
Sécuriser Apache
Vérification si récupération d'empreintes
nmap
nmap -sV -p 80 192.168.1.12 Starting Nmap 7.60 ( https://nmap.org ) at 2020-05-07 17:47 CEST Nmap scan report for panoramix.home.lan (192.168.1.12) Host is up (0.00029s latency). PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.43 ((FreeBSD) OpenSSL/1.1.1f-freebsd PHP/7.4.5) MAC Address: 00:24:8C:3F:92:27 (Asustek Computer) Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 6.95 seconds
Attention : récupération du type, de la version du serveur HTTP, de l'OS, de la version de la version PHP
Apache httpd : 2.4.43
FreeBSD
OpenSSL: 1.1.1f
PHP: 7.4.5
grep -n 'ServerName' /usr/local/etc/apache24/httpd.conf 266:# ServerName gives the name and port that the server uses to identify itself. 272:#ServerName www.example.com:80 vim +272 /usr/local/etc/apache24/httpd.conf #ServerName www.example.com:80 ServerTokens Prod
nmap -sV -p 80 192.168.1.12 Starting Nmap 7.60 ( https://nmap.org ) at 2020-05-07 18:06 CEST Nmap scan report for panoramix.home.lan (192.168.1.12) Host is up (0.00029s latency). PORT STATE SERVICE VERSION 80/tcp open http Apache httpd MAC Address: 00:24:8C:3F:92:27 (Asustek Computer) Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 6.91 seconds
Gestion des listes du répertoire
grep -n 'Options Indexes FollowSymLinks' /usr/local/etc/apache24/httpd.conf 311: Options Indexes FollowSymLinks vim +311 /usr/local/etc/apache24/httpd.conf Options -Indexes +FollowSymLinks
Réduire la valeur de la directive sur le délai d'attente
grep -n 'Timeout' /usr/local/etc/apache24/extra/httpd-default.conf 8:# Timeout: The number of seconds before receives and sends time out. 10:Timeout 60 26:# KeepAliveTimeout: Number of seconds to wait for the next request from the 29:KeepAliveTimeout 5 89: RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500 vim +10 /usr/local/etc/apache24/extra/httpd-default.conf Timeout 25
La valeur de la directive Timeout doit trouver un équilibre entre une période suffisamment longue pour que ces événements permettent une connexion légitime et réussie, et suffisamment courte pour empêcher des tentatives de connexion non souhaitées.
Remarque : les attaques par déni de service peuvent drainer les ressources du serveur de manière assez efficace. Utiliser un MPM threadé pour obtenir les meilleures performances de la manière dont Apache HTTP gère les connexions et les processus constitue une contre-mesure complémentaire et très efficace. Dans ce tutoriel Comment configurer Apache HTTP avec l'événement MPM et PHP-FPM sous FreeBSD 12.0, il y a des étapes pour activer cette fonctionnalité.
Désactiver la méthode TRACE
Le Hypertext Transport Protocol a été développé selon un modèle client-serveur et, à ce titre, le protocole dispose de méthodes de requête pour récupérer ou placer des informations depuis/vers le serveur. Le serveur doit comprendre ces ensembles de méthodes et l'interaction entre elles. Dans cette étape, vous configurerez les méthodes minimales nécessaires.
La méthode TRACE, considérée comme inoffensive, a été utilisée pour réaliser des attaques de type Cross Site Tracing. Ces types d'attaques permettent à des acteurs malveillants de voler des sessions d'utilisateurs grâce à cette méthode. La méthode a été conçue à des fins de débogage. Le serveur renvoie la même requête que celle envoyée à l'origine par le client. Comme le cookie de la session du navigateur est envoyé au serveur, il sera renvoyé à nouveau. Cependant, cela peut potentiellement être intercepté par un acteur malveillant, qui peut alors rediriger la connexion d'un navigateur vers un site sous son contrôle et non vers le serveur d'origine.
En raison de la possibilité d'une utilisation abusive de la méthode TRACE, il est recommandé de ne l'utiliser que pour le débogage et non en production. Dans cette section, vous désactiverez cette méthode.
vim /usr/local/etc/apache24/httpd.conf TraceEnable off
LimitExcept peut être utile à cette fin, car il n'autorise aucune autre méthode que celles qui y sont déclarées. Par exemple, une configuration peut être établie comme celle-ci :
vim /usr/local/etc/apache24/httpd.conf <LimitExcept GET POST HEAD> deny from all </LimitExcept>
Sécuriser des en-têtes et des cookies
Le module des en-têtes est activé par défaut. Pour vérifier s'il est chargé, vous utiliserez la commande suivante :
apachectl -M | grep 'headers' headers_module (shared)
Le module est bien activé
Si vous ne voyez aucune sortie, vérifiez si le module est activé dans le fichier httpd.conf d'Apache :
grep -n 'mod_headers' /usr/local/etc/apache24/httpd.conf 145:LoadModule headers_module libexec/apache24/mod_headers.so LoadModule headers_module libexec/apache24/mod_headers.so
Supprimez le hashtag au début de la ligne mod_headers.so, s'il est présent, pour activer la directive.
