Zum Inhalt

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.


LuaRocks Releases License

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.