Le serveur Web Nginx est utilisé sur plus de 30 % de site Web dans le monde entier et en croissance.

Compte tenu de l'augmentation des menaces Web en ligne, l'un des défis pour l'ingénieur Web est de bien durcissement et sécurisation de Nginx.

part de marché nginx

Nginx est bien connu pour ses performances et son serveur / proxy Web léger et utilisé sur de nombreux sites les plus fréquentés.

  • Pinterest.com
  • Reddit.com
  • wordpress.com
  • Stackoverflow.com
  • Mail.ru

Si vous hébergez vos applications Web sur Nginx et que vous êtes préoccupé par la sécurité, l'une des premières choses que vous souhaitez mettre en œuvre est Pare-feu d'applications Web (WAF).

Mod Security est un WAF Open Source de Trustwave SpiderLabs et a été rendu disponible pour Nginx en 2012.

Dans ce guide, je vais vous expliquer comment Télécharger, installer et configurer Mod Security avec Nginx.

La démonstration suivante est effectuée sur CentOS hébergé avec DigitalOcean.

Si vous êtes nouveau sur Nginx, je vous recommanderais de prendre ceci cours fondamental.

Download Nginx and ModSecurity

Vous pouvez soit télécharger le nginx directement sur votre serveur, soit sur votre PC local puis le transférer.

  • Téléchargez la dernière version à partir du lien ci-dessous

http://nginx.org/en/download.html

  • Si vous téléchargez directement sur le serveur, vous pouvez utiliser wget comme ci-dessous
wget http://nginx.org/download/nginx-1.9.15.tar.gz
  • Extrayez-les en utilisant la commande gunzip
gunzip -c nginx-1.9.15.tar.gz | tar xvf -
  • Vous verrez le nouveau dossier créé
drwxr-xr-x 8 1001 1001 4096 19 avril 12:02 nginx-1.9.15
  • Téléchargez la dernière version de Mod Security à partir du lien ci-dessous

https://www.modsecurity.org/download.html

  • Vous pouvez utiliser les commandes ci-dessous à partir du serveur directement
wget https://www.modsecurity.org/tarball/2.9.1/modsecurity-2.9.1.tar.gz
gunzip -c modsecurity-2.9.1.tar.gz | tar xvf -

Faisons les installer

Install Nginx with Mod Security

Il est important de compiler le code source de sécurité Nginx et mod.

  • Connectez-vous à un serveur et assurez-vous d'avoir l'autorisation root.

Remarque : si vous faites sur un tout nouveau serveur, vous devrez peut-être installer les bibliothèques suivantes.

yum installer gcc make automake autoconf libtool pcre pcre-devel libxml2 libxml2-devel curl curl-devel httpd-devel

Prénom, compilons la sécurité des mods. Aller à modsecurity-2.9.1 dossier et utilisez les commandes ci-dessous.

./configure --enable-standalone-module make

Suivant, installez Nginx avec la sécurité mod

./configure --add-module = .. / modsecurity-2.9.1 / nginx / modsecurity make make install

Cela conclut que Nginx est installé avec Mod Security et qu'il est temps de le configurer.

Configure Mod Security with Nginx

Copier modsecurity.conf-recommandé & mappage unicode fichier du dossier extrait du code source ModSecurity téléchargé ci-dessus vers le dossier nginx conf. Vous pouvez également utiliser le trouver commander.

find / -name modsecurity.conf-recommandé find / -name unicode.mapping
[[email protected] conf] # cp /opt/nginx/binary/modsecurity-2.9.1/modsecurity.conf-recommended / usr / local / nginx / conf / [[email protected] conf] # cp /opt/nginx/binary/modsecurity-2.9.1/ unicode.mapping / usr / local / nginx / conf / [[email protected] conf] #

Renommons modsecurity.conf-recommandé à modsecurity.conf

mv modsecurity.conf-recommandé modsecurity.conf
  • Faites une sauvegarde du fichier nginx.conf
  • Ouvrez le fichier nginx.conf et ajoutez ce qui suit sous la directive «location /»
ModSecurityEnabled on; ModSecurityConfig modsecurity.conf;

Donc ça devrait ressembler à ça

location / {ModSecurityEnabled on; ModSecurityConfig modsecurity.conf; }

Désormais, Mod Security est intégré à Nginx. Redémarrez le Nginx pour vous assurer qu'il monte sans aucune erreur.

Vérifions…

Il existe deux méthodes possibles pour confirmer que Nginx est compilé avec Mod Security.

Première…

Répertoriez le module compilé en utilisant –V avec le fichier exécutable nginx.

[[email protected] sbin] #./ nginx -V
version nginx: nginx / 1.9.15 construit par gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) configure les arguments: --add-module = .. / modsecurity-2.9.1 / nginx / modsecurity [[email protected] sbin] #

Seconde…

Accédez au dossier des journaux et affichez le fichier d'erreur, vous devriez voir ce qui suit

2016/05/21 21:54:51 [notice] 25352 # 0: ModSecurity pour nginx (STABLE) /2.9.1 (http://www.modsecurity.org/) configuré. 2016/05/21 21:54:51 [notice] 25352 # 0: ModSecurity: APR version compilée = "1.3.9"; version chargée = "1.3.9" 2016/05/21 21:54:51 [notice] 25352 # 0: ModSecurity: version compilée PCRE = "7.8"; version chargée = "7.8 2008-09-05" 2016/05/21 21:54:51 [notice] 25352 # 0: ModSecurity: version compilée LIBXML = "2.7.6"

Cela conclut que vous avez configuré avec succès ModSecurity avec Nginx.

Par défaut, la configuration est en mode détection uniquement, ce qui signifie qu'elle n'exécutera aucune action et protégez vos applications web.

Dans mon prochain article, j'ai expliqué comment configurer Ensemble de règles OWASP et activation de la sécurité des mods pour se protéger des vulnérabilités de sécurité Web.