Eu gostaria de configurar uma regra simples de encaminhamento (não encaminhamento de porta!) no FreeBSD 12.3 que filtra com base na interface de recepção e na interface de saída. As redes IP não devem fazer parte da regra, pois funciona como um roteador para todos os tipos de IPs. As redes roteadas serão definidas dinamicamente por um daemon de roteamento (BIRD com OSPF).
No FreeBSD usando PF eu só posso definir uma ifspec
regra por filtro ( [ "on" ifspec ]
) conforme man 5 pf.conf :
pf-rule = action [ ( "in" | "out" ) ]
[ "log" [ "(" logopts ")"] ] [ "quick" ]
[ "on" ifspec ] [ route ] [ af ] [ protospec ]
hosts [ filteropt-list ]
Eu gostaria que a combinação de interface de entrada e interface de saída correspondesse. Como eu posso fazer isso?
No Linux usando nft
/nftables eu faria isso:
define iface_site2site = { "tun0", "tun1", "tun9" }
[...]
chain forward {
type filter hook forward priority 0;
policy drop;
iifname $iface_site2site oifname $iface_site2site accept \
comment "Freely forward packets between site-to-site links, firewalled at final destination."
}
[...]
No Linux usando iptables
eu faria isso:
iptables -A [...] --in-interface tun+ --out-interface tun+ -j ACCEPT
Como posso fazer o acima no FreeBSD?
Apenas para ser claro; Não estou procurando por encaminhamento de porta ou regras NAT.