Table des matières

Sécuriser Apache


Services Réseaux

Renforcer Apache HTTP sous FreeBSD 12.0

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.

Vérifier les niveaux de sécurité de vos paramètres de configuration


https://securityheaders.com/




Services Réseaux