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.
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.