RHEL7 / CentOS7提供了一个新的firewalld服务,取代了iptables service (两者都使用iptables工具与内核的Netfilter进行交互)。
firewalld可以很容易地调整,以阻止传入的stream量,但正如1, 5年前的Thomas Woerner所指出的那样,“目前以简单的方式限制输出stream量在Firewalld中是不可能的”。 而且据我所知,从那以后情况一直没有改变。 还是有呢? 有没有办法阻止外出stream量与firewalld ? 如果没有,除了通过iptables工具手动添加规则外,还有其他“标准”方式(在RHEL7发行版上)阻止传出stream量?
我没有在那个漂亮的GUI中find任何选项,但是可以通过直接的界面
只启用传出端口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
在自己问了同样的问题之后,我有了一些修改,我已经收集了一些很好的规则来限制传出stream量到HTTP / HTTPS和DNS查询:
允许build立连接:
# 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
首先通过省略“ – 永久”论证来进行testing可能是一个好主意。
我不是一个专家,但这似乎工作正常我:)
关于GUI; 我想你可以在“ 直接configuration ”下find它。 要访问它,你必须在“ 查看 ”中select它。 我可能是错的。
边注
删除规则; 你必须退出,然后重新进入。