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保存它們。 (如果您因拼字錯誤而將自己鎖在門外,重新啟動firewalld或電腦將恢復所有未儲存的變更。)

另外,還可以省下一些打字時間。Zone區域名稱中的單字是多餘的。

相關內容