So installieren Sie die ModSecurity für Nginx auf Debian/Ubuntu
- 4678
- 667
- Matteo Möllinger
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 PPASpeichern 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 nginxLaden 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 -lListen 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 updateInstallieren 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 aufAktivieren 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 -tTesten 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 -RegelnSpeichern 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 -RegelnSpeichern 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 FehlerZusä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.
- « So verwenden Sie RSYNC, um neue oder geänderte/modifizierte Dateien unter Linux zu synchronisieren
- Nethogs - Überwachen Sie Linux -Netzwerkverkehrsverbrauch pro Prozess »