C’est le désir de chaque développeur de déployer des applications Web sécurisées qui sont à l’abri des menaces. Dans la plupart des cas, c’est facile à dire qu’à faire. La fréquence des sites Web piratés ne cesse d’augmenter, car les pirates continuent d’exploiter tous les vecteurs d’attaque à leur disposition.

La sécurité des applications Web peut être un énorme défi, en particulier avec la prévalence d’outils malveillants tels que les rootkits, les scanners, les bots et autres logiciels malveillants. Bien qu’une brèche puisse sembler une question de quand sinon si, il est prudent de mettre en œuvre des mesures de sécurité décentes pour protéger vos applications Web.

[ You might also like: 5 Tools to Scan a Linux Server for Malware and Rootkits ]

L’un des outils qui peuvent fournir un niveau de sécurité décent contre les attaques s’appelle ModSécurité. Ceci est un logiciel libre et open source Firewall d’applications Web (WAF) qui protège vos applications Web contre une vaste gamme d’attaques de couche 7 telles que les scripts intersites (XSS), SQL injection, détournement de session, et bien d’autres.

Dans ce guide, nous allons vous montrer comment installer et configurer ModSécurité travailler avec Nginx au Distributions Linux basées sur Debian tel que Ubuntu.

Publicité

Étape 1 : Installer les dépendances

Pour commencer l’installation, un certain nombre de dépendances logicielles sont nécessaires pour que l’installation réussisse. Mais d’abord, mettez à jour les listes de packages et actualisez les référentiels comme suit.

$ sudo apt update

Ensuite, installez les dépendances comme suit.

$ sudo apt install make gcc build-essential autoconf automake libtool libfuzzy-dev ssdeep gettext pkg-config libcurl4-openssl-dev liblua5.3-dev libpcre3 libpcre3-dev libxml2 libxml2-dev libyajl-dev doxygen libcurl4 libgeoip-dev libssl-dev zlib1g-dev libxslt-dev liblmdb-dev libpcre++-dev libgd-dev

Étape 2: Installez la dernière version de Nginx

La prochaine étape consistera à installer le Nginx navigateur Internet. Pour installer la dernière version, nous allons l’installer à partir du ondrej/nginx-mainline PPA w qui est actuellement maintenu par un développeur Debian depuis 2000.

Pour ajouter le PPA à votre local Ubuntu système exécuter la commande :

$ sudo add-apt-repository ppa:ondrej/nginx-mainline -y

Ensuite, mettez à jour les listes de packages et installez la dernière version de Nginx comme suit

$ sudo apt update
$ sudo apt install nginx-core nginx-common nginx nginx-full

En règle générale, seul le référentiel par défaut est activé. Il est prudent d’activer le référentiel de code source afin de pouvoir, plus tard, télécharger le Nginx code source à l’étape suivante.

Pour y parvenir, modifiez le Nginx fichier référentiel.

$ sudo vim /etc/apt/sources.list.d/ondrej-ubuntu-nginx-mainline-*.list

Recherchez et décommentez cette ligne pour activer le référentiel de code source :

# deb-src http://ppa.launchpad.net/ondrej/nginx-mainline/ubuntu/ focal main

Le fichier devrait maintenant apparaître comme indiqué.

Activer Ondřej Ppa
Activer Ondřej Ppa
Activer Ondřej Ppa

Enregistrez les modifications et quittez.

Mettez ensuite à jour l’index du package.

$ sudo apt update

Étape 3: Télécharger le package source Nginx

Pour compiler le ModSécurité module dynamique, nous devons télécharger le Nginx paquet de code source. Pour ce faire, nous allons, dans un premier temps, créer un Nginx répertoire dans le /usr/local/src/ chemin pour accueillir le fichier de package de code source Nginx.

$ sudo mkdir -p /usr/local/src/nginx 

Ensuite, attribuez les autorisations de répertoire comme indiqué. Assurez-vous de remplacer le nom d’utilisateur par votre nom d’utilisateur sudo réel.

$ sudo chown username:username -R /usr/local/src/

Par la suite, naviguez dans le Nginx répertoire source :

$ cd /usr/local/src/nginx 

Continuez et téléchargez le Nginx paquets de fichiers sources :

$ sudo apt source nginx
Télécharger La Source Nginx
Télécharger La Source Nginx
Télécharger La Source Nginx

Vous obtiendrez probablement l’erreur suivante :

W: Download is performed unsandboxed as root as file 'nginx_1.19.5.orig.tar.gz' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)

Ce n’est rien pour vous énerver. Donc, ignorez simplement l’erreur.

Vous pouvez jeter un coup d’œil au fichier source en utilisant le commande ls.

$ ls -l
Répertorier Les Fichiers Sources Nginx
Répertorier Les Fichiers Sources Nginx
Répertorier Les Fichiers Sources Nginx

Assurez-vous que la version du code source coïncide avec la version de Nginx installée.

