waf: Ein Webanwendungsfirewall-Modul für NGINX
Installation
Sie können dieses Modul in jeder RHEL-basierten Distribution installieren, einschließlich, aber nicht beschränkt auf:
- RedHat Enterprise Linux 7, 8, 9 und 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 und Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-waf
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-waf
Aktivieren Sie das Modul, indem Sie Folgendes an den Anfang von /etc/nginx/nginx.conf hinzufügen:
load_module modules/ngx_http_waf_module.so;
Dieses Dokument beschreibt nginx-module-waf v10.1.2 veröffentlicht am 09. Juli 2022.
Englisch | 简体中文
Praktisches, leistungsstarkes NGINX-Firewall-Modul.
Warum ngx_waf
- Grundschutz: wie schwarze und weiße Listen von IPs oder IP-Bereichen, URI-Schwarz- und Weißlisten sowie eine schwarze Liste für den Anfrageinhalt usw.
- Einfach zu bedienen: Konfigurationsdateien und Regeldateien sind leicht zu schreiben und lesbar.
- Hohe Leistung: Effiziente Algorithmen und Caching.
- Erweiterter Schutz: ModSecurity kompatibel, Sie können das OWASP (Open Web Application Security Project®) ModSecurity Core Rule Set verwenden.
- Freundliche Crawler-Verifizierung: Unterstützt die Verifizierung von Google-, Bing-, Baidu- und Yandex-Crawlern und erlaubt ihnen automatisch, um Fehlalarme zu vermeiden.
- Captcha: Unterstützt drei Arten von Captchas: hCaptcha, reCAPTCHAv2 und reCAPTCHAv3.
Funktionen
- ModSecurity kompatibel.
- IPV4- und IPV6-Unterstützung.
- Unterstützung für die Aktivierung von CAPTCHAs, einschließlich hCaptcha, reCAPTCHAv2 und reCAPTCHAv3.
- Unterstützung für authentifizierungsfreundliche Crawler (basierend auf Benutzeragent und IP-Identifikation), um das Blockieren dieser Crawler (z. B. GoogleBot) zu vermeiden.
- CC-Schutz: Wenn die Anforderungsrate das Limit überschreitet, wird die IP automatisch für einen bestimmten Zeitraum gesperrt oder es wird ein CAPTCHA verwendet, um eine menschliche Identifizierung durchzuführen und bei Erfolg zuzulassen.
- Ausnahmeregelung für bestimmte IP-Adressen.
- Blockieren der angegebenen IP-Adresse.
- Blockieren des angegebenen Anfrageinhalts.
- Ausnahmeregelung für bestimmte URLs.
- Blockieren der angegebenen URL.
- Blockieren der angegebenen Abfragezeichenfolge.
- Blockieren des angegebenen UserAgent.
- Blockieren des angegebenen Cookies.
- Ausnahmeregelung für bestimmte Referer.
- Blockieren des angegebenen Referers.
Dokumentation
- Empfohlener Link: https://docs.addesp.com/ngx_waf/
- Alternativer Link 1: https://add-sp.github.io/ngx_waf-docs/
- Alternativer Link 2: https://ngx-waf-docs.pages.dev/
Kontakt
- Telegram-Kanal: https://t.me/ngx_waf
- Telegram-Gruppe (Englisch): https://t.me/group_ngx_waf
- Telegram-Gruppe (Chinesisch): https://t.me/group_ngx_waf_cn
Sponsor
Wir hoffen, dass Sie helfen können, dieses Projekt zu fördern. Je mehr Sterne es bekommt, desto besser ist dieses Projekt. :)
Test Suite
Dieses Modul wird mit einer Perl-gesteuerten Test-Suite geliefert. Die Testfälle sind ebenfalls deklarativ. Dank des Test::Nginx Moduls in der Perl-Welt.
Um es auf Ihrer Seite auszuführen:
## Es wird viel Zeit in Anspruch nehmen, muss aber nur einmal ausgeführt werden.
cpan Test::Nginx
# Sie müssen ein temporäres Verzeichnis angeben.
# Wenn das Verzeichnis nicht existiert, wird es automatisch erstellt.
# Wenn das Verzeichnis bereits existiert, wird es zuerst **entfernt** und dann erstellt.
export MODULE_TEST_PATH=/path/to/temp/dir
# Sie müssen den absoluten Pfad zum dynamischen Modul angeben, wenn Sie es installiert haben,
# andernfalls müssen Sie diese Zeile nicht ausführen.
export MODULE_PATH=/path/to/ngx_http_waf_module.so
cd ./test/test-nginx
sh ./init.sh
sh ./start.sh ./t/*.t
Einige Teile der Test-Suite erfordern, dass die Standardmodule proxy, rewrite und SSI ebenfalls aktiviert sind, wenn NGINX gebaut wird.
Danke
- ModSecurity: Eine Open-Source, plattformübergreifende Webanwendungsfirewall (WAF) Engine.
- uthash: C-Makros für Hash-Tabellen und mehr.
- libcurl: Die Multiprotokoll-Dateiübertragungsbibliothek.
- cJSON: Ultraleichter JSON-Parser in ANSI C.
- libinjection: SQL / SQLI Tokenizer Parser Analyzer.
- libsodium: Eine moderne, portable, einfach zu verwendende Krypto-Bibliothek.
- test-nginx: Datengetriebenes Testgerüst für die Entwicklung von NGINX C-Modulen und OpenResty Lua-Bibliotheken.
- lastversion: Ein Kommandozeilenwerkzeug, das Ihnen hilft, eine bestimmte Version eines Projekts herunterzuladen oder zu installieren.
- ngx_lua_waf: Eine Webanwendungsfirewall basierend auf dem lua-nginx-module (openresty).
- nginx-book: Der Entwicklungsleitfaden für nginx in chinesischer Sprache.
- nginx-development-guide: Der Entwicklungsleitfaden für nginx in chinesischer Sprache.
GitHub
Sie finden möglicherweise zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul im GitHub-Repository für nginx-module-waf.