firewalld 詳解

firewalld 詳解

firewalld 是 Linux 系統中一個動態防火墻管理工具,取代了傳統的 iptables,提供更靈活、動態的規則配置,支持運行時修改且無需重載服務。以下是其核心概念、常用操作及示例指南:


一、核心概念
  1. 區域(Zone)
    定義網絡環境的信任級別,不同區域綁定不同規則。常用預置區域:

    • public:默認區域,適用于不信任的公共網絡。
    • home:家庭網絡,允許部分服務(如SSH、打印機)。
    • internal:內部網絡,信任度高于 home
    • trusted:允許所有流量。
  2. 服務(Service)
    預定義規則集合(如 httpssh),包含端口和協議,簡化配置:

    sudo firewall-cmd --list-services  # 查看允許的服務
    
  3. 端口與協議
    支持手動開放端口(TCP/UDP):

    sudo firewall-cmd --add-port=8080/tcp  # 開放TCP 8080端口
    
  4. 富規則(Rich Rules)
    復雜規則配置,支持IP、端口范圍、限速等:

    sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="3306" protocol="tcp" accept'
    
  5. 直接規則(Direct Rules)
    直接調用底層 iptables/ip6tables 命令(高級使用):

    sudo firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 9090 -j ACCEPT
    

二、常用命令
功能命令示例
查看狀態sudo firewall-cmd --state
默認區域sudo firewall-cmd --get-default-zone
修改默認區域sudo firewall-cmd --set-default-zone=internal
列出所有區域sudo firewall-cmd --list-all-zones
添加服務sudo firewall-cmd --zone=public --add-service=http
開放端口sudo firewall-cmd --zone=public --add-port=443/tcp
重載配置sudo firewall-cmd --reload
永久生效添加 --permanent 參數,隨后重載:
sudo firewall-cmd --permanent --add-port=8080/tcp

三、配置示例
  1. 允許 HTTP/HTTPS 流量

    sudo firewall-cmd --zone=public --add-service=http --permanent
    sudo firewall-cmd --zone=public --add-service=https --permanent
    sudo firewall-cmd --reload
    
  2. 限制 SSH 訪問(僅允許 192.168.1.0/24 網段)

    sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept' --permanent
    sudo firewall-cmd --reload
    
  3. 轉發端口(將80端口轉發到內部8080)

    sudo firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 --permanent
    sudo firewall-cmd --reload
    

四、注意事項
  1. 防止鎖定
    測試規則前確保允許當前SSH連接,或設置寬限期:

    sudo firewall-cmd --panic-on   # 緊急模式(阻斷所有流量)
    sudo firewall-cmd --panic-off  # 恢復
    
  2. 備份配置
    備份 /etc/firewalld/ 目錄下的配置文件(如 zones/services/)。

  3. 日志與監控
    查看防火墻日志(通常位于 /var/log/messagesjournalctl -u firewalld)。


五、總結

firewalld 通過動態管理、區域劃分和預定義服務簡化了防火墻配置,適合需要靈活調整規則的場景(如服務器、多網絡環境)。掌握核心概念與常用命令后,可高效保障系統安全,避免網絡攻擊。

👉 提示: 使用 man firewall-cmdfirewall-cmd --help 獲取更多參數細節。

以下是對 firewalld 常用命令的詳細解析,涵蓋基礎配置、服務管理、端口操作及高級規則的定義。通過這些命令可以高效管理 Linux 系統的防火墻策略。


firewalld 常用命令

一、基礎狀態與配置

1. 查看防火墻狀態
firewall-cmd --state
  • 功能:檢查 firewalld 是否正在運行。
  • 輸出:running(運行中)或 not running(未運行)。

2. 查看默認區域
firewall-cmd --get-default-zone
  • 功能:顯示當前默認的防火墻區域(如 publichomeinternal)。
  • 典型場景:確認新網絡接口自動綁定的區域。

3. 修改默認區域
firewall-cmd --set-default-zone=internal
  • 功能:將默認區域更改為 internal(或其他預定義區域)。
  • 注意:修改會立即生效,但不影響已綁定的接口

4. 列出所有區域詳情
firewall-cmd --list-all-zones
  • 功能:顯示所有區域(zones)的詳細配置(服務、端口、來源IP等)。
  • 簡化版:使用 --zone=public --list-all 查看特定區域。

二、服務與端口管理

1. 允許服務通過防火墻
firewall-cmd --zone=public --add-service=http
  • 功能:在 public 區域允許 http 服務(預定義端口80/tcp)。
  • 永久生效:添加 --permanent 參數,并執行 firewall-cmd --reload
2. 移除已允許的服務
firewall-cmd --zone=public --remove-service=ssh
  • 功能:在 public 區域移除對 ssh 服務的放行。
  • 緊急場景:若誤封了SSH,通過物理控制臺或KVM恢復。

3. 開放自定義端口
firewall-cmd --zone=public --add-port=8080/tcp
  • 功能:手動開放TCP端口 8080
  • 多端口:支持范圍 3000-4000/udp
