Linux——firewalld防火墻(筆記)

目錄

一:Firewalld防火墻的概述

(1)firewalld簡介

(2)firewalld&iptables的關系

(3)firewalld與iptables service的區別

1. ?規則管理方式?

2. ?默認策略與設計邏輯?

3. ?配置文件與持久化?

4. ?適用場景與兼容性?

5. ?底層實現與擴展性?

二:Firewalld網絡區域

三:Firewalld防火墻firewall——cmd命令設置

1、獲取預定義信息

2、區域管理

3、服務管理

4、端口管理

5、兩種配置模式


一:Firewalld防火墻的概述

(1)firewalld簡介

? ? 它的主要作用為包過濾機制提供匹配規則(或策略),通過各種不同的規則告訴net filter對來自指定源、前往指定目的或具有某些協議特征的數據包采取何種處理方式為了更加方便地組織和管理防火墻。

? ? firewalld提供了支持網站區域所定義的網絡鏈接以及接口安全等級的動態防火墻管理工具,其設計以?區域(Zone)?和?服務(Service)?為核心,簡化了傳統防火墻規則的配置流程。并且擁有兩種配置模式:短暫性配置與永久性配置,支持服務或應用程序直接添加防火墻規則接口。

(2)firewalld&iptables的關系

? ? firewalld自身并不具備防火墻的功能,而是和iptables一樣需要通過內核的net filter來實現。他們的作用都是用于維護規則,而真正使用規則干活的是內核的net filter,然而他們的結構以及使用方法并不相同。

? ? 系統提供了圖形化的配置工具firewall-config、system-config-firewall,提供命令行客戶端firewall-cmd,用于配置firewalld永久性或非永久性運行時間的改變:依次用iptables工具與執行數據包篩選的內核中的Netfilter通信。邏輯如下:

? ? iptables服務和firewalld都是通過iptables命令與內核netfilter進行交互的。在Euler系統中,我們仍然可以使用iptables命令來管理我們的防火墻。唯一不同的是當我們重啟服務器或重啟firewalld時,iptables命令管理的規則不會自動加載,反而會被firewalld的規則代替。?

(3)firewalld與iptables service的區別

1. ?規則管理方式?
  • ?Firewalld?
    • 采用動態規則管理,支持運行時修改單條規則,無需重啟服務即可生效(臨時規則),永久規則需配合?--permanent?參數保存?。
    • 規則更新時不會中斷現有網絡連接?。
  • ?iptables?
    • 規則修改后需全量刷新(iptables-restore?或?service iptables restart),導致現有連接可能中斷?。
    • 所有規則通過鏈式結構(INPUT/OUTPUT/FORWARD 等)管理,需手動維護規則順序?。

2. ?默認策略與設計邏輯?
  • ?Firewalld?
    • 默認拒絕所有流量,需顯式開放服務或端口(如 HTTP、SSH)?。
    • 以?區域(Zone)?為核心,根據網絡接口或源 IP 自動匹配規則(如?publictrusted),適用于多網絡環境切換?。
  • ?iptables?
    • 默認允許所有流量,需顯式拒絕不需要的訪問?。
    • 基于?接口?和?鏈式規則?,直接控制具體端口或協議,適合精細化但復雜度高的場景?。

3. ?配置文件與持久化?
  • ?Firewalld?
    • 配置文件以 XML 格式存儲于?/etc/firewalld/,支持自定義服務模板和區域規則?68。
    • 臨時規則與永久規則分離,需通過?--reload?同步配置?。
  • ?iptables?
    • 規則保存于文本文件?/etc/sysconfig/iptables,直接編輯后需手動加載?。
    • 所有規則修改需顯式保存(service iptables save)才能持久化?。

4. ?適用場景與兼容性?
  • ?Firewalld?
    • 適合動態網絡環境(如頻繁切換信任區域)及追求配置便捷性的場景?。
    • 默認集成于 CentOS/RHEL 7+ 等現代 Linux 發行版?。
  • ?iptables?
    • 兼容老舊系統(如 CentOS 6 及更早版本),適合需要復雜規則(如深度包檢測、自定義鏈)的場景?。
    • 與 Firewalld 沖突,二者不可同時啟用?。

5. ?底層實現與擴展性?
  • ?共同點?
    • 均依賴內核的 Netfilter 框架,實際流量控制由內核模塊完成?。
  • ?差異點?
    • Firewalld 可通過直接接口(Direct Interface)調用 iptables 語法添加自定義規則?。
    • iptables 提供更底層的控制,支持 NAT、流量整形等高級功能?。

