Gately v0.6.3 lançado
2 de novembro de 2026
Baixar v0.6.3 · GitHub Release
Monitoramento de desempenho (#59)
O novo módulo "Desempenho" coleta a cada 5 segundos CPU, memória, disco e carga do host, além de CPU, memória, descritores de arquivo e goroutines do processo do Gately:
- a página mostra tendências de 60 segundos / 1 hora / 24 horas, ao lado das requisições em andamento, requisições por segundo, proporção de 5xx, tempo até o primeiro byte (P95) e estado dos backends dos sites em execução; clicar em um site abre suas estatísticas;
- os sites Web passam a medir o tempo até o primeiro byte (do recebimento da requisição ao envio dos cabeçalhos da resposta), as estatísticas de site ganham curvas P50 / P95, o Prometheus ganha
gately_site_request_duration_secondse as métricasgately_host_*egately_process_*, e o painel do Grafana foi atualizado; - uma regra de alerta escolhe uma métrica, uma comparação e um limite, e depois uma duração (1 a 1440 minutos); ela só dispara quando a condição se mantém durante toda a duração, e uma notificação de recuperação é enviada ao normalizar. A proporção de 5xx e a latência aceitam um número mínimo de requisições, para que pouco tráfego não seja avaliado. Os alertas saem pela Central de notificações, e a página avisa quando nenhuma regra de notificação os assina.
O histórico fica apenas na memória e recomeça após uma reinicialização. Veja Desempenho.
WAF com SafeLine
Uma instância de WAF pode entregar as requisições ao seu mecanismo de detecção SafeLine Community Edition próprio para análise semântica, sem outro proxy reverso antes ou depois do Gately:
- informe o endereço do detector (
host:port, ouunix:mais o caminho desnserver.sock); "Testar conexão" envia um heartbeat e uma injeção SQL de exemplo, e mostra o tempo de ida e volta e o ID de evento registrado pelo SafeLine; - o SafeLine roda antes dos grupos de regras, que podem ficar vazios quando só o SafeLine é usado; o modo "Apenas detectar" registra as detecções sem bloquear;
- os bloqueios entram nos contadores do WAF, no log do WAF (com o ID de evento), nos logs de acesso, nas estatísticas de site e na Prevenção de intrusão;
- dá para definir o tempo limite de detecção (1 segundo por padrão), o limite do corpo inspecionado (1024 KB por padrão, o restante é encaminhado sem alteração) e se as requisições são liberadas ou respondidas com 503 quando o mecanismo está indisponível (liberadas por padrão).
Veja Firewall WAF · Usar o SafeLine.
Operações em lote (#57)
O modo "Ordenar" das listas passa a se chamar "Ordenar e lote": depois de marcar itens, é possível ativá-los, desativá-los e excluí-los de uma vez, e os nomes são listados para confirmação antes de excluir. Os sites dos Serviços Web podem ser marcados entre vários listeners para adicionar ou remover domínios em massa, trocar o sufixo do domínio principal (old.com → new.com também reescreve www.old.com e *.old.com) e alterar em massa compressão, logs de acesso, CORS, cabeçalhos encaminhados, encerrar conexão ao recusar e referências ao WAF; as opções não alteradas mantêm o valor de cada site. O lote inteiro é validado primeiro e salvo de uma só vez, nada entra em vigor se um item falhar, e apenas os listeners afetados são recarregados, sem derrubar as conexões existentes. A API é composta pelos genéricos PUT <caminho>-enable e POST <caminho>-delete, além de POST /api/webservice/sites/batch.
STUN: liberar portas do firewall automaticamente
As regras STUN ganham "Liberar porta no firewall": quando ativada, o Gately libera a porta de travessia no firewall desta máquina (junto com a porta interna UPnP / NAT-PMP, se definida) e a remove quando a regra é parada ou excluída. Há suporte a nftables (OpenWrt fw4, firewalld) e iptables (fw3, ufw), as regras são restauradas em até 30 segundos após um recarregamento do firewall, e o cartão da regra mostra o resultado ou o motivo de uma falha. Veja Travessia STUN.
Correção: falha de emissão por CNAMEs curinga (#61)
Quando um domínio tem um curinga como *.example.com apontando para example.com, _acme-challenge também resolve para um CNAME, o registro de validação DNS-01 era gravado em @, e a CA informava que não encontrava o registro TXT. Agora o Gately decide por conta própria: um CNAME definido explicitamente continua sendo seguido, o que permite delegar a validação a outro domínio; um CNAME produzido por um curinga é reconhecido e o registro é gravado em _acme-challenge.<domínio>. Os certificados também ganham a opção "Não seguir o CNAME de _acme-challenge". Veja Certificados SSL.
Logs dos Serviços Web (#62)
- Os logs de acesso registram o motivo de um bloqueio (banimento, lista de IP, país, limite de taxa, WAF), e as requisições que carregam uma sessão de login do painel desta instância registram o nome de usuário do painel;
- a página de logs ganha "Ocultar origens banidas" (desativado por padrão, para que as requisições que causaram um banimento continuem visíveis em auditorias) e "Ocultar requisições do painel" (ativado por padrão); ambos afetam apenas a exibição, e os logs são salvos como antes;
- o filtro de IP aceita exclusões iniciadas por
!ou-, como endereços, intervalos ou endereços parciais.
Outras melhorias
- A topologia de rede ganha "Filtrar": por listener, apenas nós com problemas e sites por motivo de bloqueio; o mascaramento ganha o estilo "Apelidos", que substitui endereços por números como Visitor-01 e Backend-01 (#54);
- o vídeo de tour do README começa direto no cartão de introdução;
- dependências atualizadas: go-jose para v4.1.7 e klauspost/compress para v1.18.7.
Correções e reforços
- Quando o backend de um site com WAF retorna 403 por conta própria, isso deixa de ser tratado como bloqueio do WAF: antes somava aos contadores de bloqueio e emitia um evento
waf.blocked, de modo que uma regra de Prevenção de intrusão inscrita nos bloqueios do WAF podia banir um visitante normal; - "Ocultar requisições do painel" só confia em sessões de administrador, então o cookie de login de uma conta somente leitura não serve para marcar requisições como do painel; requisições bloqueadas não levam a marca do painel;
- as operações em lote limitam o número de itens enviados antes de remover duplicatas, e um lote que define uma instância de WAF inexistente é rejeitado;
- quando vários Gately rodam no mesmo host, as regras de firewall abertas automaticamente são distinguidas por instância e não apagam umas às outras.
Notas de atualização
- Docker: baixe a nova imagem e recrie o contêiner; com o socket do Docker montado, o Gately também pode se atualizar pela própria página Docker. OpenWrt: instale o novo
.apk/.ipkpor cima do anterior. fnOS: instale o novo.fpkmanualmente na Central de Aplicativos. Outras implantações podem atualizar online em Configurações.