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

JavaScript-Simulationsrechner

In diesem Artikel wird der spezifische Code des J...

Beispielanalyse der Verwendung gespeicherter MySQL-Prozeduren

Dieser Artikel beschreibt die Verwendung gespeich...

So aktivieren Sie den Fernzugriff in Docker

Docker-Daemon-Socket Der Docker-Daemon kann über ...

Lösen Sie das Problem des Ablaufs des TLS-Zertifikats (SSL) von Docker

Problemphänomen: [root@localhost ~]# Docker-Image...

Einführung in die JWT-Verifizierung mit Nginx und Lua

Inhaltsverzeichnis Vorwort Lua-Skript nignx.conf-...

So benennen Sie in Linux mehrere Dateien gleichzeitig um

Vorwort In unserer täglichen Arbeit müssen wir hä...

MySQL Installations-Tutorial unter Windows mit Bildern und Text

Anweisungen zur MySQL-Installation MySQL ist ein ...

Docker nginx Beispielmethode zum Bereitstellen mehrerer Projekte

Voraussetzungen 1. Docker wurde auf dem lokalen C...

Detaillierte Schritte zur Installation von Mysql5.7.19 mit yum auf Centos7

In der Yum-Quelle von Centos7 ist standardmäßig k...

React implementiert Import und Export von Excel-Dateien

Inhaltsverzeichnis Präsentationsschicht Geschäfts...