GNU/Linux >> Tutoriels Linux >  >> Linux

Sécuriser votre serveur Web Apache avec Mod Security

ModSecurity, également connu sous le nom de Modsec, est un pare-feu d'application Web gratuit et open source pour le serveur Web Apache. ModSecurity est un module Apache qui vous aide à protéger votre serveur Web contre différents types d'attaques, notamment l'injection SQL, XSS, les chevaux de Troie, les bots, la capture/le piratage de session, et bien d'autres. ModSecurity fournit des ensembles de règles puissants avec une surveillance Web en temps réel, une journalisation et un contrôle d'accès.

Dans ce tutoriel, nous allons vous montrer comment installer et configurer Mod Security avec Apache sur Ubuntu 18.04.

Prérequis

  • Un nouveau VPS Ubuntu 18.04 sur la plate-forme cloud Atlantic.Net.
  • Une adresse IP statique configurée sur votre serveur.

Étape 1 - Créer un serveur cloud Atlantic.Net

Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 18.04 comme système d'exploitation avec au moins 2 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.

Une fois que vous êtes connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.

apt-get update -y

Étape 2 - Installer la pile LAMP

Tout d'abord, vous devrez installer LAMP Stack sur votre serveur. Vous pouvez l'installer en exécutant la commande suivante :

apt-get install apache2 mariadb-server php7.2-mysql php7.2 libapache2-mod-php7.2 unzip git -y

Après avoir installé LAMP, démarrez le service Apache et activez-le après le redémarrage du système avec la commande suivante :

systemctl start apache2
systemctl enable apache2

À ce stade, le serveur Web Apache est installé et fonctionne sur votre serveur.

Étape 3 - Installer ModSecurity

apt-get install libapache2-mod-security2 -y

Une fois l'installation terminée, redémarrez le service Apache pour appliquer les modifications.

systemctl restart apache2

Ensuite, vous pouvez également vérifier si le module a été chargé ou non en exécutant la commande suivante :

apachectl -M | grep security

Vous devriez obtenir le résultat suivant :

security2_module (shared)

Étape 4 - Configurer ModSecurity

Il n'y a pas de règles de sécurité configurées par défaut, vous devrez donc d'abord l'activer. Pour ce faire, renommez le fichier de configuration par défaut de ModSecurity /etc/modsecurity/modsecurity.conf-recommended en /etc/modsecurity/modsecurity.conf.

cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Modifiez ensuite le fichier à l'aide de votre éditeur de texte préféré :

nano /etc/modsecurity/modsecurity.conf

Recherchez la ligne suivante :

SecRuleEngine DetectionOnly

Remplacez-le par ce qui suit :

SecRuleEngine On

Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le service Apache pour que les modifications prennent effet.

systemctl restart apache2

Étape 5 - Télécharger et configurer la règle de base ModSecurity

L'ensemble de règles par défaut de ModSecurity est disponible dans le répertoire /usr/share/modsecurity-crs, mais il est recommandé de télécharger un nouvel ensemble de règles à partir du GitHub.

Tout d'abord, supprimez les anciennes règles avec la commande suivante :

rm -rf /usr/share/modsecurity-crs

Ensuite, téléchargez le dernier jeu de règles avec la commande suivante :

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

Ensuite, vous devrez activer cet ensemble de règles dans la configuration apache. Vous pouvez l'activer en éditant le fichier /etc/apache2/mods-enabled/security2.conf :

nano /etc/apache2/mods-enabled/security2.conf

Ajoutez les lignes suivantes au-dessus de la ligne ""

     IncludeOptional "/usr/share/modsecurity-crs/*.conf
     IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf

Enregistrez et fermez le fichier. Ensuite, redémarrez le service Apache et activez le module d'en-tête Apache pour implémenter les modifications.

a2enmod headers
systemctl restart apache2

À ce stade, ModSecurity est configuré pour fonctionner avec le serveur Web Apache.

Étape 6 - Testez ModSecurity

Après avoir configuré ModSecurity, vous pouvez essayer d'exécuter des scripts malveillants sur un navigateur Web et vérifier si les règles ModSecurity seront déclenchées.

Ouvrez votre navigateur Web et saisissez l'URL http://your-server-ip/index.html?exec=/bin/bash . Vous devriez recevoir un message d'erreur interdit dans la page suivante :

Pour tester les règles de protection de ModSecurity contre une attaque XSS simulée, accédez à l'URL http://your-server-ip/?q=”> à partir de votre navigateur Web. Vous devriez voir l'écran suivant :

Pour tester les règles de ModSecurity par rapport aux scans Nessus, utilisez une commande curl avec les scanners Nessus pour envoyer des requêtes HTTP au serveur Apache comme indiqué ci-dessous :

curl -i http://your-server-ip -A Nessus

Vous devriez obtenir une réponse 403 Interdit car ModSecurity a identifié l'agent utilisateur comme un scan Nessus :

HTTP/1.1 403 Forbidden
Date: Sat, 21 Dec 2019 04:17:24 GMT
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 278
Content-Type: text/html; charset=iso-8859-1

Étape 7 - Exclure un domaine spécifique de ModSecurity

Dans certains cas, vous devez exclure un domaine spécifique de la protection ModSecurity. Pour désactiver ModSecurity pour un domaine spécifique, ouvrez le fichier de configuration de l'hôte virtuel Apache pour un domaine spécifique :

nano /etc/apache2/site-enabled/your-domain.conf

Ajoutez les lignes suivantes dans le bloc  :

<IfModule security2_module>
    SecRuleEngine Off
</IfModule>

Enregistrez et fermez le fichier. Ensuite, redémarrez le service Apache pour appliquer les modifications.

systemctl restart apache2

Conclusion

Nous avons examiné comment installer et configurer ModSecurity pour protéger votre serveur Web Apache des attaques malveillantes. Pour plus d'informations, consultez la documentation de ModSecurity sur ModSecurity.


Linux
  1. Comment configurer un serveur Web Apache

  2. Analysez votre sécurité Linux avec Lynis

  3. 7 étapes pour sécuriser votre serveur Linux

  4. Comment configurer plusieurs sites Web avec le serveur Web Apache

  5. Comment installer la sécurité des mods sur Centos 7.x avec apache ?

Qu'est-ce qu'Apache ? Un aperçu détaillé du serveur Web Apache

Vulnérabilité HTTPOXY :comment protéger et tester votre serveur Web

Sécuriser votre serveur de messagerie géré par ISPConfig 3 avec un certificat SSL Lets Encrypt valide

Meilleures pratiques pour sécuriser votre serveur Web Apache

Comment :sécuriser votre serveur Ubuntu ou Debian avec IPTables

Comment évaluer les performances d'un serveur Web avec Apache Bench