Pular para conteúdo

t1k: Implementação Lua do protocolo T1K para Chaitin/SafeLine WAF

Instalação

Se você ainda não configurou a assinatura do repositório RPM, inscreva-se. Depois, você pode prosseguir com os seguintes passos.

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

Para usar esta biblioteca Lua com NGINX, certifique-se de que o nginx-module-lua esteja instalado.

Este documento descreve lua-resty-t1k v1.1.6 lançado em 04 de novembro de 2024.


LuaRocks Releases License

Sinopse

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

        local t = {
            mode = "block",                            -- block ou monitor ou off, padrão off
            host = "unix:/workdir/snserver.sock",      -- obrigatório, host do serviço de detecção SafeLine WAF, socket de domínio unix, IP ou domínio são suportados, string
            port = 8000,                               -- obrigatório quando o host é um IP ou domínio, porta do serviço de detecção SafeLine WAF, inteiro
            connect_timeout = 1000,                    -- tempo limite de conexão, em milissegundos, inteiro, padrão 1s (1000ms)
            send_timeout = 1000,                       -- tempo limite de envio, em milissegundos, inteiro, padrão 1s (1000ms)
            read_timeout = 1000,                       -- tempo limite de leitura, em milissegundos, inteiro, padrão 1s (1000ms)
            req_body_size = 1024,                      -- tamanho do corpo da requisição, em KB, inteiro, padrão 1MB (1024KB)
            keepalive_size = 256,                      -- número máximo de conexões ociosas simultâneas ao serviço de detecção SafeLine WAF, inteiro, padrão 256
            keepalive_timeout = 60000,                 -- tempo limite de conexão ociosa, em milissegundos, inteiro, padrão 60s (60000ms)
            remote_addr = "http_x_forwarded_for: 1",   -- endereço remoto de ngx.var.VARIABLE, string, padrão 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, como parte da edição empresarial da SafeLine, é um modo de implantação desenvolvido em linguagem C para desempenho aprimorado. É compatível com todas as versões do Nginx e não requer implantação via OpenResty (lua_nginx_module).

Lua Resty T1K C T1K
Detecção de Requisição
Detecção de Resposta
Verificações de Saúde*
Proteção de Cookies
Proteção contra Bots
Estatísticas do Lado do Proxy

* O APISIX implementa a funcionalidade de verificação de saúde para o plugin chaitin-waf. Para mais informações, consulte a documentação do chaitin-waf.

GitHub

Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório do GitHub para nginx-module-t1k.