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”界面將被添加到兩個區域。
我看到的另一個選擇是使用“豐富的規則”,但是由於它們難以維護,似乎有很多建議避免使用它們。
再一次,我覺得我錯過了一些完全基本的東西,但即使在閱讀了幾本指南之後,我還是不明白。如果有人可以幫助我直截了當,將不勝感激。
如果源/介面之間允許的流量不同,則應創建新區域。區域定義一組允許的流量,然後將其應用於指定的介面和/或源網路。
例如,您可以有一個允許所有流量的區域(預設情況下已經存在;它被稱為
trusted
),另一個允許 LDAP 流量的區域,以及另一個允許其他一些服務集的區域。請注意,一個介面或源只能位於一個區域中,因此您應該將它們中的每一個分配給一個區域,並且該區域允許的流量將應用於該介面或源。這可能意味著您需要創建另一個區域,但這很好。
請記住,在您對規則工作感到滿意之前,您不應該使用。
--permanent
否則,您可能會因拼寫錯誤而將自己鎖定,並需要啟動到救援環境才能恢復。相反,添加您的規則,一旦您對它們都工作感到滿意,請使用firewall-cmd --runtime-to-permanent
保存它們。(如果您因輸入錯誤而將自己鎖定,重新啟動 firewalld 或電腦將恢復您所有未保存的更改。)另外,節省一些打字時間。區域名稱中的單詞
Zone
是多餘的。