diff --git a/nftables.conf b/nftables.conf index 8c23b37..9a12dfe 100644 --- a/nftables.conf +++ b/nftables.conf @@ -63,8 +63,18 @@ table inet filter { iifname "enp0s6" ip6 saddr fd00::/8 drop ip6 daddr ff00::/8 drop - # SYN flood (limite global, equivalente ao antigo limit 10/sec burst 24) - tcp flags syn limit rate 10/second burst 24 packets accept + # SYN flood — limite GLOBAL (todo o servidor, todas as portas e + # clientes somados). O valor antigo (10/sec, burst 24) veio direto + # do rc.local original sem questionar, e era baixo demais pra um + # host com ~26 serviços: uma única carga de página com vários + # assets/chamadas de API em paralelo já consome a rajada inteira, + # e qualquer SYN novo depois disso (reload, outra aba, outro + # serviço) é dropado até o balde reencher — foi exatamente isso + # que quebrou o carregamento do Atlas. Esse limite é só um + # backstop contra flood real (dezenas de milhares de SYN/s); a + # proteção fina por IP já existe nos meters (ssh_meter, + # bad_packets) logo acima. + tcp flags syn limit rate 1000/second burst 200 packets accept tcp flags syn drop # Rate limit de conexões novas na porta SSH (8117): no máx. 3