使用firewalld阻止RHEL7 / CentOS7上的传出连接?

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它。 我可能是错的。

边注

删除规则; 你必须退出,然后重新进入。