firewalld 允许在 NIC 之间进行无需 NAT 的路由

firewalld 允许在 NIC 之间进行无需 NAT 的路由

作为网络管理员,我经常必须在运送远程站点之前设置网络设备。

我发现使用带有两个网卡的 Linux 工作站很方便,将辅助 NIC 设置为与我正在设置的设备将在远程站点中使用的同一子网中的 IP 地址。

公司网络--(eth0)-- fedora --(eth1)--- 配置网络

我已经启用了通过工作站的路由,并且可以将路由添加到指向 Linux 工作站的主 NIC 的新子网,并且可以通过工作站 ping 到我正在设置的网络设备,但 tcp 连接在不关闭的情况下无法通过关闭防火墙。

我查看了 GUI 并搜索了如何添加一条规则,允许任何发往配置网络 NIC 设备名称的流量,但我找到的所有条目都希望将内部网络 NAT/伪装到外部,而我不这样做不想这样做 - 我偶尔需要允许其他站点的同事访问配置网络,因此伪装没有用

此外,对于我正在设置的每个设备或一组设备,配置网络的 IP 地址通常都不同,这就是为什么我希望找到一种通过接口名称与 IP 地址来设置规则的方法。

Firewalld 的丰富规则有一个“目标”字段,但它似乎只采用地址/掩码,而不采用接口。

有任何想法吗?我猜我将陷入恢复 iptables 与 firewalld 的困境,并且也欢迎将 Fedora 29 从 firewalld 切换到 iptables 和 iptables 命令来完成此规则的建议。

答案1

在以下位置提到了一种折衷方案https://www.liisenet.com/2016/firewalld-rich-and-direct-rules-setup-rhel-7-server-as-a-router/

看起来它涉及使用“直接”规则,将原始 iptables 规则添加到firewalld.

您请求允许向任一方向转发。如果我没看错的话,应该是这样的:

firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth1 -o eth2  -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth2 -o eth1  -j ACCEPT

在不了解更多细节的情况下,我不会推荐这项政策。这意味着“公司网络”可能会扫描您的配置网络以查找具有硬编码默认密码的盒子。并非个人批评;只是给其他阅读本文的人的注释。

一种考虑因素可能是将转发限制为 SSH、HTTPS 和 HTTP 端口。万一您没有考虑到端口上有任何“密码恢复”或“调试”机制:-)。

相关内容