RHEL7/CentOS7 具有新的firewalld
防火墙服务,它取代了iptables service
(两者都使用iptables
工具与底层内核的 Netfilter 进行交互)。
firewalld
可以轻松调整以阻止传入流量,但正如 Thomas Woerner 所言1.5 年前“目前无法使用防火墙以简单的方式限制传出流量”。据我所知,从那时起情况就没有改变。或者有改变吗?有没有办法阻止传出流量firewalld
?如果没有,除了通过工具手动添加规则外,还有其他“标准”方法(在 RHEL7 发行版上)来阻止传出流量吗iptables
?
答案1
我没有在那个漂亮的 GUI 中找到任何选项,但可以通过直接界面找到
仅启用传出端口 80:
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p tcp -m tcp --dport=80 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP
这会将其添加到永久规则,而不是运行时规则。
您需要重新加载永久规则,以便它们成为运行时规则。
firewall-cmd --reload
显示永久规则
firewall-cmd --permanent --direct --get-all-rules
显示运行时规则
firewall-cmd --direct --get-all-rules
答案2
在我自己问了同样的问题并进行了一些调整之后,我收集了一些限制传出流量到 HTTP / HTTPS 和 DNS 查询的规则:
允许建立连接:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -m state --state ESTABLISHED,RELATED -j ACCEPT
允许 HTTP:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT
允许 HTTPS:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT
允许 DNS 查询:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p tcp -m tcp --dport 53 -j ACCEPT
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -p udp --dport 53 -j ACCEPT
否认其他一切:
# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -j DROP
首先通过省略“--permanent”参数进行测试可能是一个好主意。
我绝不是专家,但这对我来说似乎很有效:)
答案3
关于 GUI;我认为你可以在“直接配置“。要访问它,您必须在“看法“。我可能是错的。
边注
要删除规则;您必须退出然后重新进入。