Alguns meses atrás, eu migrei o firewall de um laptop debian de iptables
para nftables
, usando o procedimento recomendado pelo debian, e tudo parece estar bem. Agora, meses depois, estou examinando o conjunto de regras criado por esse procedimento de migração, tentando aprender a nftables
sintaxe e ver o que parecem ser várias regras baseadas em contadores que não entendo e suspeito que podem não estar corretas. Não encontrei o nftables
wiki como um recurso educacional útil e não encontrei nenhum outro recurso educacional on-line que aborde esse tipo de pergunta:
O conjunto de regras padrão migrado automaticamente inclui o seguinte:
table inet filter {
chain INPUT {
type filter hook input priority 0; policy drop;
counter packets 123 bytes 105891 jump ufw-before-logging-input
counter packets 123 bytes 105891 jump ufw-before-input
counter packets 0 bytes 0 jump ufw-after-input
counter packets 0 bytes 0 jump ufw-after-logging-input
counter packets 0 bytes 0 jump ufw-reject-input
counter packets 0 bytes 0 jump ufw-track-input
}
As duas primeiras counter
declarações são exemplos do que me chamou a atenção. Estou certo de que eles estão dizendo "pule para as regras na seção ufw-before-foo, mas somente após os primeiros 123 pacotes e os primeiros 105891 bytes terem sido recebidos".
- Por que não iniciar imediatamente do pacote 0 byte 0?
- Por que não usar uma sintaxe >= que parece ser suportada por nftables?
- Esses números são arbitrários? Possivelmente devido a uma falha na migração?
O conjunto de regras acima inclui um salto para a cadeia a seguir, com um problema possivelmente semelhante. Aqui está um trecho dele:
chain ufw-before-input {
iifname "lo" counter packets 26 bytes 3011 accept
ct state related,established counter packets 64 bytes 63272 accept
ct state invalid counter packets 0 bytes 0 jump ufw-logging-deny
ct state invalid counter packets 0 bytes 0 drop
...
}
- Por que as decisões de aceitação são baseadas no recebimento de 26 ou 64 pacotes anteriores?
- Um firewall pode ser liberado arbitrariamente a qualquer momento após a inicialização e a descoberta/conexão da rede, então por que descartar todos esses pacotes iniciais?
Como mencionei acima, essas regras estão em vigor há meses, então estou me perguntando que efeito negativo elas poderiam ter tido. O único candidato que encontrei é que o laptop às vezes pode ter dificuldade em fazer uma conexão wifi (especialmente depois de sair do modo de suspensão), enquanto um segundo laptop próximo não tem esse problema.
- Essas regras que descartam pacotes podem ser as culpadas pela dificuldade de negociar uma conexão wifi?