$ nginx -v
Vérifier La Version Nginx
Vérifier La Version Nginx
Vérifier La Version Nginx

Étape 4 : Installez la bibliothèque Libmodsecurity3

Libmodesécurité est un Modsécurité bibliothèque qui gère HTTP filtrage pour vos applications. Il y a deux façons de l’installer. Vous pouvez utiliser le gestionnaire de paquets apt comme montré

$ sudo apt install libmodsecurity3

L’autre approche consiste à l’installer à partir d’une source, ce qui est préférable puisqu’elle vous fournit la dernière version. Pour démarrer l’installation de Libmodsecurity à partir de la source, clonez le référentiel git comme indiqué :

$ git clone --depth 1 -b v3/master --single-branch https://github.com/SpiderLabs/ModSecurity /usr/local/src/ModSecurity/

Accédez au répertoire cloné :

$ cd /usr/local/src/ModSecurity/

Faire un point pour installer les sous-modules

$ sudo git submodule init
$ sudo git submodule update
Installer Libmodsecurity3 Dans Ubuntu
Installer Libmodsecurity3 Dans Ubuntu
Installer Libmodsecurity3 Dans Ubuntu

Ensuite, créez l’environnement à l’aide des commandes ci-dessous.

$ sudo ./build.sh 
$ sudo ./configure

Encore une fois, ignorez l’erreur affichée ci-dessous.

fatal: No names found, cannot describe anything.

Compilez ensuite le code source et installez d’autres utilitaires à l’aide de la commande make suivante. Cela prend environ 25 minutes, et un peu de patience est nécessaire.

$ sudo make -j4

Une fois terminé, installez les bibliothèques.

$ sudo make install

Étape 5 : Téléchargez et compilez ModSecurity v3 Nginx Connector

L’étape suivante consiste à télécharger et à compiler le ModSécurité Nginx connecteur. Le connecteur, comme son nom l’indique, relie le Libmodsecurity bibliothèque sur le serveur Web Nginx. Pour télécharger le connecteur Modsecurity, clonez-le à partir du référentiel GitHub comme suit.

$ git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git /usr/local/src/ModSecurity-nginx/

Accédez au répertoire cloné.

$ cd /usr/local/src/nginx/nginx-1.21.3/

Continuer et installer les dépendances de build

$ sudo apt build-dep nginx
$ sudo apt install uuid-dev

Ensuite, compilez le Connecteur ModSecurity Nginx module avec le --with-compat drapeau. Les --with-compat L’option rend le module ModSecurity Nginx Connector binairement compatible avec la bibliothèque Nginx actuelle.

$ sudo ./configure --with-compat --add-dynamic-module=/usr/local/src/ModSecurity-nginx

Une fois cela fait, créez le module ModSecurity Nginx Connector à l’aide de la commande make.

$ sudo make modules

Le module est enregistré sous objs/ngx_http_modsecurity_module.so. Vous devez copier ce module dans le /usr/share/nginx/modules/ répertoire comme suit.

$ sudo cp objs/ngx_http_modsecurity_module.so /usr/share/nginx/modules/

Étape 6 : chargez le module de connecteur ModSecurity Nginx

Pour charger le Nginx module de connexion, Tout d’abord, accédez au fichier de configuration principal de Nginx.

$ sudo vim /etc/nginx/nginx.conf

Ajoutez la ligne suivante juste en dessous des premières lignes

load_module modules/ngx_http_modsecurity_module.so;

De plus, ajoutez les lignes suivantes dans le http {...} section. Cela active ModSecurity pour tous les hôtes virtuels Nginx.

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
Activer Mod_Security Pour Les Vhosts Nginx
Activer Mod_Security Pour Les Vhosts Nginx
Activer Mod_Security Pour Les Vhosts Nginx

Enregistrez les modifications et quittez le fichier.

Ensuite, créez le /etc/nginx/modsec/ répertoire qui stockera ModSécurité configuration.

$ sudo mkdir /etc/nginx/modsec/

Ensuite, copiez le fichier de configuration ModSecurity comme suit.

$ sudo cp /usr/local/src/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsec/modsecurity.conf

Ouvrez ensuite le fichier de configuration.

$ sudo vim /etc/nginx/modsec/modsecurity.conf

Repérez la ligne commençant par le MoteurSecRule directif.

SecRuleEngine DetectionOnly

Cette ligne indique ModSécurité pour enregistrer uniquement les transactions HTTP, mais ne prend aucune mesure face à une attaque d’application Web. Vous devez modifier cela pour que Modsecurity non seulement détecte mais bloque également les attaques Web.

Remplacez la ligne par la ligne ci-dessous

SecRuleEngine On
Activer Les Règles Mod_Security
Activer Les Règles Mod_Security
Activer Les Règles Mod_Security

Enregistrez les modifications et quittez le fichier.

Ensuite, créez le /etc/nginx/modsec/main.conf déposer.

$ sudo vim  /etc/nginx/modsec/main.conf

