防火墙 CentOS 7 伪装

Jac*_*son 9 firewalld centos7

我正在尝试在 firewalld 中执行与此 iptables 规则等效的操作

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

小智 8

要在外部区域上设置伪装,请键入:

# firewall-cmd --zone=external --add-masquerade
Run Code Online (Sandbox Code Playgroud)

external:用于启用伪装的外部网络,尤其是路由器。您不相信网络上的其他计算机不会损害您的计算机。仅接受选定的传入连接。

internal:用于内部网络。您大多相信网络上的其他计算机不会损害您的计算机。仅接受选定的传入连接。

以供参考:

http://www.certdepot.net/rhel7-get-started-firewalld/

  • 在您的配置中也没有提到“10.8.0.0/24”。 (2认同)

aro*_*r11 5

或者,您可以将规则添加到您的:/etc/firewalld/direct.xml文件中,例如。

<?xml version="1.0" encoding="utf-8"?>
<direct>
...
  <rule priority="0" table="filter" ipv="ipv4" chain="POSTROUTING">-table nat -jump MASQUERADE --source 10.8.0.0/24 --out-interface eth0</rule>  
</direct>
Run Code Online (Sandbox Code Playgroud)

然后:

firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)

  • 应该坚决强调,接受的答案是不正确的,因为它显示了如何创建伪装/NA​​T 配置,但前提是您希望伪装“eth0”出口上的所有流量。无法仅通过简单的 `--add-masquerade` 指令来伪装来自子网的流量;必须使用直接规则(如上述答案中所述)。 (3认同)