Jack Wallen vous guide tout au long du processus manuel d’installation de ModSecurity pour NGINX sur Ubuntu Server 20.04.

Concept de cybersécurité

Image: iStock / sdecoret

ModSecurity est le pare-feu d’application Web le plus utilisé et le plus respecté pour les serveurs Web open source. Il peut être utilisé avec Apache et NGINX pour fournir une protection contre une gamme d’attaques HTTP (par ex. Injections SQL et Script intersite) contre des applications Web telles que WordPress et Nextcloud. En d’autres termes, ce module doit être considéré comme un incontournable.

ModSecurity ne peut pas être activé avec une instance de NGINX installée avec apt-get. Vous devez donc le faire manuellement. Je souhaite vous guider tout au long du processus d’ajout de cette fonction de sécurité à vos serveurs Web NGINX.

VOIR: Politique de protection contre le vol d’identité (TechRepublic Premium)

Ce dont tu auras besoin

  • Une instance en cours d’exécution d’Ubuntu Server
  • Un utilisateur avec des autorisations sudo

Comment installer les dépendances requises

La première chose à faire est d’installer les dépendances requises. Cela peut être fait avec la seule commande:

sudo apt-get install -y git build-essential libpcre3 libpcre3-dev libssl-dev libtool autoconf apache2-dev libxml2-dev libcurl4-openssl-dev automake pkgconf zlib1g-dev -y

Si vous avez déjà installé NGINX (à partir des référentiels par défaut), supprimez-le à l’aide de la commande suivante:

sudo apt-get purge nginx -y

Supprimez toutes les dépendances restantes avec la commande suivante:

sudo apt-get autoremove -y

Une fois que cela est fait, nous pouvons passer à ModSecurity.

Comment compiler ModSecurity

Nous devons compiler ModSecurity manuellement. Tout d’abord, accédez au répertoire src avec la commande suivante:

cd /usr/src

Puis clonez la dernière version de ModSecurity à l’aide de la commande suivante:

git clone -b nginx_refactoring https://github.com/SpiderLabs/ModSecurity.git

Accédez au répertoire nouvellement créé avec la commande suivante:

cd ModSecurity

Configurez ModSecurity à l’aide du script Autogen comme suit:

./autogen.sh./configure --enable-standalone-module --disable-mlogc

Créez et installez ModSecurity à l’aide des commandes suivantes:

make
sudo make install

Comment compiler NGINX

Malheureusement, nous ne pouvons pas utiliser l’installation NGINX dans les référentiels standard car elle doit être compilée avec le support NGINX. Revenez au répertoire src avec la commande suivante:

cd /usr/src

Téléchargez le dernière version de NGINX;; Actuellement, il s’agit de la version 1.18.0 mais assurez-vous de vérifier la dernière version et de modifier la commande en conséquence. La commande pour télécharger la source est:

wget http://nginx.org/download/nginx-1.18.0.tar.gz

Extrayez le fichier compressé avec la commande suivante:

tar xvzf nginx-1.18.0.tar.gz

Accédez au répertoire nouvellement créé avec la commande suivante:

cd nginx-1.18.0

Configurez NGINX avec la prise en charge de ModSecurity avec la commande suivante:

​./configure --user=www-data --group=www-data --add-module=/usr/src/ModSecurity/nginx/modsecurity --with-http_ssl_module

Enfin, construisez et installez NGINX à l’aide des commandes suivantes:

make
​sudo make install

Comment configurer NGINX

Nous devons maintenant modifier le fichier de configuration NGINX par défaut afin qu’il sache quel utilisateur l’exécuter comme avec la commande suivante:

sed -i "s/#user nobody;/user www-data www-data;/" /usr/local/nginx/conf/nginx.conf

Ensuite, nous devons configurer NGINX pour que ModSecurity puisse être utilisé. Ouvrez le fichier de configuration NGINX avec la commande suivante:

sudo nano /usr/local/nginx/conf/nginx.conf

Dans ce fichier, remplacez la section suivante:

location / {

    root   html;

    index  index.html index.htm;

}

Avec:

location / {

    ModSecurityEnabled on;

    ModSecurityConfig modsec_includes.conf;

    root   html;

    index  index.html index.htm;

}

Activez les règles OWASP principales en créant un fichier de règles avec la commande suivante:

sudo nano /usr/local/nginx/conf/modsec_includes.conf

Dans ce fichier, collez ce qui suit:

include modsecurity.conf
include owasp-modsecurity-crs/crs-setup.conf
include owasp-modsecurity-crs/rules/*.conf

Enregistrez et fermez le fichier.

Importez les fichiers de configuration ModSecurity requis à l’aide des deux commandes suivantes:

sudo cp /usr/src/ModSecurity/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
sudo cp /usr/src/ModSecurity/unicode.mapping /usr/local/nginx/conf/

Activez l’option SecRuleEngine dans le fichier modsecurity.conf en entrant la commande suivante:

sudo sed -i "s/SecRuleEngine DetectionOnly/SecRuleEngine On/" /usr/local/nginx/conf/modsecurity.conf

Nous pouvons maintenant ajouter l’ensemble de règles de base OWASP ModSecurity en émettant les sept commandes suivantes:

cd /usr/local/nginx/conf
sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git
sudo cd owasp-modsecurity-crs
sudo mv crs-setup.conf.example crs-setup.conf
sudo cd rules
sudo mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
sudo mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.example RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf

Comment créer un fichier de démarrage systemd pour NGINX

Pour que nous puissions contrôler NGINX, nous devons créer un fichier de démarrage systemd. Créez le fichier avec la commande:

sudo nano /lib/systemd/system/nginx.service

Ajoutez ce qui suit au fichier:

[Service]

Type=forking

ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

ExecReload=/usr/local/nginx/sbin/nginx -s reload

KillStop=/usr/local/nginx/sbin/nginx -s stop

KillMode=process

Restart=on-failure

RestartSec=42s

PrivateTmp=true

LimitNOFILE=200000

[Install]

WantedBy=multi-user.target

Enregistrez et fermez le fichier.

Démarrez NGINX avec la commande suivante:

sudo systemctl start nginx

Activez le serveur Web pour qu’il démarre au démarrage avec la commande suivante:

sudo systemctl enable nginx

Comment tester ModSecurity

Nous pouvons enfin tester notre configuration ModSecurity. Pour ce faire, nous allons utiliser queue Suivez le journal des erreurs NGINX avec la commande suivante:

sudo tail -f /usr/local/nginx/logs/error.log

Pour ce faire, ouvrez un navigateur Web et pointez sur: http: // SERVEUR /? param = « >

Où SERVER est l’adresse IP ou le domaine de votre serveur NGINX. De retour dans la commande tail, vous devriez voir un certain nombre d’erreurs auxquelles l’autorisation a été refusée (Graphique A.).

Graphique A.

modseca.jpg

Le fichier journal NGINX nous montre que ModSecurity fonctionne.

Félicitations, ModSecurity fonctionne maintenant sur la dernière version de NGINX sur Ubuntu Server 20.04.

Abonnez-vous à TechRepublics Comment faire fonctionner la technologie sur YouTube Trouvez les derniers conseils techniques pour les professionnels de Jack Wallen.

Voir également



Source link

Recent Posts