Implementierung der Bereitstellung des Nginx+ModSecurity-Sicherheitsmoduls

Implementierung der Bereitstellung des Nginx+ModSecurity-Sicherheitsmoduls

Um die Situation zu demonstrieren, in der Nginx installiert ist, aber ModSecurity nicht hinzugefügt wurde, bestehen die folgenden Vorgänge darin, zuerst Nginx zu installieren und dann das ModSecurity-Modul hinzuzufügen.

ModSecurity ist eine plattformübergreifende Open-Source-Web Application Firewall (WAF)-Engine, die perfekt mit nginx kompatibel ist. Es ist die von nginx offiziell empfohlene WAF und unterstützt OWASP-Regeln.

Chinesische Website: http://www.modsecurity.cn

Informationen zur praktischen Anwendung finden Sie unter: http://www.modsecurity.cn/practice/

1. Herunterladen

1. Laden Sie Nginx herunter

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

2. ModSecurity herunterladen

wget http://www.modsecurity.cn/download/modsecurity/modsecurity-v3.0.4.tar.gz

2. Bereitstellung

1.Nginx-Bereitstellung

1.1 Installationsabhängigkeiten

yum install -y pcre* openssl* gcc c++ make

1.2 Kompilieren und Installieren der dekomprimierten Dateien

tar -xvf nginx-1.14.2.tar.gz 
cd nginx-1.14.2/

Konfigurationsmodul

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre

Kompilierung ausführen

machen
installieren

Erstellen Sie ein Konto und ein Verzeichnis

Benutzeradd nginx -s /sbin/nologin
mkdir /var/tmp/nginx/

2. ModSecurity-Bereitstellung

2.1 Installationsabhängigkeiten

yum install -y gcc-c++ flex bison yajl yajl-entwickeln curl-entwickeln curl GeoIP-entwickeln doxygen zlib-entwickeln pcre-entwickeln lmdb-entwickeln libxml2-entwickeln ssdeep-entwickeln lua-entwickeln libtool autoconf automake

2.2 Kompilieren und Installieren der dekomprimierten Dateien

tar -xvf modsecurity-v3.0.4.tar.gz
cd modsecurity-v3.0.4/

Kompilieren und installieren

./konfigurieren
machen
installieren
cp modsecurity.conf-empfohlen /usr/local/modsecurity/modsecurity.conf
cp unicode.mapping /usr/local/modsecurity/

3. ModSecurity-Modul hinzufügen

3.1 Nginx-Kompilierungsparameter anzeigen

/usr/local/nginx/sbin/nginx -V

3.2 ModSecurity-Modul herunterladen

Git-Klon https://github.com/SpiderLabs/ModSecurity-nginx.git

Oder laden Sie es von https://github.com/SpiderLabs/ModSecurity-nginx herunter. 

3.3 Nginx neu kompilieren

Dekomprimierungsmodul

entpacken Sie ModSecurity-nginx-master.zip 
#Nur beim Herunterladen des Installationspakets, nicht erforderlich, wenn es sich um einen Git-Klon handelt

Kompilieren und installieren

./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre --add-module=../ModSecurity-nginx

 
#Notieren Sie hier/ModSecurity-nginx Pfad machen
installieren

/usr/local/nginx/sbin/nginx -V #Überprüfen Sie, ob das ModSecurity-Modul bereits verfügbar ist

Hinzufügen eines Profils

mkdir /usr/local/nginx/conf/modsecurity
cp /usr/local/modsecurity/modsecurity.conf /usr/local/nginx/conf/modsecurity/
cp /usr/local/modsecurity/unicode.mapping /usr/local/nginx/conf/modsecurity/

4. Konfigurieren Sie den virtuellen Nginx-Host

4.1 Virtuelle Host-Konfiguration

vim /usr/local/nginx/conf/nginx.conf
    Modsecurity ein;
    modsecurity_rules_datei /usr/local/nginx/conf/modsecurity/modsecurity.conf;
    
 #Das Hinzufügen zum http-Knoten zeigt eine globale Konfiguration an, und das Hinzufügen zum Serverknoten zeigt eine Konfiguration für eine bestimmte Website an

