各位 Linux 、路由、firewalld 、iptables 大佬,
firewalld 对 iptables 的 FORWARD 链是无法操作的,除非用 Direct 接口,否则所有命令维护的都是 INPUT 、OUTPUT 和 POSTROUTING (做 SNAT )以及最多一个 PREROUTING 链(做 DNAT )。
请问是不是这样?查了好多资料,貌似都是说要让 Linux 做路由器,想阻止转发出去的连接,就必须用 iptables 或 firewalld 的 Direct 接口。
比如:一台 Linux 服务器,2 个接口,分别连着内外网。要配置 firewalld 阻止某台内网主机上网,用源 IP 地址判断,就必须用到 Direct 接口。写的 Rich 策略都是无效的,因为它是对传入到本机(路由器自己)的数据包的过滤,也就是 iptables 中的 filter 表的 INPUT 链。
1
tomychen 2020-11-06 15:23:20 +08:00
nat 链优先级高于 filter 链,所以 input/output 无法阻断是对的
iptables 正常操作就是用 forward 链来控制,当然也有比较操蛋的做法就是用 post 或者 pre 里识别到-s 后,给丢到不存在的目标,也能达到效果 firewalld 没用过,但按理应该是可以的。 |