Soltar pacotes fragmentados em nftables

1

Usando o iptables é possível bloquear pacotes fragmentados com esta regra:

iptables -A INPUT -f -j DROP

Mas não há um equivalente em nftables. Existe alguma maneira de fazer isso?

    
por Rfraile 22.04.2016 / 12:43

2 respostas

2

De Wiki Nftables ou apenas man nft você pode usar ip frag-off . Agora (depois de algumas tentativas e erros) os 3 flags (reservado, DF, MF) são incluídos neste valor nos 3 bits mais altos e devem ser excluídos do teste, precisando de uma operação & . Então isso:

nft 'add rule ip filter input ip frag-off & 0x1fff != 0 drop'

Faria isso ...

... mas quando o nf_conntrack_ipv4 é carregado (quase sempre), sua parte específica do nf_defrag_ipv4 é registrada em prioridade de gancho -400 , e irá remontar todos os fragmentos. Isso significa que qualquer processamento depois não verá nenhum fragmento. Então sua cadeia tem que se ligar a um valor de prioridade menor que isso. Aqui está um exemplo completo de trabalho:

nft add table filter
nft 'add chain filter predefrag { type filter hook prerouting priority -450; }'
nft 'add rule ip filter predefrag ip frag-off & 0x1fff != 0 drop'

Indiscutivelmente, o primeiro pacote também é um fragmento com offset 0 mas com MF set. Então talvez 0x1fff deva ser substituído por 0x3fff para pegá-lo.

    
por 11.11.2016 / 01:05
0

tente:

iptables-translate -A INPUT -f -j DROP

resultado:

nft add rule ip filter INPUT ip frag-off != 0 counter drop

iptables-translate comme from (no debian Debian 4.9.82-1 + deb9u3 (2018-03-02) x86_64 GNU / Linux:

apt instalar o iptables-nftables-compat

link

ou nft 'adicionar entrada de filtro de inet de regra ip frag-off 0x4000 counter accept'

    
por 15.05.2018 / 19:23