GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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.

Ici, à LinuxAPT, nous verrons comment installer le pare-feu ModSecurity avec Nginx préinstallé sur le serveur Ubuntu 20.04.


Étapes pour déployer Modsecurity avec Nginx sur Ubuntu 20

1. Installez Nginx sur le système

Si vous n'avez pas installé Nginx sur votre serveur, suivez ce guide pour répondre aux exigences d'installation de Modsecurity :https://linuxapt.com/blog/1276-install-nginx-on-ubuntu-20-04-lts-using- code source


2. Installez libmodsecurity3

Maintenant, installez git sur votre machine afin de pouvoir cloner le référentiel 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/


3. Allez dans le 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/


4. Installez les dépendances 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


5. Installez 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


6. Créez 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 :

fatal: No names found, cannot describe anything.


7. Compilez 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 répertoire /usr/local/modsecurity/.


8. Installez le connecteur modsecurity-nginx

Ici, 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/


9. 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 le fichier 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/


10. 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;


11. 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.


12. 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/


13. 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


14. Recharger Nginx

Maintenant, redémarrez Nginx avec cette commande :

$ sudo systemctl restart nginx



Ubuntu
  1. Comment installer Nextcloud avec Nginx sur Ubuntu 18.04 LTS

  2. Comment installer Seafile avec Nginx sur Ubuntu 20.04 LTS

  3. Comment installer Varnish Reverse Proxy avec Nginx sur Ubuntu 16.04 LTS

  4. Comment installer Seafile avec Nginx sur Ubuntu 18.04 LTS

  5. Comment déployer Modsecurity avec Nginx sur Ubuntu 20.04 LTS

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

Comment déployer l'application Laravel avec Nginx sur Ubuntu ?