![防火墙伪装配置不起作用](https://linux22.com/image/784930/%E9%98%B2%E7%81%AB%E5%A2%99%E4%BC%AA%E8%A3%85%E9%85%8D%E7%BD%AE%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我正在使用 RHEL 8,并尝试使用防火墙命令设置 NAT/MASQUERADE。到目前为止,我拥有公共区域中的所有网络接口和服务。eno8303 是内部网卡,eno8403 是外部网卡。这是我的程序,但我无法让它工作:-
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -o eno8303 -j MASQUERADE sudo firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i eno8403 -m state --state ESTABLISHED,RELATED -j ACCEPT
编辑 /etc/sysctl.conf 以包含设置
net.ipv4.ip_forward = 1
然后 sysctl -p /etc/sysctl.conf
期望能够使用服务器作为内部网关但什么也没有发生。
答案1
您的配置有问题,您应该使用外部 NICeno8403
作为输出接口,而不是内部 NIC。
解决方法如下:首先设置 NAT,sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -o eno8403 -j MASQUERADE
然后设置转发规则
sudo firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i eno8303 -o eno8403 -j ACCEPT
sudo firewall-cmd --permanent --direct --passthrough ipv4 -A FORWARD -i eno8403 -o eno8303 -m state --state ESTABLISHED,RELATED -j ACCEPT
然后重新加载sudo firewall-cmd --reload
然后转到/etc/sysctl.conf
并添加
net.ipv4.ip_forward = 1
然后你申请,它应该有效sudo sysctl -p /etc/sysctl.conf