So installieren Sie die ModSecurity für Nginx auf Debian/Ubuntu

So installieren Sie die ModSecurity für Nginx auf Debian/Ubuntu

Es ist der Wunsch eines jeden Entwicklers, sichere Webanwendungen bereitzustellen, die vor Bedrohungen sicher sind. In den meisten Fällen ist dies mühelos gesagt als getan. Die Häufigkeit der gehackten Websites steigt weiter, da Hacker weiterhin alle ihnen zur Verfügung stehenden Angriffsvektoren ausnutzen.

WebApp -Sicherheit kann eine große Herausforderung sein, insbesondere mit der Verbreitung von böswilligen Tools wie Rootkits, Scannern, Bots und anderen Malware. Obwohl Verstöße sein, scheint es jedoch, wenn nicht wenn nicht wenn nicht, ratsam ist, einige anständige Sicherheitsmaßnahmen zu implementieren, um Ihre Webanwendungen zu schützen.

[Möglicherweise mögen Sie auch: 5 Tools zum Scannen eines Linux -Servers für Malware und RootKits]

Eines der Tools, die ein anständiges Sicherheitsniveau gegen Angriffe bieten können, heißt Angriffe Modsecurity. Dies ist eine kostenlose und offene Quelle Webanwendung Firewall (Waf) Das schützt Ihre Webanwendungen vor einer Vielzahl von Angriffen von Schicht 7 wie Cross-Site-Skripten (Scripting ()XSS), Sql Injektion, Sitzung und vieles mehr.

In diesem Handbuch zeigen wir Ihnen, wie Sie installieren und konfigurieren können Modsecurity arbeiten mit Nginx auf Debian-basierten Linux-Verteilungen wie z Ubuntu.

Schritt 1: Abhängigkeiten installieren

Um die Installation zu beginnen, sind eine Reihe von Softwareabhängigkeiten erforderlich, damit die Installation erfolgreich ist. Aktualisieren Sie jedoch zunächst die Paketlisten und aktualisieren Sie die Repositories wie folgt.

$ sudo APT Update 

Installieren Sie als nächstes die Abhängigkeiten wie folgt.

$ sudo apt install machen GCC Build-Wesential Autoconf Automake libfuzzy-dev ssdeep GetText PKG-config libcurl4-openSsl-dev liblua5.3-dev libpcre3 libpcre3-dev libxml2 libxml2-dev libyajl-dex doxygen libcurl4 libgeoip-dev libsl-dev zlib1g-dev libxslt-dev liblmdb-dev libpcre ++-Dev libgd-devdev 

Schritt 2: Installieren Sie die neueste Nginx -Version


Der nächste Schritt besteht darin, die zu installieren Nginx Webbrowser. Um die neueste Version zu installieren, werden wir sie von der installieren
ONDREJ/NGINX-MAINLINE PPA W, das derzeit seit 2000 von einem Debian-Entwickler aufrechterhalten wird.

Um die PPA zu Ihrem Einheimischen hinzuzufügen Ubuntu System führen den Befehl aus:

$ sudo add-apt-Repository PPA: Ondrej/nginx-mainline -y 

Aktualisieren Sie als nächstes die Paketlisten und installieren Sie die neueste Version von Nginx folgendermaßen

$ sudo APT Update $ sudo APT Installieren Sie Nginx-Core Nginx-Common Nginx Nginx-Full 

In der Regel ist nur das Standard -Repository aktiviert. Es ist ratsam, das Quellcode -Repository so zu aktivieren, dass Sie später das herunterladen können Nginx Quellcode im nächsten Schritt.

Um dies zu erreichen, ändern Sie die Nginx Repository -Datei.

$ sudo vim/etc/apt/Quellen.Liste.D/ONDREJ-UBUNTU-NGINX-MAINLINE-*.Liste 

Suchen Sie diese Zeile und aktivieren Sie diese Zeile, um das Quellcode -Repository zu aktivieren:

# Deb-Src http: // pPA.Launchpad.net/ondrej/nginx-mainline/ubuntu/fokal main 

Die Datei sollte nun wie gezeigt angezeigt werden.

Aktivieren Sie ONDřej PPA

Speichern Sie die Änderungen und beenden Sie.