二:Firewalld網絡區域

? ? firewalld將所有的網絡數據流量劃分為多個區域,從而簡化防火墻管理。根據數據包的源IP地址或傳入網絡接口等條件,將數據流量傳入相應區域的防火墻規則。對于進入系統的數據包,首先檢查的就是其源地址。邏輯如下:

  • 若源地址關聯到特定的區域,則執行該區域所制定的規則。
  • 若源地址未關聯到特定的區域,則使用傳入網絡接口的區域并執行該區域所指定的規則。
  • 若網絡接口未關聯到特定的區域,則使用默認區域并執行該區域所制定的規則。

? ? 默認區域不是單獨的區域,而是指向系統上定義的某個其他區域。默認情況下,默認區域是public,但是系統管理員可以更改默認區域。以上匹配規則,按照先后順序,第一個匹配的規則勝出。

? ? 在每個區域中都可以配置其要打開或者關閉的一系列服務或端口,firewalld的每個預定義的區域都設置了默認打開的服務。預定義區域說明如下:

區域默認策略規則
trusted允許所有的數據包
home拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh、mdns、ipp-client、amba-clent與dhcpv6-client服務相關,則允許流量
internal

拒絕流入的流量,除非與流出的流量數相關;而如果流量與ssh、ipp-client與dhcpv6-client服務相關,則允許流量

work拒絕流入的流量。除非與流出的流量相關;而如果流量與ssh、dhcpv6-client服務相關,則允許流量
public拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh、dhcpv6-client服務相關,則允許流量
external拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh服務相關,則允許流量
dmz拒絕流入的流量,除非與流出的流量相關;而如果流量與ssh服務相關,則允許流量
block拒絕流入的流量,除非與流出的流量相關
drop拒絕流入的流量,除非與流出的流量相關

三:Firewalld防火墻firewall——cmd命令設置

1、獲取預定義信息

? ? firewal1-cmd 預定義信息主要包括三種:可用的區域、可用的服務以及可用的 ICMP 阻塞類型,具體的查看命令如下所示。
?

[root@localhost ~]# firewall-cmd --get-zones
work drop internal external trusted home dmz public block
[root@localhost ~]# firewall-cmd --get-service
RH-Satellite-6 amanda-client amanda-k5-client baculabacula-client cephceph-mondhcp
dhcpv6 dhcpv6-client dnsdocker-registry dropbox-lansyncfreeipa-ldap
...    ...    //省略部分內容
transmission-clientvdsmvnc-serverwbem-https xmpp-bosh xmpp-client xmpp-local
xmpp-server
[root@localhost ~]# firewall-cmd --get-icmptypes
...    ...    //省略部分內容
timestamp-request

? ? firewall-cmd --get-icmptypes 命令的執行結果中各種阻塞類型的含義分別如下:

阻塞類型含義
destination-unreachable目的地址不可達
echo-reply應答回應(pong)
parameter-problem參數問題
redirect重新定向
router-advertisement路由器通告
router-solicitation路由器征尋
source-quench源端抑制
time-exceeded超時
timestamp-reply時間戳應答回應
timestamp-request時間戳請求

2、區域管理

? ? 使用firewall-cmd命令可以實現獲取和管理區域,為指定區域綁定網絡接口等功能。區域管理選項說明如下:?

選項說明
--get-default-zone顯示網絡連接或接口的默認區域
--set-default-zone=<zone>設置網絡連接或接口的默認區域
--get-active-zones顯示已激活的所有區域
--get-zone-of-interface=<interface>顯示指定接口綁定的區域
--zone=<zone> --add-interface=<interface>為指定接口綁定區域
--zone=<zone> --change-interface=<interface>為指定的區域更改綁定的網絡接口
--zone=<zone> --remove-interface=<interface>為指定的區域刪除綁定的網絡接口
--list-all-zones顯示所有區域及其規則
[--zone=<zone>] --list-all顯示所有指定區域的所有規則

具體操作如下:

(1)顯示當前系統中的默認區域.

[root@localhost ~]# firewall-cmd --get-default-zone
public

(2)顯示默認區域的所有規則。
?

[root@localhost ]# firewall-cmd -list-all
public(active)target: default
icmp-block-inversion:no
interfaces:ens160
sources:
services:dhcpv6-client ssh
ports:
protocols:
masquerade:no
forward-ports:
sourceports:
icmp-blocks:rich rules:

(3)顯示網絡接口 ens160 對應區域。

[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens160
public

(4)將網絡接口 ens160 對應區域更改為 internal 區域,

[root@localhost ~]# firewall-cmd --zone=internal --change-interface=ens160
The interface is under control of NetworkManager, setting zone to 'internal'. success
[root@localhost ~]# firewall-cmd --zone=internal --list-interfaces
ens160
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens160
internal

(5)顯示所有激活區域.

[root@localhost ~]# firewall-cmd--get-active-zones
internal
interfaces:ens160?

3、服務管理

? ? 為了方便管理,firewalld 預先定義了很多服務,存放在 /usr/lib/firewalld/services/ 目錄中,服務通過單個的 XML配置文件來指定。這些配置文件則按以下格式命名:service-name.xml,每個文件對應一項具體的網絡服務,如 ssh 服務等。service 配置具有以下優點:

  • 通過服務名字來管理規則更加人性化;
  • 通過服務來組織端口分組的模式更加高效。如果一個服務使用了若干個網絡端口,則服務的配置文件就相當于提供了到這些端口的規則管理的批量操作快捷方式。

? ? 下列為firewall-cmd命令區域中服務管理的常用選項:

參數作用
--get-default-zone查訪默認的區域名稱
--set-default-zone=<區域名稱>設置默認的區域,使其永久生效
--get-zones顯示可以的區域
--get-services顯示預定義的服務
--get-active-zones顯示當前正在使用的區域、來源地址和網卡名稱
--add-source=將源自此IP或子網的流量導向指定的區域
--remove-source=不再將源自此IP或子網的流量導向這個區域
--add-interface=<網絡名稱>將源自該網卡的所有流量都導向某個指定區域
--change-interface=<網卡名稱>將某個網卡與區域進行關聯
--list-all顯示當前區域的網卡配置參數、資源、端口以及服務等信息
--list-all-zones顯示所有區域的網卡配置參數、資源】端口以及服務等信息
--add-service=<服務名>設置默認區域允許該服務的流量
--add-port=<端口號/協議>設置默認區域允許該端口的流量
--remove-service=<服務號>設置默認區域不再允許該服務的流量
--remove-port=<端口號/協議>設置默認區域不再允許該端口的流量
--reload讓“永久生效”的配置規則立即生效,并覆蓋當前的配置規則
--panic-on開啟應急狀態模式
--panic-off關閉應急狀態模式

(1)為默認區域設置允許訪問的服務。

[root@localhost ~]# firewall-cmd --list-services    //顯示默認區域內允許訪問的所有服務
dhcpv6-clientssh
[root@localhost ~]# firewall-cmd --add-service=http    //設置默認區域允許訪問 http 服務
success
[root@localhost ~]# firewall-cmd --add-service=https    //設置默認區域允許訪間 https 服務
success
[root@localhost ~]# firewall-cmd --list-services
dhcpv6-client ssh http https

?(2)為 internal 區域設置允許訪問的服務,

[root@localhost ~]# firewall-cmd --zone=internal --add-service=mysql    //設置 internal 區域允許訪問 mysq1 服務
success
[root@localhost~]# firewall-cmd --zone=internal--remove-service=samba-client    //設置 internal 區域不允許訪問 samba-client 服務
success
[root@localhost ~]# firewall-cmd --zone=internal --list-services    //顯示 internal 區域內允許訪問的所有服務
ssh mdns dhcpv6-client mysql

4、端口管理

? ? 在進行服務配置時,預定義的網絡服務可以使用服務名配置,服務所涉及的端口就會自動打開。但是,對于非預定義的服務只能手動為指定的區域添加端口。例如,執行以下操作即可實現在 internal 區域打開 443/TCP 端口。

[root@localhost ~]# firewall-cmd --zone=internal--add-port=443/tcp
success

? ? 若想實現在 internal 區域禁止 443/TCP 端口訪問,可執行以下命令。

root@localhost ~]# firewall-cmd --zone=internal --remove-port=443/tcp
success

5、兩種配置模式

? ? 前面提到 firewall-cmd 命令工具有兩種配置模式:運行時模式表示當前內存中運行的防火墻配置,在系統或 firewalld 服務重啟、停止時配置將失效;永久模式表示重啟防火墻或重新加載防火墻時的規則配置,是永久存儲在配置文件中的。
firewa11-cmd 命令工具與配置模式相關的選項有三個:

  • --reload:重新加載防火墻規則并保持狀態信息,即將永久配置應用為運行時配置。
  • --permanent:帶有此選項的命令用于設置永久性規則,這些規則只有在重新啟動 firewalld 或重新加載防火墻規則時才會生效:若不帶有此選項,表示用于設置運行時規則。
  • --runtime-to-permanent:將當前的運行時配置寫入規則配置文件中,使之成為永久性配置。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76402.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76402.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76402.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JS中實現類似sleep、wait、delay的延時功能

前言 編寫代碼時很多時候需要進行流程化的操作&#xff0c;各個流程間通常需要等待一定時間&#xff0c;這在很多語言中通常可以使用 sleep 、 wait 、 delay 等函數來實現。JavaScript原生并沒有類似的功能&#xff0c;想要延時通常就是使用 setTimeout(functionRef, delay) …

Elasticsearch:使用 ES|QL 進行搜索和過濾

本教程展示了 ES|QL 語法的示例。請參考 Query DSL 版本&#xff0c;以獲得等效的 Query DSL 語法示例。 這是一個使用 ES|QL 進行全文搜索和語義搜索基礎知識的實踐介紹。 有關 ES|QL 中所有搜索功能的概述&#xff0c;請參考《使用 ES|QL 進行搜索》。 在這個場景中&#x…

Java 動態代理實現

Java 動態代理實現 一、JDK動態代理二、CGLIB動態代理三、動態代理的應用場景四、JDK代理與CGLIB代理比較 動態代理是Java中一種強大的技術&#xff0c;它允許在運行時創建代理對象&#xff0c;用于攔截對目標對象的方法調用。 一、JDK動態代理 JDK動態代理是Java標準庫提供的代…

Apache IoTDB V2.0.2/V1.3.4 發布|新增表模型權限管理、UDF、嵌套查詢功能

Release Announcement Version 2.0.2/1.3.4 Apache IoTDB V2.0.2、V1.3.4 已經發布&#xff01; V2.0.2 作為樹表雙模型正式版本&#xff0c;主要新增表模型權限管理、用戶管理以及相關操作鑒權&#xff0c;并新增了表模型 UDF、系統表和嵌套查詢等功能。 V1.3.4 主要新增模式…

鴻蒙開發11-ARKUI框架

ARKUI&#xff08;方舟 UI 框架&#xff09;是 HarmonyOS Next&#xff08;原 OpenHarmony&#xff09;的核心 UI 開發框架&#xff0c;基于聲明式編程范式&#xff0c;支持 ArkTS 語言&#xff0c;能夠高效構建跨設備的響應式應用。以下是對 ARKUI 框架及開發的詳細介紹&#…

Linux 進程間通信詳解

一.進程間通信介紹 1. 進程間通信概念 進程間通信&#xff08;Inter-Process Communication, IPC&#xff09;是指在不同進程之間傳遞或交換信息的一種機制。在操作系統中&#xff0c;進程是資源分配和獨立運行的基本單位&#xff0c;它們擁有各自獨立的內存空間和系統資源。…

從0開始掌握動態規劃

動態規劃的核心思想 -- 以空間換時間 復雜點說通過分解問題為子問題并存儲子問題解來優化復雜計算的算法策略。 簡單看個問題。 一&#xff0c;初始&#xff1a;求最長連續遞增子序列 nums [10,9,2,5,3,7,101,18] 求上面數組中的最長連續遞增子序列&#xff0c;輸出其長度 …

Python Requests 庫:從安裝到精通

摘要 本文詳細介紹 Python Requests 庫的安裝與使用&#xff0c;通過常見示例讓你輕松掌握。 一、引言 在當今的互聯網時代&#xff0c;與各種 Web 服務進行交互是非常常見的需求。Python 作為一門功能強大且易于學習的編程語言&#xff0c;提供了許多用于網絡請求的庫&…

Manus技術架構、實現內幕及分布式智能體項目實戰

Manus技術架構、實現內幕及分布式智能體項目實戰 模塊一&#xff1a; 剖析Manus分布式多智能體全生命周期、九大核心模塊及MCP協議&#xff0c;構建低幻覺、高效且具備動態失敗處理能力的Manus系統。 模塊二&#xff1a; 解析Manus大模型Agent操作電腦的原理與關鍵API&#xf…

C算術運算符 printf輸出格式 字符指針打印輸出 使用scanf函數進行輸入

一 算術運算符 加, 一元取正 - 減, 一元取負 * 乘 / 除 % 求余 -- 自減1 自加1 邏輯運算符 && 邏輯與 || 邏輯或 ! 邏輯非 關系運算符 > 大于 > 大于等于 < 小于 < 小于等于 等于 ! 不等于 位運算符號 & 按位與 | 按位或 ^ 按位異或…

