Zum Inhalt

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.


test docs docker Codacy Badge Codacy Badge

Notification Discussion EN Discussion CN

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

Kontakt

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.