Parece que o linux já tem um módulo para nftables nf_xfrm, que contém algum código sobre reqid, porém não há descrição sobre isso na página man.
Então, como traduzir o seguinte comando para nftables?
iptables -D FORWARD -s 10.0.0.1/32 -i eth0 -m policy --dir in --pol ipsec --reqid 1 --proto esp -j ACCEPT
A versão nftables , 0.9.0, foi lançada em 2018-06-08 , há mais de um ano, e esse recurso não está disponível nesta versão. Apenas os testes que foram decapsulados estão disponíveis.
ATUALIZAÇÃO : nftables 0.9.1 foi lançado em 24/06/2019, então pode-se esperar que seja empacotado em sua distribuição favorita em breve.
Suporte de kernel para manipulação adicional de ipsec em nftables foi adicionado na versão 4.20 1 . No lado do usuário, o suporte correspondente para recursos ipsec adicionais foi adicionado nas ramificações git master por volta de 2018-09-21 para libnftnl 2 , 3 e nftables 4 , 5 , 6 .
O último patch é o que fornece reqid :
(Bem, não há um exemplo para um ID de solicitação, nem corresponde ao protocolo subjacente que pode não ser implementado, veja mais tarde)
Portanto, para poder usar esse recurso, atualmente, pelo menos, é necessário:
Se a regra iptables do OP for um append em vez de uma exclusão (que atualmente só pode ser feita em nftables usando a palavra- chave handle ), ela deve ser traduzida para isso (incluindo o clichê):
Eu não adicionei
meta ipsec exists
antesipsec in reqid 1
: testar o reqid deve exigir e, portanto, testar já tendo sido sujeito a decapsulação ipsec.O que parece não estar disponível e não mencionado na documentação é o equivalente a
--proto esp
, então não consegui colocar.Se a correspondência do protocolo esp for realmente necessária, pode-se imaginar que usar uma marca no pacote do envelope externo deve fazê-lo, sabendo que a marca é preservada após a decapsulação:
Isenção de responsabilidade: leve com um grão de sal, apenas a sintaxe foi testada (usando nftables de git commit 01e5c6f0ed0315046537612f5a80e506d37a7f8e ). Isso não foi realmente verificado no IPSec. Provavelmente também há uma regra a ser adicionada para 4500/UDP para ESP encapsulado em UDP.
1 netfilter: nf_tables: adiciona expressão xfrm
2 expr: rt: ipsec match support
3 expr: adiciona suporte xfrm
4 src: rt: adiciona suporte para verificar se a rota irá realizar a transformação ipsec
5 src: renomeia meta secpath para meta ipsec
6 src: adiciona expressão ipsec (xfrm)