我想在 FreeBSD 12.3 上设置一个简单的转发规则(不是端口转发!),它根据接收接口和外出接口进行过滤。IP 网络不应成为规则的一部分,因为它就像所有类型 IP 的路由器一样。路由网络将由路由守护程序(带有 OSPF 的 BIRD)动态设置。
在使用 PF 的 FreeBSD 中,我只能按照man 5 pf.confifspec
为每个过滤规则 ( [ "on" ifspec ]
)设置一个:
pf-rule = action [ ( "in" | "out" ) ]
[ "log" [ "(" logopts ")"] ] [ "quick" ]
[ "on" ifspec ] [ route ] [ af ] [ protospec ]
hosts [ filteropt-list ]
我希望输入接口和输出接口的组合匹配。我怎样才能做到这一点?
在使用nft
/nftables 的 Linux 中,我会这样做:
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."
}
[...]
在 Linux 中使用iptables
我会这样做:
iptables -A [...] --in-interface tun+ --out-interface tun+ -j ACCEPT
如何在 FreeBSD 上进行上述操作?
只是要清楚; 我不是在寻找端口转发或 NAT 规则。