Nginx Lua-Modul Taobao entwickelte nginx ein Drittanbieter-Modul, das die Lua-Sprache in die nginx-Konfiguration einbetten kann, sodass die Verwendung von Lua die Fähigkeiten von nginx erheblich verbessert. NGINX ist bekannt für seine hohe Nebenläufigkeit, Lua-Skripte sind leicht und die Kombination aus beiden ist perfekt.
GitHub-Adresse: https://github.com/loveshell/ngx_lua_waf
###用途:
- Verhindern Sie Webangriffe wie SQL-Injektion, lokale Inklusion, teilweise Überlauf, Fuzzing-Tests, XSS, SSRF usw
- Verhindern Sie Dateileckage wie SVN/Backup
- Verhindern Sie Angriffe durch Stresstest-Tools wie ApacheBench
- Blockiere gängige Scanning-Hacking-Tools und Scanner
- Ungewöhnliche Netzwerkanfragen blockieren
- Blockieren Sie die PHP-Ausführungsberechtigung des Bildanhangsverzeichnisses
- Verhindern Sie Webshell-Uploads
Systemversion, Befehl lsb_release -a
LSB-Version: :core-4.1-amd64:core-4.1-noarch Vertriebs-ID: CentOS
Description: CentOS Linux release 7.4.1708 (Core)
Release: 7.4.1708
Codename: Core
LuaJIT-Version
LuaJIT-2.0.5 ist die neueste stabile Version
nginx-Version (wird nicht installiert werden, dazu später mehr)
nginx 1.4.4 Version
Erstellen Sie zunächst das Installationsverzeichnis /alidata/server/lj2 mit folgendem Befehl:
Installation der Lua-Umgebung
--Überprüfe, ob die Installation erfolgreich ist
--Weiche Links erstellen
Ursprüngliche Reihenfolge:
Da wir lua unter /alidata/server/lj2 installiert haben, führe folgenden Befehl aus,Führe den obigen Befehl nicht aus, führe den folgenden Befehl aus:
Wenn Sie keinen Symlink erstellen, kann folgende Ausnahme auftreten: Fehler beim Laden gemeinsamer Bibliotheken: libluajit-5.1.so.2: kann die Datei eines gemeinsamen Objekts nicht öffnen: Keine solche Datei oder ein Verzeichnis
Lade ngx_devel_kit herunter und entpacke es
Projekt-Homepage: https://github.com/simplresty/ngx_devel_kit
Lade ngx_lua herunter und entpacke es
Kompilieren und installieren Sie nginx neu
Sichere zuerst die vorherige ngxin-Datei
Ich habe nginx schon einmal installiert und den Befehl nginx -V wie folgt ausgeführt:
nginx-Version: nginx/1.4.4 gebaut von GCC 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) TLS-SNI-Unterstützung aktiviert Argumente konfigurieren: --user=www --group=www --prefix=/alidata/server/nginx --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_ Modul Zwei Modulkataloge
/root/pack/lua-nginx-module-0.10.13
/root/pack/ngx_devel_kit-0.2.19
Herunterladen und ausführen im nginx-Verzeichnis
--Umweltvariable hinzufügen, um Nginx zu sagen, wo Luajit zu finden ist
Wenn du es nicht hinzufügst, meldet nginx beim Kompilieren folgenden Fehler:
./konfigurieren: fehler: ngx_http_lua_module benötigt die Lua-Bibliothek. Wenn ein Fehler gemeldet wird, führen Sie bitte die oben genannten beiden Sätze aus!
kompilieren
Fehler: #error ist zumindest nginx 1.6.0 erforderlich, aber ich habe eine ältere Version gefunden.
Die nginx-Version ist zu niedrig, die Mindestanforderung ist 1.6.0, also upgrade die nginx-Version,Beim Upgrade der nginx-Version kann man tatsächlich das lua-nginx-Modul und ngx_devel_kit Modul in die neue Version einbauen, was hier nicht näher ausgeführt wird, führe einfach folgenden Befehl mit der neuen Version aus,
Lade ngx_lua_waf herunter und entpacke es
Ändere die nginx-Konfigurationsdatei, um den Pfad je nach aktueller Situation zu ändern
Füge es im http-Bereich von nginx.conf hinzu
Einmal hinzugefügt,Ich habe nginx neu gestartet und einen Fehler von 500 bekommenSchließlich stellte sich heraus, dass der Grund war, dass die config.lua-Datei an zwei Stellen geändert werden sollte:
RulePath und Logdir, um sie je nach Situation anzupassen!
Test
https://www.itsvse.com/forum.php?id=../etc/passwd
|