Ajoutez cette ligne pour faire référence au /etc/nginx/modsec/modsecurity.conf fichier de configuration.

Include /etc/nginx/modsec/modsecurity.conf

Enregistrez les modifications et quittez le fichier.

En outre, copiez le fichier de mappage Unicode.

$ sudo cp /usr/local/src/ModSecurity/unicode.mapping /etc/nginx/modsec/

Testez ensuite la configuration de Nginx.

$ sudo nginx -t
Tester La Configuration Nginx
Tester La Configuration Nginx
Tester La Configuration Nginx

Le test devrait être réussi. Sinon, revenez en arrière et vérifiez si toutes les modifications apportées sont correctes.

Puis enfin, redémarrez Nginx pour appliquer toutes les modifications apportées.

$ sudo systemctl restart nginx

Et vérifiez que Nginx fonctionne comme prévu.

$ sudo systemctl status nginx

Étape 7 : Télécharger le jeu de corérules OWASP

Pour ModSécurité pour protéger vos applications web, vous devez spécifier des règles qui vont détecter les activités suspectes et les bloquer. Pour commencer, il est préférable d’installer des ensembles de règles existants qui vous aideront à apprendre les ficelles du métier.

Les Ensemble de règles de base OWASP (SCR) est un ensemble de règles gratuit, open source et géré par la communauté qui fournit des règles pour éloigner les vecteurs d’attaque courants tels que l’injection SQL, les scripts intersites (XSS).

Téléchargez l’ensemble de règles de base OWASP à partir de Github comme indiqué à l’aide du commande wget.

$ wget https://github.com/coreruleset/coreruleset/archive/v3.3.0.tar.gz

Extrayez le fichier compressé.

$ tar xvf v3.3.0.tar.gz

Assurez-vous de déplacer le répertoire non compressé vers le /etc/nginx/modsec/ chemin.

$ sudo mv coreruleset-3.3.0/ /etc/nginx/modsec/

Puis renommez le crs-setup.conf.exemple fichier à crs-setup.conf.

$ sudo mv /etc/nginx/modsec/coreruleset-3.3.0/crs-setup.conf.example /etc/nginx/modsec/coreruleset-3.3.0/crs-setup.conf

Encore une fois, retournez au ModSécurité fichier de configuration.

$ sudo vim /etc/nginx/modsec/main.conf

Et ajoutez les lignes suivantes.

Include /etc/nginx/modsec/coreruleset-3.3.0/crs-setup.conf
Include /etc/nginx/modsec/coreruleset-3.3.0/rules/*.conf

Le fichier doit maintenant avoir 3 lignes :

Configurer Les Règles Modsecurity
Configurer Les Règles Modsecurity
Configurer Les Règles Modsecurity

Enregistrez le fichier et, encore une fois, redémarrez Nginx.

$ sudo systemctl restart nginx

Étape 8 : Tester ModSecurity

Enfin, nous allons faire un test ModSécurité et confirmez qu’il peut détecter et bloquer le trafic HTTP suspect.

Nous allons éditer le fichier de configuration ModSecurity et créer une règle de blocage qui bloquera l’accès à une certaine URL lorsqu’elle est accessible par un navigateur Web.

$ sudo vim /etc/nginx/modsec/modsecurity.conf

Ajoutez cette ligne juste en dessous du SecRuleEngine activé directif

SecRule ARGS:testparam "@contains test" "id:254,deny,status:403,msg:'Test Successful'"

Vous pouvez définir le ‘identifiant’ et ‘msg’ balises à vos valeurs préférées.

Tester Les Règles De Sécurité De Mod
Tester Les Règles De Sécurité De Mod
Tester Les Règles De Sécurité De Mod

Enregistrez les modifications et redémarrez Nginx.

$ sudo systemctl restart nginx

Lancez maintenant votre navigateur et visitez l’URL ci-dessous avec le ?testparam=test suffixe

http://server-ip/?testparam=test

Vous devriez obtenir un 403 ‘Interdit’ Erreur. Cela indique que vous essayez d’accéder à une ressource interdite sur le serveur Web.

Erreur Interdite Nginx 403
Erreur Interdite Nginx 403
Erreur Interdite Nginx 403

De plus, vous pouvez vérifier les journaux d’erreurs Nginx pour confirmer que le client a été bloqué

$ cat /var/log/nginx/error.log | grep "Test Successful"
Vérifiez Nginx Modsecurity Block
Vérifiez Nginx Modsecurity Block
Vérifiez Nginx Modsecurity Block

[ You might also like: How to Set Up ModSecurity with Apache on Debian/Ubuntu ]

C’était un aperçu de la façon dont vous pouvez configurer Modsécurité avec Nginx au Debian et Ubuntu. Nous espérons que cela a été bénéfique.

.

Rate this post
Publicité
Article précédentTest de l’AMD Radeon RX 6600
Article suivantQu’est-ce qu’une extension de fichier AAE, comment l’ouvrir
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici