Linux-firewalld防火墻

一、firewalld防火墻有幾個區域,每個區域有什么作用,每個區域添加或刪除規則有什么影響?

firewalld 是 Linux 系統中動態管理防火墻的工具,其核心功能是通過 區域(Zones) 和 服務(Services) 來控制網絡流量的訪問權限。

Firewalld使用區域來管理不同的網絡接口和流量。每個區域有不同的規則集,根據接口的信任級別分配不同的區域。常見的區域包括public、trusted、internal、external、dmz、work、home等。每個區域有不同的預定義規則,適用于不同的網絡環境。public區域通常用于公共網絡,信任度最低,只允許必要的服務;而trusted區域信任所有流量。

在某個區域中添加服務或端口會允許相應的流量,而刪除則會阻止。同時,需要提到區域之間的優先級和規則覆蓋的問題,比如一個接口只能屬于一個區域,所以規則的改變會影響該接口的流量。再比如,將公共接口放在public區域,并限制SSH訪問,而內部網絡可能使用home或work區域,允許更多服務。

1、firewalld 的默認區域

firewalld 默認提供 9 個區域,每個區域對應不同的網絡信任級別和用途:

區域名稱     信任級別            適用場景                              默認允許的服務/端口
public        低              公共網絡(如互聯網)                 SSH、DHCPv6 Client、dhcpv6(僅限 IPv6)
trusted     最高        信任所有流量(內部網絡或物理直連設備)        所有流量
internal    中           內部網絡(如企業內網)                     SSH、HTTP、HTTPS、Samba
external   中           對外暴露的網關或路由器(NAT 轉發)           SSH、HTTP、HTTPS
dmz         低          隔離區(對外公開的服務器,如 Web 服務器)     SSH、HTTP、HTTPS
work        中         工作網絡(同事或合作伙伴)                    SSH、HTTP、HTTPS、CUPS(打印服務)
home      中          家庭網絡                                      SSH、HTTP、HTTPS、Samba、FTP
block      無          阻止所有傳入連接                              無
drop      無           丟棄所有傳入連接(無響應)                      無
2、每個區域的作用

(1) public(公共網絡)
用途:默認區域,用于面向互聯網的接口(如服務器公網網卡)。
特點:僅允許預定義的少量服務(如 SSH、DHCPv6)。
典型場景:Web 服務器、數據庫服務器的公網接口。

(2)trusted(信任區域)
用途:信任所有流量,通常用于內部網絡或物理直連設備。
特點:允許所有入站和出站流量。
典型場景:內部實驗室網絡、跳板機。

(3)internal(內部網絡)
用途:企業內網或家庭網絡,信任部分流量。
特點:允許 SSH、HTTP/HTTPS、Samba 等服務。
典型場景:企業內部服務器的私有接口。

(4)external(外部網絡)
用途:對外暴露的網關或路由器(如 NAT 轉發)。
特點:允許 SSH、HTTP/HTTPS,通常用于 NAT 和端口轉發。
典型場景:家庭路由器的 WAN 接口。

(5)dmz(隔離區)
用途:對外公開的服務器(如 Web 服務器),但與其他內部網絡隔離。
特點:僅允許 SSH、HTTP/HTTPS。
典型場景:DMZ 中的 Web 服務器公網接口。

(6)work(工作網絡)
用途:同事或合作伙伴的網絡,信任程度中等。
特點:允許 SSH、HTTP/HTTPS、CUPS(打印服務)。
典型場景:辦公室內部網絡。

(7)home(家庭網絡)
用途:家庭網絡,信任程度較高。
特點:允許 SSH、HTTP/HTTPS、Samba、FTP。
典型場景:家庭NAS或家庭服務器。

(8)block/drop(阻斷/丟棄)
用途:完全禁止網絡訪問(用于隔離或調試)。
特點:無服務或端口開放,直接阻斷所有流量。
典型場景:臨時禁用網絡接口。

3、區域規則的影響
1. 添加規則
允許服務/端口:
例如,在 public 區域添加 http 服務,會開放 TCP 80 端口。
firewall-cmd --zone=public --add-service=http --permanent
影響:公網接口的 HTTP 流量被允許,可能增加攻擊面。

刪除規則:
例如,從 public 區域刪除 ssh 服務:
firewall-cmd --zone=public --remove-service=ssh --permanent
影響:公網接口的 SSH 連接被拒絕,需通過其他區域或端口訪問。


2. 區域切換
接口綁定區域:
例如,將網卡 eth0 分配到 dmz 區域:
firewall-cmd --zone=dmz --change-interface=eth0

影響:eth0 接口的流量將遵循 dmz 區域的規則(僅允許 SSH/HTTP/HTTPS)。

3. 規則優先級
區域優先級:
firewalld 按區域優先級(從高到低)處理流量,高優先級區域的規則覆蓋低優先級區域。
例如,若網卡同時屬于 public 和 trusted 區域(通常不會),以更高優先級的規則為準。
4.操作建議及驗證規則
默認區域選擇:
服務器公網接口:使用 public 區域,僅開放必要服務(如 SSH、HTTP/HTTPS)。
內部網絡接口:使用 internal 或 trusted 區域,開放更多服務。

避免直接使用 trusted 或 drop:
trusted 區域無限制,可能暴露敏感服務。
drop 區域會直接斷開現有連接,需謹慎操作。

備份配置:
修改前導出當前配置:
firewall-cmd --runtime-to-permanent
cp /etc/firewalld/zones/*.xml /backup/

#驗證規則
查看當前區域規則:
firewall-cmd --zone=public --list-all

測試連接:
telnet <your-server-ip> 80  # 測試 HTTP 是否開放
總結
區域的核心作用:根據網絡信任級別,預定義允許的流量規則。
規則操作影響:

添加規則:開放流量,可能引入風險。
刪除規則:阻斷流量,可能導致服務不可用。

最佳實踐:
按網絡環境選擇合適的區域(如公網用 public,內網用 internal)。
通過富規則(Rich Rules)進一步細化訪問控制(如 IP 白名單)

二、文件 /etc/firewalld/zones/public.xml

firewalld使用區域(zones)和服務(services)來管理網絡流量。每個區域有不同的規則,服務則是預定義的規則集合,允許特定的端口和協議。
public.xml屬于public區域,通常是默認區域,適用于公共網絡,如互聯網.

直接刪除或注釋掉或者不包含該服務。無論哪種情況,結果都是public區域不再允許SSH流量。這會導致通過public區域(比如外部網絡接口)的SSH連接被拒絕,除非有其他規則允許,比如富規則或直接添加的端口。
但需要注意,如果在另一個區域(如internal)中啟用了ssh服務,并且接口被分配到該區域,則SSH仍然可用。
此外,如果手動打開了22端口(比如通過),即使沒有服務條目,端口仍然開放。因此,去掉服務條目并不一定完全禁止SSH,還要看其他配置。
服務條目和直接端口開放的差異。服務條目更易于管理,因為它們使用預定義的端口和協議,而手動添加端口需要更多維護。
如果用戶刪除了服務條目,但后續更新firewalld時重新生成配置,可能會恢復該條目,導致變化被覆蓋。
還需要考慮潛在的影響,比如如果用戶依賴public區域的SSH訪問,去掉服務條目會導致無法遠程連接,必須通過其他方式(如本地控制臺)恢復配置,建議謹慎操作,確保有備用訪問方式或者在修改前備份配置文件。

總結來說,涵蓋以下幾點:
作用:允許SSH流量通過public區域。
去掉后的影響:public區域不再允許SSH,可能導致遠程連接失敗。
其他可能允許SSH的情況:其他區域、手動端口開放等。
操作建議:備份配置,檢查其他區域設置,確認是否有替代規則。

操作建議

(1) 修改前確保有備用訪問方式
在刪除 <service name="ssh"/> 前,確保已配置其他訪問途徑(如密鑰認證、跳板機或本地控制臺)。

(2) 替代方案:限制而非完全禁用
僅允許特定 IP 訪問 SSH:
使用富規則替代直接刪除服務,例如:
<!-- 在 public.xml 中添加 -->
<rule family="ipv4">
  <source address="192.168.1.0/24"/>
  <service name="ssh"/>
</rule>

(3) 檢查其他區域配置
確認服務器的其他網絡接口是否分配到了其他區域(如 trusted),這些區域可能仍允許 SSH。

(4)驗證
查看當前生效的規則:
firewall-cmd --zone=public --list-all
輸出中若無 services: ssh,則表示 SSH 服務已從 public 區域移除。
測試 SSH 連接:
從外部設備嘗試連接,確認是否被拒絕。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容