t1k: Lua-Implementierung des T1K-Protokolls für Chaitin/SafeLine WAF
Installation
Wenn Sie das RPM-Repository-Abonnement noch nicht eingerichtet haben, melden Sie sich an. Dann können Sie mit den folgenden Schritten fortfahren.
CentOS/RHEL 7 oder Amazon Linux 2
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 lua-resty-t1k
CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-t1k
Um diese Lua-Bibliothek mit NGINX zu verwenden, stellen Sie sicher, dass nginx-module-lua installiert ist.
Dieses Dokument beschreibt lua-resty-t1k v1.1.6, veröffentlicht am 04. November 2024.
Synopsis
location / {
access_by_lua_block {
local t1k = require "resty.t1k"
local t = {
mode = "block", -- block oder monitor oder off, standardmäßig off
host = "unix:/workdir/snserver.sock", -- erforderlich, Host des SafeLine WAF-Erkennungsdienstes, unix-Domain-Socket, IP oder Domain wird unterstützt, string
port = 8000, -- erforderlich, wenn der Host eine IP oder Domain ist, Port des SafeLine WAF-Erkennungsdienstes, integer
connect_timeout = 1000, -- Verbindungszeitüberschreitung, in Millisekunden, integer, standardmäßig 1s (1000ms)
send_timeout = 1000, -- Sendezeitüberschreitung, in Millisekunden, integer, standardmäßig 1s (1000ms)
read_timeout = 1000, -- Lesezeitüberschreitung, in Millisekunden, integer, standardmäßig 1s (1000ms)
req_body_size = 1024, -- Größe des Anfragekörpers, in KB, integer, standardmäßig 1MB (1024KB)
keepalive_size = 256, -- maximale gleichzeitige Leerlaufverbindungen zum SafeLine WAF-Erkennungsdienst, integer, standardmäßig 256
keepalive_timeout = 60000, -- Zeitüberschreitung für Leerlaufverbindungen, in Millisekunden, integer, standardmäßig 60s (60000ms)
remote_addr = "http_x_forwarded_for: 1", -- Remote-Adresse von ngx.var.VARIABLE, string, standardmäßig von ngx.var.remote_addr
}
local ok, err, _ = t1k.do_access(t, true)
if not ok then
ngx.log(ngx.ERR, err)
end
}
header_filter_by_lua_block {
local t1k = require "resty.t1k"
t1k.do_header_filter()
}
}
Lua Resty T1K vs. C T1K
C T1K, als Teil der Unternehmensausgabe von SafeLine, ist ein Bereitstellungsmodus, der in C-Sprache für verbesserte Leistung entwickelt wurde. Es ist mit allen Versionen von Nginx kompatibel und erfordert keine Bereitstellung über OpenResty (lua_nginx_module).
| Lua Resty T1K | C T1K | |
|---|---|---|
| Anfrageerkennung | ✅ | ✅ |
| Antworterkennung | ❌ | ✅ |
| Gesundheitsprüfungen* | ❌ | ✅ |
| Cookie-Schutz | ❌ | ✅ |
| Bot-Schutz | ❌ | ✅ |
| Proxy-seitige Statistiken | ❌ | ✅ |
* APISIX implementiert die Funktionalität zur Gesundheitsprüfung für das chaitin-waf-Plugin. Für weitere Informationen siehe die chaitin-waf-Dokumentation.
GitHub
Zusätzliche Konfigurationstipps und Dokumentationen für dieses Modul finden Sie im GitHub-Repository für nginx-module-t1k.