4.2Modsecurity-Konfiguration

vim /usr/local/nginx/conf/modsecurity/modsecurity.conf
#Ändern Sie den folgenden Teil SecRuleEngine On
SecAuditLogParts ABCDEFHZ

#An die Konfigurationsdatei anhängen Include /usr/local/nginx/conf/modsecurity/crs-setup.conf
Include /usr/local/nginx/conf/modsecurity/rules/*.conf

4.3 Regeldateien herunterladen

wget http://www.modsecurity.cn/download/corerule/owasp-modsecurity-crs-3.3-dev.zip
#ModsecurityChinesische Website zum Herunterladen von wget https://github.com/coreruleset/coreruleset
#github herunterladen

4.4 Konfigurationsregeln

entpacken Sie owasp-modsecurity-crs-3.3-dev.zip 
cd owasp-modsecurity-crs-3.3-dev/

cp crs-setup.conf.beispiel /usr/local/nginx/conf/modsecurity/crs-setup.conf
cp -r Regeln /usr/local/nginx/conf/modsecurity/

cd /usr/local/nginx/conf/modsecurity/rules
mv REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.beispiel REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
mv RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf.beispiel RESPONSE-999-EXCLUSION-RULES-AFTER-CRS.conf

4.5 Testen

#Browser- oder Curl-Zugriffstest, gibt 403 zurück
curl -I 'http://localhost/?id=1 UND 1=1'

Dies ist das Ende dieses Artikels über die Implementierung der Bereitstellung des Sicherheitsmoduls Nginx+ModSecurity. Weitere relevante Inhalte zur Bereitstellung von Nginx ModSecurity finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So stellen Sie statische Seiten mit Nginx bereit
  • Detaillierte Erklärung, wie Nginx + Tomcat Reverse Proxy mehrere Sites effizient auf einem Server bereitstellen kann
  • Denken und Praxis der Trennung von Front-End und Back-End basierend auf NodeJS (VI) Praxis der Bereitstellung von Software-Stacks von Nginx + Node.js + Java
  • Detailliertes Tutorial zum Bereitstellen eines Springboot-Projekts mit Nginx auf dem Server (JAR-Paket)
  • Tutorial zum Bereitstellen eines ThinkPHP-Projekts auf Nginx
  • Lösung für das Problem, dass beim Bereitstellen eines Vue-Projekts mit Nginx keine JS-CSS-Dateien gefunden werden

<<:  So verarbeiten Sie sehr große Formularbeispiele mit Vue+ElementUI

>>:  Was bedeutet es, nach der CSS-Linkadresse ein Fragezeichen (?) hinzuzufügen?

Artikel empfehlen

MySQL-Limit-Leistungsanalyse und -Optimierung

1. Fazit Syntax: Limit-Offset, Zeilen Schlussfolg...

Einführung und Zusammenfassung der MySQL 8.0-Fensterfunktionen

Vorwort Vor MySQL 8.0 war es ziemlich mühsam, Dat...

Lösung für den Fehler bei der MySQL-Remoteverbindung

Ich bin schon einmal auf das Problem gestoßen, da...

Beispiel für die Konvertierung eines Zeitstempels in ein Datum in MySQL

Vorwort Ich bin bei der Arbeit auf folgende Situa...

Beispielcode zur Implementierung transparenter Verlaufseffekte mit CSS

Die Titelbilder in den Spalten von Zhihu Discover...

So lösen Sie das Problem des verstümmelten DOS-Fensters in MySQL

Das Problem mit dem verstümmelten Code ist folgen...

Tutorial zum Bereitstellen von nginx+uwsgi in Django-Projekten unter Centos8

1. Virtuelle Umgebung virtualenv installieren 1. ...

Detaillierte Erklärung des VUE-Reaktionsprinzips

Inhaltsverzeichnis 1. Grundlage des Responsive-Pr...

Detaillierte Erklärung des Unterschieds zwischen $router und $route in Vue

Wir verwenden normalerweise Routing in Vue-Projek...