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


12

RHEL7 / CentOS7具有一项新的firewalld防火墙服务,该服务取代了iptables service(两者均使用iptables工具与下面的内核Netfilter进行交互)。

firewalld可以很容易地进行调整,以阻止传入流量,但是正如1. 5年前的Thomas Woerner所指出的那样, “目前无法通过简单的方法限制防火墙的传出流量”。据我所知,此后情况没有改变。还是有?有什么方法可以阻止传出流量firewalld吗?如果没有,除了通过iptables工具手动添加规则外,是否还有其他“标准”方式(在RHEL7发行版上)阻止传出流量?

Answers:


13

我没有在该漂亮的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

如何使用实际的丰富规则语言实现这一目标?
Casey

@Casey据我所知,丰富的规则严格用于INPUT链。
赖斯

我认为以上规则仅适用于ipv4(iptables)。对于ipv6(对于ip6tables)或eb(对于ebtables),可能需要有类似的规则。
mwfearnley '19

另外,这杀死了我与服务器的SSH连接!有关如何保留已建立的连接,请参见user253068的答案。
mwfearnley '19

6

在我自己问了同样的问题并进行了一些修补之后,我收集了一些不错的规则来限制对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”参数来进行测试可能是一个好主意。

我绝不是专家,但这对我来说似乎还不错:)


在某些时候,您可能会发现删除规则很有用。删除单个直接规则似乎很棘手,但是对于大锤来说,firewall-cmd [--permanent] --direct --remove-rules ipv4 filter OUTPUT将可以批量删除。
mwfearnley '19

1

关于GUI;我认为您可以在“ 直接配置 ” 下找到它。要访问它,必须在“ 视图 ”中选择它。我可能是错的。

边注

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.