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

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

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;我认为你可以在“直接配置“。要访问它,您必须在“看法“。我可能是错的。

边注

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

相关内容