Aktualisieren Sie dann den Paketindex.

$ sudo APT Update 

Schritt 3: Laden Sie das Nginx -Quellpaket herunter

Um das zu kompilieren Modsecurity Dynamisches Modul müssen die herunterladen Nginx Quellcodepaket. Dazu werden wir zuerst eine erstellen Nginx Verzeichnis in der /usr/local/src/ Pfad zur Aufnahme der Nginx -Quellcode -Code -Paketpaketdatei.

$ sudo mkdir -p/usr/local/src/nginx 

Lassen Sie als Nächst. Stellen Sie sicher, dass Sie den Benutzernamen durch Ihren tatsächlichen Sudo -Benutzernamen ersetzen.

$ sudo chown username: userername -r/usr/local/src/ 

Danach navigieren Sie in die Nginx Quellverzeichnis:

$ cd/usr/local/src/nginx 

Fahren Sie fort und laden Sie die herunter Nginx Quelldateipakete:

$ sudo apt Source nginx 
Laden Sie die Nginx -Quelle herunter

Sie werden höchstwahrscheinlich in den folgenden Fehler eingehen:

W: Der Download wird als Root als Root als Datei 'nginx_1 unangemessen durchgeführt.19.5.orig.Teer.GZ 'konnte nicht vom Benutzer' _apt 'zugegriffen werden. - pkgacquire :: run (13: Erlaubnis abgelehnt) 

Dies ist nichts, um Sie aufzurufen. Ignorieren Sie also einfach den Fehler.

Sie können einen Blick auf die Quelldatei mit dem Befehl LS werfen.

$ ls -l 
Listen Sie Nginx -Quelldateien auf

Stellen Sie sicher, dass die Quellcode -Version mit der Version von zusammenfällt Nginx Eingerichtet.

$ nginx -v 
Überprüfen Sie die Nginx -Version

Schritt 4: Installieren Sie die Bibliothek libmodSecurity3

Libmodesecurity ist ein Modsecurity Bibliothek, die umgeht Http Filterung für Ihre Bewerbungen. Es gibt zwei Möglichkeiten, es zu installieren. Sie können den APT -Paketmanager wie gezeigt verwenden

$ sudo apt installieren Sie libmodSecurity3 

Der andere Ansatz besteht darin, es aus einer Quelle zu installieren, die vorzuziehen ist, da es Ihnen die neueste Version bietet. Klonen Sie das Git -Repository wie gezeigt, um die Installation von libmodSecurity aus der Quelle zu starten:

$ Git Clone -Depth 1 -B v3/Master - -Single -Branch https: // github.com/spiderlabs/modsecurity/usr/local/src/modsecurity/ 

Navigieren Sie in das geklonte Verzeichnis:

$ cd/usr/local/src/modsecurity/ 

Machen Sie einen Punkt, um die Submodules zu installieren

$ sudo git submodule init $ sudo git submodule update 
Installieren Sie libmodSecurity3 in Ubuntu

Erstellen Sie anschließend die Umgebung mit den folgenden Befehlen.

$ sudo ./bauen.Sh $ sudo ./konfigurieren 

Ignorieren Sie erneut den unten angezeigten Fehler.

Fatal: Keine Namen gefunden, kann nichts beschreiben. 

Kompilieren Sie dann den Quellcode und installieren Sie andere Dienstprogramme mit dem folgenden Befehl erstellen. Dies dauert ungefähr 25 Minuten und etwas Geduld ist erforderlich.

$ sudo make -j4 

Installieren Sie nach Abschluss die Bibliotheken.

$ sudo installieren 

Schritt 5: Laden Sie die ModSecurity V3 Nginx Connector herunter und kompilieren Sie sie

Der nächste Schritt besteht darin, die herunterzuladen und zu kompilieren Modsecurity nginx Verbinder. Der Anschluss verbindet, wie der Name schon sagt, die Libmodsecurity Bibliothek zum NGINX -Webserver. Um den ModSecurity Connector herunterzuladen, klonen Sie ihn wie folgt aus dem Github -Repository.

$ git klon -tiefe 1 https: // github.com/spiderlabs/modsecurity-nginx.git/usr/local/src/modsecurity-nginx/ 

