我怎样才能允许来自某些主机网络A(eth0
接口后面)的流量通过我的centos 7盒子到达网络B(后面的一些主机eth1
)。
网络A:1.1.1.0/24
网络B:2.2.2.0/24
防火墙接口:
以太网1:1.1.1.1
以太坊2:2.2.2.1
源主机:1.1.1.30
目的地:2.2.2.45 port 80/tcp and 2.2.2.46 port 80/tcp
转发已打开且已iptables
禁用,我可以从 访问 Web 服务器1.1.1.30
。
我怎样才能实现这一点firewall-cmd
?
答案1
首先,确保禁用 IPTABLES 服务,因为 FirewallD 和 IPTABLES 服务不能同时共存。
要禁用 IPTABLES,请执行# systemctl stop iptables
接下来确保启用并启动 FirewallD 服务;
# systemctl start firewalld && systemctl enable firewalld
现在,您需要将每个可用接口(在本例中为 eth0 和 eth1)分配给默认情况下在 firewalld 上可用的特定网络区域。
假设; eth0 属于内部区域(网络-A) 和 eth1 属于公共区域(网络-B)。要做到这一点;
# firewall-cmd --permanent --zone=internal --add-interface=eth0
# firewall-cmd --permanent --zone=public --add-interface=eht1
现在您的防火墙设置已完成。至于配置规则,例如,允许来自主机的http流量驻留在网络-A您需要在内部区域设置入站规则;
# firewall-cmd --permanent --zone=internal --add-service=http
此外,您需要在 public-zone 上启用 masquerade,以便在 IP 地址发送到网络 B 时对其进行转换
# firewall-cmd --permanent --zone=public --add-masquerade
最后,重新加载 FirewallD 守护进程以使更改生效
# firewall-cmd --reload
列出区域上的规则,例如内部区域上的规则
# firewall-cmd --zone=internal --list-all