Aller au contenu

t1k: Implémentation Lua du protocole T1K pour Chaitin/SafeLine WAF

Installation

Si vous n'avez pas encore configuré l'abonnement au dépôt RPM, inscrivez-vous. Ensuite, vous pouvez procéder avec les étapes suivantes.

CentOS/RHEL 7 ou 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

Pour utiliser cette bibliothèque Lua avec NGINX, assurez-vous que nginx-module-lua est installé.

Ce document décrit lua-resty-t1k v1.1.6 publié le 04 novembre 2024.


LuaRocks Releases License

Synopsis

location / {
    access_by_lua_block {
        local t1k = require "resty.t1k"

        local t = {
            mode = "block",                            -- block ou monitor ou off, par défaut off
            host = "unix:/workdir/snserver.sock",      -- requis, hôte du service de détection SafeLine WAF, socket de domaine unix, IP ou domaine est supporté, chaîne
            port = 8000,                               -- requis lorsque l'hôte est une IP ou un domaine, port du service de détection SafeLine WAF, entier
            connect_timeout = 1000,                    -- délai d'attente de connexion, en millisecondes, entier, par défaut 1s (1000ms)
            send_timeout = 1000,                       -- délai d'attente d'envoi, en millisecondes, entier, par défaut 1s (1000ms)
            read_timeout = 1000,                       -- délai d'attente de lecture, en millisecondes, entier, par défaut 1s (1000ms)
            req_body_size = 1024,                      -- taille du corps de la requête, en Ko, entier, par défaut 1MB (1024Ko)
            keepalive_size = 256,                      -- nombre maximum de connexions inactives simultanées au service de détection SafeLine WAF, entier, par défaut 256
            keepalive_timeout = 60000,                 -- délai d'attente de connexion inactive, en millisecondes, entier, par défaut 60s (60000ms)
            remote_addr = "http_x_forwarded_for: 1",   -- adresse distante de ngx.var.VARIABLE, chaîne, par défaut de 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, dans le cadre de l'édition entreprise de SafeLine, est un mode de déploiement conçu en langage C pour des performances améliorées. Il est compatible avec toutes les versions de Nginx et ne nécessite pas de déploiement via OpenResty (lua_nginx_module).

Lua Resty T1K C T1K
Détection de requête
Détection de réponse
Vérifications de santé*
Protection des cookies
Protection contre les bots
Statistiques côté proxy

* APISIX implémente la fonctionnalité de vérification de santé pour le plugin chaitin-waf. Pour plus d'informations, veuillez consulter la documentation de chaitin-waf.

GitHub

Vous pouvez trouver des conseils de configuration supplémentaires et de la documentation pour ce module dans le dépôt GitHub pour nginx-module-t1k.