Navigieren Sie in das geklonte Verzeichnis.

$ cd/usr/local/src/nginx/nginx-1.21.3/ 

Fahren Sie fort und installieren Sie Build -Abhängigkeiten

$ sudo apt Build-Dep nginx $ sudo apt install uuid-dev 

Als nächstes kompilieren Sie die ModSecurity Nginx Connector Modul mit dem --with compat Flagge. Der --with compat Die Option macht das Modul-Binärverbotsmodul modsecurity nginx Connector mit der aktuellen Nginx-Bibliothek.

$ sudo ./configure-mit compat --add-dynamic-module =/usr/local/src/modsecurity-nginx 

Erstellen Sie das Modul der ModSecurity Nginx Connector mit dem Befehl make.

$ sudo machen Module 

Das Modul wird gerettet als OBJS/NGX_HTTP_MODSECURITY_MODULE.So. Sie müssen dieses Modul in die kopieren /usr/share/nginx/modules/ Verzeichnis wie folgt.

$ sudo cp objs/ngx_http_modsecurity_module.so/usr/share/nginx/module/ 

Schritt 6: Laden Sie das Modul des Moduls modSecurity nginx

Um das zu laden Nginx Das Connector -Modul zuerst greifen Sie auf die Hauptnginx -Konfigurationsdatei zu.

$ sudo vim/etc/nginx/nginx.Conf 

Fügen Sie die folgende Zeile direkt unter den ersten Zeilen hinzu

lade_module module/ngx_http_modsecurity_module.So; 

Fügen Sie außerdem die folgenden Zeilen in der an http … Abschnitt. Dies ermöglicht die ModSecurity für alle virtuellen Nginx -Hosts.

Modsecurity on; Modsecurity_RULES_FILE/ETC/NGINX/MODSEC/Main.conf; 
Aktivieren Sie die mod_security für nginx vhosts

Speichern Sie die Änderungen und beenden Sie die Datei.

Als nächstes erstellen Sie die /etc/nginx/modsec/ Verzeichnis, das aufbewahrt wird Modsecurity Aufbau.

$ sudo mkdir/etc/nginx/modsec/ 

Kopieren Sie als Nächst.

$ sudo cp/usr/local/src/modsecurity/modsecurity.Konfus empfohlen/etc/nginx/modsec/modsecurity.Conf 

Öffnen Sie dann die Konfigurationsdatei.

$ sudo vim/etc/nginx/modsec/modsecurity.Conf 

Suchen Sie die Linie, beginnend mit der Geheimnis Richtlinie.

Geheimniserkennung 

Diese Linie weist an Modsecurity Um nur HTTP -Transaktionen zu protokollieren, ergriffen jedoch angesichts eines Web -App -Angriffs keine Maßnahmen. Sie müssen dies ändern, damit die ModSecurity nicht nur die Webangriffe erfasst, sondern auch blockieren wird.

Ändern Sie die Linie in die unten stehende Zeile unten

Geheimnis auf 
Aktivieren Sie die Regeln für mod_security

Speichern Sie die Änderungen und beenden Sie die Datei.

Erstellen Sie als nächstes die /etc/nginx/modsec/main.Conf Datei.

$ sudo vim/etc/nginx/modsec/main.Conf 

Fügen Sie diese Zeile an, um auf die zu verweisen /etc/nginx/modsec/modsecurity.Conf Konfigurationsdatei.

Inhaftieren/etc/nginx/modsec/modsecurity.Conf 

Speichern Sie die Änderungen und beenden Sie die Datei.

Kopieren Sie zusätzlich die Unicode -Mapping -Datei.

$ sudo cp/usr/local/src/modsecurity/unicode.Mapping/etc/nginx/modSec/ 

Testen Sie dann die Nginx -Konfiguration.

$ sudo nginx -t 
Testen Sie die Nginx -Konfiguration

Der Test sollte erfolgreich sein. Wenn nicht, gehen Sie zurück und überprüfen Sie, ob alle vorgenommenen Änderungen korrekt sind.

Starten Sie dann Nginx dann neu, um alle vorgenommenen Änderungen anzuwenden.

$ sudo systemctl starten nginx neu 

Und überprüfen Sie, ob Nginx wie erwartet ausgeführt wird.

