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

html-Seite!--[if IE]...![endif]--Detaillierte Einführung in die Verwendung

Code kopieren Der Code lautet wie folgt: <!--[...

TypeScript-Aufzählungstypen im Detail erklären

Inhaltsverzeichnis 1. Digitale Aufzählung 2. Zeic...

Analyse der MySql CURRENT_TIMESTAMP-Funktion anhand eines Beispiels

Beim Erstellen eines Zeitfelds STANDARD CURRENT_T...

Tutorial zu HTML-Tabellen-Tags (11): Horizontales Ausrichtungsattribut ALIGN

In horizontaler Richtung können Sie die Ausrichtu...

So implementieren Sie den Dienststatus zur Nginx-Konfigurationserkennung

1. Überprüfen Sie, ob das Modul „Status prüfen“ i...

Vue-Electron-Problemlösung bei Verwendung des seriellen Ports

Der Fehler lautet wie folgt: Nicht abgefangener T...

Implementieren eines Webplayers mit JavaScript

Heute zeige ich Ihnen, wie Sie mit JavaScript ein...

jQuery implementiert einen einfachen Popup-Fenstereffekt

In diesem Artikel wird der spezifische Code von j...

Vuex implementiert einen einfachen Einkaufswagen

In diesem Artikelbeispiel wird der spezifische Co...

Ein Artikel zum Verständnis von Linux-Festplatten und Festplattenpartitionen

Vorwort Alle Hardwaregeräte im Linux-System werde...

Detaillierte Erklärung zu React Hooks

Inhaltsverzeichnis Was sind Hooks? Klassenkompone...

So installieren und konfigurieren Sie GitLab unter Ubuntu 20.04

einführen GitLab CE oder Community Edition ist ei...