STM32中Hz和時間的轉換

目錄 一、常見的頻率單位及其轉換 二、計算公式 三、STM32中定時器的應用 四、例子 一、常見的頻率單位及其轉換 赫茲&#xff08;Hz&#xff09;是頻率的國際單位&#xff0c;表示每秒鐘周期性事件發生的次數。 1 kHz&#xff08;千赫茲&#xff09; 1,000 Hz1 MHz&#…

《分布式軟總線:不同頻段Wi-Fi環境下設備發現兼容性難題》

分布式軟總線技術作為實現設備互聯互通的關鍵&#xff0c;正逐漸成為構建萬物互聯世界的基石。然而&#xff0c;當分布式軟總線面臨不同頻段Wi-Fi環境時&#xff0c;設備發現的兼容性問題成為了阻礙其廣泛應用的一大挑戰。這一問題不僅影響著用戶體驗&#xff0c;也制約著分布式…

MCP(Model Context Protocol 模型上下文協議)科普

MCP&#xff08;Model Context Protocol&#xff0c;模型上下文協議&#xff09;是由人工智能公司 Anthropic 于 2024年11月 推出的開放標準協議&#xff0c;旨在為大型語言模型&#xff08;LLM&#xff09;與外部數據源、工具及服務提供標準化連接&#xff0c;從而提升AI在實際…

【mongodb】數據庫操作

目錄 1. 查看所有數據庫2. 切換到指定數據庫&#xff08;若數據庫不存在&#xff0c;則創建&#xff09;3. 查看當前使用的數據庫4. 刪除當前數據庫5.默認數據庫 1. 查看所有數據庫 1.show dbs2.show databases 2. 切換到指定數據庫&#xff08;若數據庫不存在&#xff0c;則…

ICPR-2025 | 讓機器人在未知環境中 “聽懂” 指令精準導航!VLTNet:基于視覺語言推理的零樣本目標導航

作者&#xff1a;Congcong Wen, Yisiyuan Huang, Hao Huang ,Yanjia Huang, Shuaihang Yuan, YuHao, HuiLin and Yi Fang 單位&#xff1a;紐約大學阿布扎比分校具身人工智能與機器人實驗室&#xff0c;紐約大學阿布扎比分校人工智能與機器人中心&#xff0c;紐約大學坦登工程…

基于DeepSeek的考研暑假日志分析

注&#xff1a;我去年考研時寫了日志&#xff0c;大致記錄了我每天的主要活動。由于過于瑣碎&#xff0c;一直沒有翻看。突發奇想&#xff0c;現在利用deepseek總結其中規律。 從你的日志中可以總結出以下規律和活動興衰起落&#xff1a; ??一、學習活動規律與演變?? ??…

【刷題Day20】TCP和UDP

TCP 和 UDP 有什么區別&#xff1f; TCP提供了可靠、面向連接的傳輸&#xff0c;適用于需要數據完整性和順序的場景。 UDP提供了更輕量、面向報文的傳輸&#xff0c;適用于實時性要求高的場景。 特性TCPUDP連接方式面向連接無連接可靠性提供可靠性&#xff0c;保證數據按順序…

REST 架構詳解:從概念到應用的全面剖析

REST&#xff08;Representational State Transfer&#xff09;即表述性狀態轉移&#xff0c;是一種用于構建網絡應用程序的架構風格和設計理念&#xff0c;由計算機科學家羅伊?菲爾丁&#xff08;Roy Fielding&#xff09;在 2000 年提出。以下是關于它的詳細介紹&#xff1a…

藍橋杯之遞歸二

1.數的劃分 題目描述 將整數 nn 分成 kk 份&#xff0c;且每份不能為空&#xff0c;任意兩份不能相同(不考慮順序)。 例如&#xff1a;n7&#xff0c;k3n7&#xff0c;k3&#xff0c;下面三種分法被認為是相同的。 1&#xff0c;1&#xff0c;5;1&#xff0c;5&#xff0c;…

LeetCode(Hot.2)—— 49.字符異位詞分組題解

Problem: 49. 字母異位詞分組 字母異位詞的定義是&#xff1a;兩個單詞的字母組成一樣&#xff0c;但順序可以不同&#xff0c;比如 eat、tea 和 ate 就是一個組的。 思路 將每個字符串按字母排序&#xff0c;把排序后的字符串作為 key&#xff0c;相同 key 的放在一個 list 中…