4. 查看已開放的端口
firewall-cmd --zone=public --list-ports

三、IP與網絡規則

1. 允許特定IP訪問
firewall-cmd --zone=public --add-source=192.168.1.10
  • 功能:允許來自 192.168.1.10 的所有流量通過 public 區域。
  • 網段支持:使用 192.168.1.0/24 表示整個子網。
2. 拒絕某IP的流量
firewall-cmd --zone=public --add-source=10.0.0.5 --set-target=DROP
  • 功能:將來自 10.0.0.5 的流量全部丟棄。

四、高級規則(Rich Rules)

適用于復雜場景,支持端口、IP、協議等多條件組合。

1. 限速規則(如每秒允許2個連接)
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4"source address="192.168.1.0/24"port port="22" protocol="tcp"limit value="2/s" accept'
2. 拒絕某個IP訪問特定端口
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4"source address="203.0.113.50"port port="80" protocol="tcp"reject'

五、端口轉發與NAT

1. 將外部80端口轉發到內部8080
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080
  • 要求:啟用IP偽裝(masquerade)以實現NAT:
firewall-cmd --zone=public --add-masquerade

六、臨時與永久規則

1. 臨時規則(測試用)
  • 若不添加 --permanent,規則將在重啟后失效。
  • 示例:臨時允許MySQL端口:
firewall-cmd --zone=public --add-port=3306/tcp
2. 永久規則(需重載生效)
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
  • 注意:直接修改配置文件(/etc/firewalld/)后也需重載。

七、應急操作

1. 緊急阻斷所有流量
firewall-cmd --panic-on
  • 恢復命令:
firewall-cmd --panic-off

八、命令總結表

類別命令示例
服務管理firewall-cmd --add-service=ftp --permanent
端口管理firewall-cmd --remove-port=9090/udp
IP規則firewall-cmd --add-source=172.16.0.0/16 --zone=trusted
富規則firewall-cmd --add-rich-rule='rule family="ipv6" drop' --permanent
重載配置firewall-cmd --reload

九、注意事項

  1. 操作順序:建議先測試臨時規則,確認無誤后再保存為永久規則。
  2. 防鎖定:修改遠程服務(如SSH)規則時,確保留有恢復途徑。
  3. 日志監控:通過 journalctl -u firewalld 跟蹤防火墻行為。

掌握這些命令后,可靈活應對服務器部署、網絡隔離、端口轉發等典型場景。

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

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

相關文章

面向高性能運動控制的MCU:架構創新、算法優化與應用分析

摘要:現代工業自動化、汽車電子以及商業航天等領域對運動控制MCU的性能要求不斷提升。本文以國科安芯的MCU芯片AS32A601為例,從架構創新、算法優化到實際應用案例,全方位展示其在高性能運動控制領域的優勢與潛力。該MCU以32位RISC-V指令集為基…

支付寶小程序組件與頁面構造器使用指南:從頁面到組件的正確遷移

引言 在支付寶小程序開發中,我們經常會遇到需要將頁面組件化的情況。本文將通過一個實際案例(將 /pages/plugin/device 從頁面遷移到組件),深入分析支付寶小程序中頁面和組件的區別,以及正確的遷移方式。我們將從問題…

26-算法打卡-字符串-右旋字符串-第二十六天

1 題目說明 字符串的右旋轉操作是把字符串尾部的若干個字符轉移到字符串的前面。給定一個字符串 s 和一個正整數 k,請編寫一個函數,將字符串中的后面 k 個字符移到字符串的前面,實現字符串的右旋轉操作。 例如,對于輸入字符串 &qu…

fastbev mmdetection3D 角度和方向損失

角度/方向損失 sin(a?b)sinacosb?cosasinb config參數 dir_offset0.7854, # pi/4 dir_limit_offset0, box編解碼 # Copyright (c) OpenMMLab. All rights reserved. import torchfrom mmdet.core.bbox import BaseBBoxCoder from mmdet.core.bbox.builder import BBOX_COD…

極狐GitLab 如何 cherry-pick 變更?

極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有: 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 揀選(cherry-pick)更改 (BASIC ALL) 在 Git 中,cherry-pick 是從一個分支獲取一個提交并將其添加為另一個分支的…

java多線程(7.0)

目錄 ?編輯 定時器 定時器的使用 三.定時器的實現 MyTimer 3.1 分析思路 1. 創建執行任務的類。 2. 管理任務 3. 執行任務 3.2 線程安全問題 定時器 定時器是軟件開發中的一個重要組件. 類似于一個 "鬧鐘". 達到一個設定的時間之后, 就執行某個指定好的…

優化非線性復雜系統的參數

非線性項組合的系統 對于系統中的每一個復雜擬合,即每一個殘差函數,都能表示為非線性方程的趨勢,例如較為復雜的系統函數組, from optimtool.base import sp, np x sp.symbols("x1:5") res1 0.5*x[0] 0.2*x[1] 1.…

清華LeapLab開源Cooragent框架:一句話構建本地智能體服務群,讓AGI真正觸手可及