$ sudo systemctl Status nginx 

Schritt 7: Download Owasp Corerule Set

Für Modsecurity Um Ihre Webanwendungen zu schützen, müssen Sie Regeln angeben, die verdächtige Aktivitäten erkennen und blockieren werden. Um zu beginnen, ist es vorzuziehen, vorhandene Regelsätze zu installieren, mit denen Sie die Seile lernen können.

Der OWASP -Kernregelsatz (CRS) ist ein freier, offener Regelsatz für Open-Source und Community, der Regeln für die Abwehr von gemeinsamen Angriffsvektoren wie SQL-Injektion, Cross-Site-Skripten (XSS) enthält, um abzuwehren.

Laden Sie den OWASP -Kernregelsatz von Github herunter, wie mit dem Befehl WGE gezeigt.

$ wget https: // github.com/coreruleset/coreruleset/archiv/v3.3.0.Teer.gz 

Extrahieren Sie die komprimierte Datei.

$ tar xvf v3.3.0.Teer.gz 

Stellen Sie sicher, dass Sie das unkomprimierte Verzeichnis in die verschieben /etc/nginx/modsec/ Weg.

$ sudo mv coreruleset-3.3.0//etc/nginx/modsec/ 

Dann die umbenennen CRS-Setup.Conf.Beispiel Datei an CRS-Setup.Conf.

$ sudo mv/etc/nginx/modsec/coreruleset-3.3.0/Crs-Setup.Conf.Beispiel/etc/nginx/modsec/coreruleset-3.3.0/Crs-Setup.Conf 

Wieder gehen Sie zurück zum Modsecurity Konfigurationsdatei.

$ sudo vim/etc/nginx/modsec/main.Conf 

Und die folgenden Zeilen anhängen.

Include/etc/nginx/modsec/coreruleset-3.3.0/Crs-Setup.conde include/etc/nginx/modsec/coreruleset-3.3.0/Regeln/*.Conf 

Die Datei sollte jetzt 3 Zeilen haben:

Konfigurieren Sie die ModSecurity -Regeln

Speichern Sie die Datei und starten Sie Nginx erneut neu.

$ sudo systemctl starten nginx neu 

Schritt 8: Testen der ModSecurity

Schließlich werden wir einen Test durchführen Modsecurity und bestätigen Sie, dass es verdächtigen HTTP -Verkehr erkennen und blockieren kann.

Wir werden die ModSecurity -Konfigurationsdatei bearbeiten und eine Blockierungsregel erstellen, die den Zugriff auf eine bestimmte URL blockiert, wenn er von einem Webbrowser zugegriffen wird.

$ sudo vim/etc/nginx/modsec/modsecurity.Conf 

Fügen Sie diese Zeile direkt unter dem hinzu Geheimnis auf Richtlinie

Secrule Args: testParam "@Contains test" "ID: 254, Deny, Status: 403, MSG: 'Test erfolgreich'" 

Sie können die festlegen 'Ausweis' Und 'Nachricht' Tags zu Ihren bevorzugten Werten.

Testen Sie ModSecurity -Regeln

Speichern Sie die Änderungen und starten Sie Nginx neu.

$ sudo systemctl starten nginx neu 

Starten Sie nun Ihren Browser und besuchen Sie die URL unten mit dem ?TestParam = Test Suffix

http: // server-ip/?TestParam = Test 

Sie sollten eine bekommen 403 Verboten' Fehler. Dies zeigt an, dass Sie versuchen, auf eine verbotene Ressource auf dem Webserver zuzugreifen.

Nginx 403 Verbotener Fehler

Zusätzlich können Sie die NGINX -Fehlerprotokolle überprüfen, um zu bestätigen, dass der Client blockiert wurde

$ cat/var/log/nginx/fehler.Protokoll | Grep "Test erfolgreich" 
Überprüfen Sie den Nginx -ModSecurity -Block

[Möglicherweise mögen Sie auch: Wie Sie Modsecurity mit Apache auf Debian/Ubuntu einrichten]

Das war ein Überblick darüber, wie Sie einrichten können Modsecurity mit Nginx An Debian Und Ubuntu. Wir hoffen, dass dies vorteilhaft war.