GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

ModSecurity est un pare-feu d'application Web gratuit et open source pris en charge par différents serveurs Web tels qu'Apache, IIS et Nginx. Il est déployé en tant que couche de sécurité externe pour protéger les serveurs Web.

Dans ce didacticiel, vous apprendrez à installer le pare-feu ModSecurity avec Nginx préinstallé. Nous avons utilisé le serveur Ubuntu 20.04 pour démontrer le processus.

Pré-requis

Serveur Ubuntu 20.04 LTS

Nginx installé sur le serveur Ubuntu

Guide d'installation

Si Nginx n'est pas installé sur votre serveur, suivez ce guide pour répondre aux exigences d'installation de Modsecurity :

https://linuxways.net/ubuntu/how-to-install-nginx-on-ubuntu-20-04-lts-using-source-code/

Maintenant que vous avez installé Nginx, commençons par installer ModSecurity.

Étape 1 :Installez libmodsecurity3

Tout d'abord, installez git sur votre machine afin de pouvoir cloner le dépôt git de ModSecurity. Nous pouvons le faire en exécutant cette commande :

sudo apt install git -y

Maintenant que git est installé, clonez le dépôt en exécutant cette commande :

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

Étape 2 :Accédez au répertoire Modsecurity

Maintenant que vous avez cloné le dépôt modsecurity git, allez dans le répertoire modsecurity en suivant le chemin ci-dessous :

cd /usr/local/src/ModSecurity/

Étape 3 :Installer les dépendances de libmodsecurity3

Maintenant que nous sommes dans le répertoire Modsecurity, nous allons installer les dépendances libmodsecurity3 dans cette étape. Exécutez cette commande :

sudo apt install gcc make build-essential autoconf automake libtool libcurl4-openssl-dev liblua5.3-dev libfuzzy-dev ssdeep gettext pkg-config libpcre3 libpcre3-dev libxml2 libxml2-dev libcurl4 libgeoip-dev libyajl-dev doxygen -y

Étape 4 :Installer les modules Git

Maintenant, installez les sous-modules git à l'aide de cette commande :

git submodule init

Ensuite, nous allons mettre à jour les sous-modules :

git submodule update

Étape 5 :Créer l'environnement de sécurité mod

Il est temps de construire l'environnement modsecurity. Pour ce faire, exécutez la commande suivante :

./build.sh

Configurez maintenant à l'aide de cette commande :

./configure

Après cela, vous obtiendrez cette erreur :

Vous pouvez ignorer cela et passer à autre chose.

Étape 6 :Compiler le code source de modsecurity

Nous allons maintenant compiler l'environnement pour libmodsecurity3 avec cette commande :

make

Si vous souhaitez augmenter la vitesse de compilation, vous pouvez spécifier -j . J'ai 4 processeurs et je vais utiliser les 4 pour compiler comme indiqué ci-dessous :

make -j 4

Ensuite, nous allons exécuter la commande d'installation :

sudo make install

L'installation se fait dans le dossier /usr/local/modsecurity/ .

Step 7: Install modsecurity-nginx connector

Dans cette étape, nous allons installer le connecteur Modsecurity-nginx. C'est le point de connexion et de communication entre Nginx et ModSecurity.

Tout d'abord, nous devons cloner le référentiel de connecteurs. Faites-le en exécutant cette commande :

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

Étape 8 :Installer les dépendances modsecurity-nginx

Tout d'abord, accédez au répertoire source de Nginx comme ceci :

cd /usr/local/src/nginx/nginx-1.21.1

Assurez-vous de remplacer la version de Nginx dans la commande par votre version actuelle de Nginx, sinon vous obtiendrez une erreur.

Pour installer les dépendances nécessaires, exécutez cette commande :

sudo apt build-dep nginx && sudo apt install uuid-dev -y

Ensuite, nous allons compiler le module de connecteur Modsecurity-nginx avec l'indicateur –with-compat en exécutant cette commande :

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

Exécutez maintenant cette commande pour créer les modules dynamiques :

sudo make modules

Maintenant, copiez le module dynamique que vous venez de créer dans objs/ngx_http_modsecurity_module.so vers /usr/share/nginx/modules à l'aide de cette commande :

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

Étape 9 :Activer Modsecurity dans le fichier de configuration Nginx

Pour activer Modsecurity dans Nginx, vous devez d'abord spécifier le module de charge et le chemin d'accès à votre module de modsecurity dans la configuration.

Ouvrez le fichier de configuration Nginx avec l'éditeur nano comme ceci :

sudo nano /etc/nginx/nginx.conf

Dans le fichier, ajoutez cette ligne en haut :

load_module modules/ngx_http_modsecurity_module.so;

Sous la section HTTP {}, ajoutez les lignes de code suivantes :

modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/modsec-config.conf;

Étape 10 :Configurer le répertoire et les fichiers pour modsecurity

Créez un répertoire avec le nom modsec. Le chemin du répertoire est mentionné dans la commande :

sudo mkdir /etc/nginx/modsec/

Vous aurez besoin de ce répertoire à l'avenir pour stocker les fichiers de configuration et les règles.

Maintenant, copiez l'exemple de fichier de configuration Modsecurity à partir du répertoire git cloné avec cette commande :

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

Ouvrez maintenant le fichier de configuration de modsecurity :

sudo nano /etc/nginx/modsec/modsecurity.conf

Localisez la directive SecRuleEngine dans le fichier à la ligne 7 et remplacez-la par DetectionOnly comme ceci :

secruleEngine DetectionOnly

Pour activer Modsecurity, recherchez le changement de la directive suivante sur On comme ceci :

secRuleEngine on

Localisez maintenant la directive suivante à la ligne 224 :

secAuditLogParts ABIJDEFHZ

Changez-le en :

secAuditLogParts ABCDEFHJKZ

Créez maintenant le fichier modsec-config.conf. Ici, vous allez ajouter modsecurity.conf et d'autres règles pour modsecurity :

sudo nano /etc/nginx/modsec/modsec-config.conf

Dans le fichier que vous venez de créer, ajoutez cette ligne :

Include /etc/nginx/modsec/modsecurity.conf

Enregistrez le fichier et quittez.

Étape 11 :Copiez le fichier unicode.mapping

Enfin, copiez le fichier unicode.mapping de Modsecurity comme ceci :

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

Étape 12 :Vérifiez la configuration de Nginx

Avant de redémarrer Nginx, vérifiez si la configuration est correcte en exécutant cette commande :

sudo nginx -t

Si vous obtenez le résultat suivant, vous êtes prêt à partir :

Étape 13 :Recharger Nginx

Maintenant, redémarrez Nginx avec cette commande :

sudo systemctl restart nginx

Dans ce guide, nous avons vu comment installer Modsecurity sur un serveur Ubuntu sur lequel Nginx est déjà préinstallé. Nous avons également vu comment configurer ModSecurity et Nginx pour les connecter à l'aide de quelques commandes faciles à suivre.


Ubuntu
  1. Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

  2. Comment installer MediaWiki avec Nginx sur Ubuntu 16.04

  3. Comment installer Seafile avec Nginx sur Ubuntu 18.04 LTS

  4. Comment installer Magento avec Nginx sur Ubuntu 15.10

  5. Déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

Comment installer Nginx avec ModSecurity sur Ubuntu 15.04

Comment installer phpMyAdmin avec Nginx (LEMP) sur Ubuntu 18.04 LTS

Comment installer Nginx avec le module Ngx_Pagespeed sur Ubuntu 16.04 LTS

Comment installer Joomla avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 18.04 LTS

Comment installer phpMyAdmin avec Nginx sur Ubuntu 20.04 LTS