引言:智能體革命,從復雜到簡單 在人工智能發展的浪潮中,Agent(智能體) 技術被視為實現通用人工智能(AGI)的關鍵路徑。然而,傳統智能體的開發與協作始終面臨兩大痛點:依賴…

云原生--核心組件-容器篇-1-Docker和云原生關系(Docker是云原生的基石)

1、基本概念 (1)、云原生(Cloud Native) 是一種構建和運行應用程序的方法論,旨在充分利用云計算環境(公有云、私有云、混合云)的特性,通過容器化、微服務、服務網格、聲明式API等技…

問答頁面支持拖拽和復制粘貼文件,MaxKB企業級AI助手v1.10.6 LTS版本發布

2025年4月24日,MaxKB開源企業級AI助手正式發布v1.10.6 LTS版本。這一版本主要進行了一些功能優化和問題修復。 功能優化 ■ 應用:文件上傳支持上傳其他自定義的文件類型,該類型文件需要自行寫入函數解析; ■ 問答頁面&#xff…

用戶案例--慧眼科技

作者:算力魔方創始人/英特爾創新大使劉力 每個行業都有其獨特的需求,算力魔方推出了全面的定制化服務,從概念到產品化,滿足各行各業,用戶可以根據具體應用需求定制更多接口或更強圖形處理的需求,且算力魔方…

apple 個人開發者轉公司經驗

1、在apple開發者官網申請 2、收到郵件后,回復準備了開始遷移 3、收到填寫遷移資料的郵件 4、開始填寫資料 Sign In - Applehttps://developer.apple.com/enroll/type/edit To complete this change, you will need: 要完成此更改,您需要: L…

【ESP32-IDF筆記】20-配置以太網網絡(W5500)

環境配置 Visual Studio Code :版本1.98.2 ESP32:ESP32-S3 ESP-IDF:V5.4 模塊:W5500,SPI通訊協議 組件支持:esp_eth 官方的ethernet 以太網組件 W5500介紹 介紹 W5500 是一款全硬件 TCP/IP 嵌入式以太網…

衛星通信的基本概念

1 頻段 頻段 頻率范圍 技術特點 典型應用 優勢 局限性 最新進展 L 頻段 1-2 GHz 波長較長&#xff0c;穿透能力強&#xff0c;受天氣影響小&#xff0c;帶寬較窄&#xff08;<100 MHz&#xff09;。 衛星導航&#xff08;北斗 / GPS&#xff09;、海事通信&#x…

數據結構------C語言經典題目(7)

1.系統棧和數據結構中的棧有什么區別&#xff1f; 1.本質&#xff1a; 系統棧&#xff1a;由程序運行時由操作系統自動分配的一塊連續內存區域&#xff0c;用于存儲函數調用過程中的臨時數據&#xff08;參數、局部變量、返回地址&#xff09;&#xff0c;是程序運行的底層機制…

【Redis】一、redis的下載與安裝

目錄 一、redis下載 二、啟動服務 三、測試服務 四、可視化界面 五、設置reids密碼 今天起準備對redis進行學習&#xff0c;目標是掌握實際開發項目中如何應用redis等操作。首先在這里講將如何下載redis&#xff0c;方便以后查閱。 一、redis下載 可以去官網&#xff08…

vue3中nextTick的作用及示例

在Vue 3中&#xff0c;nextTick是一個用于處理DOM異步更新的工具函數&#xff0c;確保在數據變化后操作最新的DOM。以下是其作用的詳細解析&#xff1a; 核心作用 延遲回調到DOM更新后&#xff1a;Vue的響應式系統會將數據變更批量處理&#xff0c;異步更新DOM。nextTick允許你…

拆解大模型“越獄”攻擊:對抗樣本如何撕開AI安全護欄?

該文章首發于奇安信攻防社區:https://forum.butian.net/share/4254 引言 隨著大規模語言模型(LLMs)在內容生成、智能交互等領域的廣泛應用,其安全性和可控性成為學界和產業界關注的焦點。盡管主流模型通過道德對齊機制建立了安全護欄,但研究者發現,通過精心設計的"…

Ubuntu主機上通過WiFi轉有線為其他設備提供網絡連接

以下是在Ubuntu主機上通過WiFi轉有線為Jetson設備提供網絡連接的步驟&#xff1a; ??1. 確認網絡接口名稱?? 在Ubuntu主機上執行以下命令&#xff0c;查看WiFi和有線接口名稱&#xff1a; ip a WiFi接口通常類似 wlp2s0 或 wlan0有線接口通常類似 enp0s25 或 eth0 記下…

通訊錄完善版本(詳細講解+源碼)

目錄 前言 一、使通訊可以動態更新內存 1、contact.h 2、contact.c 存信息&#xff1a; 刪除聯系人&#xff0c;并試一個不存在的人的信息&#xff0c;看看會不會把其他人刪了 ?編輯 修改&#xff1a; ?編輯 排序&#xff1a; ?編輯 銷毀&#xff1a; ?編輯 ?…