Changer le nom d’en-tête d’un serveur Apache et sécuriser votre serveur web.

En voilà une drôle d’idée. Ce petit hack va vous permettre de sécuriser votre serveur web. En effet des petits malins scan en permanence le web à la recherche de serveurs à pirater. Avec ce hack ceux qui tomberont sur le vôtre vont faire une drôle de tête.

Il existe de nombreux sites web, scripts à utiliser pour déterminer le type de serveur web (apache, IIS, Nginx, Litespeed, ..) ainsi que leurs versions. Cela permet d’adapter et de préparer son attaque ou de rechercher des failles. Mais si ces scripts retournent un nom fantaisiste ou erroné la tâche du hacker sera plus rude. Démonstration.

CentralOps est un site web qui permet de tester beaucoup de choses sur un serveur. Notamment les ports ouverts. Donc passons notre serveur de test à la moulinette.

Vous pouvez accéder au site via cette URL : http://centralops.net/co/DomainDossier.aspx

CentralOPS test d'un serveur web

L’utilisation est très simple, saisissez votre adresse ip (1), sélectionner Service Scan (2), puis cliquer sur GO (3). Au bout de quelques secondes vous avez des informations sur les principaux services d’un serveur web , pop, smtp, ftp, …

CentralOPS résultats test serveur web

Nous voyons ici que le serveur web est un serveur apache V2.2.15 tournant sous CentOS. Juste avec ces infos un hackeur peut préparer et adapter son attaque en fonction des failles de la version et de l’OS. Il faut donc sécuriser votre serveur web.

Voyons maintenant comme modifier l’en-tête d’un serveur Apache en utilisant le module ModSecurity.

  • Etape 1 : Posséder un serveur LAMP sous CentOS (Avec les autres versions cela fonctionnent, juste l’emplacement des fichiers peuvent changer).
  • Etape 2: Installer le module ModSecurity.
    Pour installer ce module vous devez préalablement installer des dépendances.
#yum install gcc make
#yum install libxml2 libxml2-devel httpd-devel pcre-devel curl-devel

installation des dépendances pour le module Mod_Security

Ensuite on télécharge la dernière version du module Mod_Security à cette adresse : http://www.modsecurity.org/download/. Actuellement (01/05/2018), nous en sommes à la version V3.0, ce tutoriel se base sur la version V2.7.7

#cd /temp
#wget https://www.modsecurity.org/tarball/2.7.7/modsecurity-apache_2.7.7.tar.gz

téléchargement de la dernière version de Mod_Security

Ensuite on procède à l’extraction et à la compilation du module.

# tar xzf modsecurity-apache_2.7.7.tar.gz

extraction du module mod_security

#cd modsecurity-apache_2.7.7
#./configure

compilation du module mod_security

#make install

instalaltion du module mod_security

Une fois votre module installé, copier le fichier modsecurity.conf-recommended dans le répertoire de configuration de votre serveur Apache.

#cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf

copier le module mod_security dans le répertoire du serveur apache

Maintenant vous devez charger ce nouveau module dans la configuration Apache de votre serveur. Pour cela il suffit d’éditer le fichier httpd.conf (/etc/httpd/conf/) et de rajouter la ligne suivante :

#LoadModule security2_module modules/mod_security2.so

charger le module mod_security dans apache

  • Etape 3 : Installer le module OWASP CRS
Attention!!! Ne redémarrer pas votre serveur Apache sans avoir installé ce module.

Nous allons utiliser l’utilitaire git pour télécharger la dernière version du module OWASP CRS. Par défaut il n’est pas installé sous CentOS. Vous pouvez le faire via la commande : yum install git-core.

Avant d’installer le module, vous devez aller dans le répertoire /etc/httpd/. Ensuite utiliser la commande git pour télécharger OWASP CRS.

# git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

utiliser git pour télécharger le module OWASP CRS

Ensuite renommer le répertoire comme indiqué ci-dessous :

# mv owasp-modsecurity-crs modsecurity-crs

renommer le module OWASP CRS

Ensuite créer un fichier de configuration en utilisant le fichier de configuration existant :

# cp modsecurity_crs_10_setup.conf.example modsecurity_crs_10_config.conf

créer un nouveau fichier de configuration du module OWASP CRS

Enfin éditer le fichier /etc/httpd/conf/httpd.conf. Aller à la fin du fichier et ajouter ces lignes :

<IfModule security2_module>
 Include modsecurity-crs/modsecurity_crs_10_config.conf
 Include modsecurity-crs/base_rules/*.conf
</IfModule>

ajout du module mod_security dans la configuration de apache

Vous pouvez maintenant redémarrer Apache :

#service httpd restart
Attention!!! Si vous avez cette erreur : Starting httpd: Syntax error on line 212 of /etc/httpd/conf.d/modsecurity.conf: Could not open unicode map file « /etc/httpd/conf.d/unicode.mapping »: No such file or directory. Il suffit de copier le fichier unicode.mapping qui se trouve dans votre répertoire d’installation dans le répertoire « /etc/httpd/conf.d/unicode.mapping »

erreur fichier unicode.mapping avec mod_security

Le module OWASP CRS vous permet de :

  • de détecter les violations du protocole http.
  • définir en temps réel une blacklist d’IP en fonction de leur réputation.
  • d’identifier le contenu web malveillant.
  • d’identifier les erreurs de configuration des applications.
  • de se protéger contre les attaques de déni de service (DOS).
  • d’automatiser la détection des bots, robots, scanners et autre scripts malveillants.
  • de détecter la présence de cheval de Troie.
  • de vérifier les fichiers uploader.
  • de cacher ou modifier les erreurs renvoyées par le serveur.

En ce qui nous concerne dans ce tutoriel, nous voulons changer la signature du serveur web Apache. Maintenant nous avons tous les modules nécessaires d’installés.

Editer le fichier modsecurity_crs_10_config.conf et ajouter la ligne suivante à la fin de la section Rule Version.

#vim /etc/httpd/modsecurity-crs/modsecurity_crs_10_config.conf
#SecServerSignature votre_nom

Changer votre_nom par ce qui vous plait, par exemple (attention à ne pas mettre trop long comme nom sinon la chaine ne sera pas prise en compte).

Modification SecServerSignature du fichier de configuration de Mod_Security

Enfin redémarrer le serveur apache. Et connectez-vous sur le site CentralOps pour vérifier si la signature de votre serveur web a bien changé.

test du serveur avec le nouveau fichier de configuration Mod_Security

Même si cette protection ne fera pas reculer les plus pro des hackers, ils peuvent savoir quel logiciel vous utiliser pour votre serveur web avec d’autres méthodes notamment en générant une page d’erreur. Ce module permet de sécuriser votre site web lorsqu’on joue un peu avec les différentes options. Ce module est largement utilisé chez les hébergeurs.

That’s All.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *