Configurer le WAF NAXSI pour NGINX et WordPress

1/52/53/54/55/5 (2 votes, moyenne: 2,00 sur 5)
Loading...
C

Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.


Bonjour à tous,

Aujourd’hui on va voir comment configurer le Web Application Firewall ou WAF NAXSI pour NGINX.

La chose importante, c’est que l’on va utiliser une branche de NAXSI qui supporte HTTP2.

On va aussi importer des règles de base pour WordPress et voir comment protéger un site.

 

Installation de NGINX et du WAF NAXSI :

Nous allons utiliser mon script de build pour installer NGINX avec le support de NAXSI : https://github.com/stylersnico/nginx-openssl-chacha-naxsi/ 

On ne va pas revoir en détail comment compiler nginx : https://www.abyssproject.net/2016/11/compiler-nginx-pourquoi-comment/

 

Téléchargez et lancez le script de build :

cd /tmp && wget --no-check-certificate https://raw.githubusercontent.com/stylersnico/nginx-openssl-chacha/master/build.sh && sh build.sh

 

Répondez N à la première question et Y à la deuxième pour installer NAXSI.

 

Ensuite, allez dans le répertoire NGINX et téléchargez les règles pour wordpress :

cd /etc/nginx
 mkdir naxsi
 mv naxsi_core.rules naxsi/
 cd naxsi && wget https://raw.githubusercontent.com/nbs-system/naxsi-rules/master/wordpress.rules

 

Ouvrez votre fichier de configuration avec la commande suivante :

nano /etc/nginx/nginx.conf

 

Et ajoutez la configuration de NAXSI dans la section HTTP :

http {
        #NAXSI
        include /etc/nginx/naxsi/naxsi_core.rules;

 

Mon nginx.conf complet est disponible ici : https://github.com/stylersnico/my-webserver/blob/master/etc/nginx/nginx.conf

 

Maintenant, ouvrez le vhost de votre site wordpress :

nano /etc/nginx/sites-enabled/abyssproject.vhost

 

Et maintenant, éditez votre section location pour ajouter les blocages de base et les règles spécifiques à WordPress :

        location / {
           try_files $uri $uri/ /index.php?$args;
           SecRulesEnabled;
           CheckRule "$SQL >= 8" BLOCK;
           CheckRule "$RFI >= 8" BLOCK;
           CheckRule "$TRAVERSAL >= 4" BLOCK;
           CheckRule "$EVADE >= 4" BLOCK;
           CheckRule "$XSS >= 8" BLOCK;
           DeniedUrl "/gfy.html"; 
           include /etc/nginx/naxsi/wordpress.rules;
        }

 

Créez un message d’erreur sympathique à la racine de votre site pour les gens qui essayerait de trouver des failles dessus et de les exploiter :

echo "Get the fuck out" > /var/www/wordpress/abyssproject.net/gfy.html

 

Validez la configuration avec nginx :

nginx -t

 

Redémarrez votre serveur web :

systemctl restart nginx

 

 

Et tentez de passer une commande louche par l’URL de votre site pour tester,merci à @Djerfy pour le screen  🙂

 

A propos de l'auteur

Nicolas Simond

Ingénieur Systèmes et Réseaux et guitariste hard rock et metal à mes heures perdues.
Je suis le créateur et l'unique rédacteur d'Abyss Project, c'est ici que je note la plupart de mes procédures et quelques divagations.

Si vous l'article vous a aidé, pensez à me payer un café :)

Subscribe
Notify of
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

14 Commentaires
Plus récents
Plus anciens Populaires
Inline Feedbacks
View all comments
Bastien
Bastien
6 années plus tôt

Bonjour,

Je suis en BTS SIO SISR et j’ai pour projet de monter un Reverse Proxy avec NGINX, mais je bloque…

On me demande de rajouter un Firewall Applicatif (donc NAXSI). Mais ayant déjà fais toute la configuration que je voulais sur NGINX je voudrais savoir si il était possible de rajouter le module NAXSI ? Ou je suis obligé de refaire une VM pour installer le pack des deux ?

Merci pour ton aide.

Cordialement.

Bastien
Bastien
Reply to  Nicolas Simond
6 années plus tôt

Oui mais ma configuration NGINX va être effacer alors non ?

Et pour l’installation et la compilation j’ai juste a suivre totalement ta procédure ?

Merci beaucoup pour ton aide.

Bastien
Bastien
Reply to  Nicolas Simond
6 années plus tôt

Je suis du genre à vouloir comprendre ce que je fais donc il n’y a pas de soucis la dessus.

Par contre le seul problème est que NGINX et NAXSI ne vont pas se mettre à jour automatiquement du coup ..?

Bastien
Bastien
Reply to  Nicolas Simond
6 années plus tôt

C’est pas trop bon ça…

Donc pour installer un Firewall Applicatif sur un Reverse Proxy, tu es obligé de compiler ?

Bastien
Bastien
Reply to  Nicolas Simond
6 années plus tôt

Même avec ModSecurity ?

Bastien
Bastien
Reply to  Nicolas Simond
6 années plus tôt

Mais attend, juste une petite chose…
Tu dois compiler NGINX aussi ? ou seulement NAXSI ?

Bastien
Bastien
Reply to  Nicolas Simond
6 années plus tôt

Mon problème serait résolu si on devait compiler uniquement NAXSI, car le principal est que NGINX se mette à jour seul…