Firewalld:在区域中分配广泛且明确的规则

Firewalld:在区域中分配广泛且明确的规则

我正在尝试firewalld首次设置。我想添加两种类型的规则:

  • 仅允许特定端口上具有特定来源的流量的规则。
  • 允许来自特定来源的所有流量的规则。

假设我创建了一个名为“myZone”的新区域。我想允许来自 的所有流量10.95.0.0/16,但只允许来自 的 LDAP 相关流量10.96.59.23

因此我将源添加到“myZone”:

firewall-cmd --permanent --zone=myZone --add-source=10.95.0.0/16
firewall-cmd --permanent --zone=myZone --add-source=10.96.59.23

现在是时候添加我想要允许流量的 LDAP 端口了:

firewall-cmd --zone=myZone --add-port=389/tcp

但是,这到底有什么用呢?我猜想这会应用于“myZone”中的所有源?我想10.96.59.23仅限制 LDAP 流量,但允许任何流量10.95.0.0/16。我感觉我在这里遗漏了一些基本的东西。

理论上,我认为我可以创建两个区域,比如“workstationZone”和“ldapZone”。然后我可以将端口 389 分配给“ldapZone”。但是,我似乎无法将多个区域分配给单个接口。

# firewall-cmd --zone workstationZone --add-interface ens32 --permanent
success
# firewall-cmd --zone ldapZone --add-interface ens32 --permanent
success
#firewall-cmd --get-active-zones
workstationZone
  interfaces: ens32
  sources: 10.95.0.0/16
ldapZone
  sources: 10.96.59.23

我希望我的“ens32”接口能够被添加到两个区域。

我看到的另一种选择是使用“丰富规则”,但是似乎有很多建议避免使用它们,因为它们难以维护。

再次,我感觉我错过了一些非常基本的东西,但即使读了几本指南,我还是不明白。如果有人能帮我纠正,我将不胜感激。

答案1

如果允许的流量在源/接口之间有所不同,则应创建新区域。区域定义一组允许的流量,然后将其应用于指定的接口和/或源网络。

例如,您可以有一个允许所有流量的区域(默认情况下已经存在;它被称为trusted),另一个允许 LDAP 流量的区域,以及另一个允许其他一些服务集的区域。

请注意,一个接口或源只能位于一个区域中,因此您应该将每个接口或源分配给一个区域,并且该区域允许的流量将应用于该接口或源。这可能意味着您需要创建另一个区域,但这完全没问题。

记得你不应该使用--permanent直到您满意规则的有效性。否则,您可能会因拼写错误而无法继续,并且需要启动救援环境才能恢复。相反,请添加您的规则,一旦您满意它们都有效,请使用firewall-cmd --runtime-to-permanent保存它们。(如果您因拼写错误而无法继续,重新启动防火墙或计算机将恢复所有未保存的更改。)

Zone另外,还可以节省一些输入时间。区域名称中的单词是多余的。

相关内容