Linux防火墻-Firewalld

一、 概述

按表現形式劃分:
軟件防火墻: 集成在系統內部,Linux系統: iptablesfirewalldufw windows系統下:
windows defender
硬件防火墻: 華為防火墻、思科防火墻、奇安信防火墻、深信服防火墻等
按技術劃分:
包過濾防火墻: 檢查數據包的源IP、目的IP、源端口、目的端口、TCPsyn控制位
七層防火墻: 除了上述檢查外,還會檢查數據內容
防火墻的作用:
阻止來自網絡外部的攻擊、進行流量控制

二、 Linux防火墻

防火墻結構
用戶態:
iptables使用iptables命令對防火墻規則進行管理,必須深度理解網絡技術和四表五鏈,對
于初學者或者網絡技術不達標的人員不友好
firewalld使用firewall-cmd命令對防火墻進行管理,采用的是區域劃分的形式。不需要連接
底層的四表五鏈,對于初學者比較友好
ufw使用ufw命令對防火墻進行管理,命令簡單易懂。
內核態:
四表: 從內核->用戶的順序: raw -> mangle -> nat -> filter
五鏈: inputoutputforwardpreroutingpostrouting
firewalld防火墻
區域分類
九大區域: blockdmzdropexternalhomeinternalpublictrustedwork
區域功能:
public 公共區域,默認區域
public (active)
target: default #區域類型規則
icmp-block-inversion: no
interfaces: ens33 #屬于該區域的接口
sources: #來源
services: dhcpv6-client ssh #放行服務的名稱
ports: #放行端口號
protocols: #放行協議
masquerade: no #NAT地址轉換
forward-ports: #轉發端口
source-ports: #源端口
icmp-blocks: #ICMP的阻塞類型,ping的阻塞
rich rules: #富規則
home: 家庭區域
home
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client mdns samba-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
work: 工作區域
work
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
trusted: 完全信任區域
trusted
target: ACCEPT #不采用默認規則,放行一切
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
internal: 內部區域 (連接內部網絡)
internal
target: default
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client mdns samba-client ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
external: 外部區域 (連接外部網絡,例如: internet網絡)
ternal
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh
ports:
protocols:
masquerade: yes #默認進行NAT地址轉換
forward-ports:
source-ports:
icmp-blocks:
rich rules:
dmz: 非軍事化管理區域(內部的服務器放于該區域)
dmz
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
drop: 丟棄區域 (丟棄一切流量,不給出任何回應)
drop
target: DROP
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
block: 阻塞區域 (拒絕任何流量,但給出回應)
block
target: %%REJECT%%
icmp-block-inversion: no
interfaces:
sources:
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
firewall-cmd命令用法
關鍵字:
--list-*
--get-*
--set-*
--add-*
--remove-*
--change-*
--zone=
命令分類:
查看
#查看所有區域的詳細信息
[root@localhost ~]# firewall-cmd --list-all-zones
#查看指定區域的詳細信息
[root@localhost ~]# firewall-cmd --list-all --zone=public
#查看指定區域的放行服務
[root@localhost ~]# firewall-cmd --list-services --zone=public
#查看指定區域的放行端口
[root@localhost ~]# firewall-cmd --list-ports --zone=public
#查看指定區域包含的網絡接口
[root@localhost ~]# firewall-cmd --list-interfaces --zone=public
#查看指定區域的放心協議
[root@localhost ~]# firewall-cmd --list-protocols --zone=public
#查看指定區域的ICMP阻塞類型
[root@localhost ~]# firewall-cmd --list-icmp-blocks --zone=public
#查看指定區域的放行源地址
[root@localhost ~]# firewall-cmd --list-sources --zone=public
#查看指定區域的源端口
[root@localhost ~]# firewall-cmd --list-source-ports --zone=public
#查看指定區域的富規則
[root@localhost ~]# firewall-cmd --list-rich-rules --zone=public
#查看指定區域的轉發端口
[root@localhost ~]# firewall-cmd --list-forward-ports --zone=public
#查看firewalld支持的服務類型
[root@localhost ~]# firewall-cmd --get-services
#查看firewalld的默認區域
[root@localhost ~]# firewall-cmd --get-default-zone
#查看firewalld支持的ICMP的阻塞類型
[root@localhost ~]# firewall-cmd --get-icmptypes
#查看firewalld所有的活動區域
[root@localhost ~]# firewall-cmd --get-active-zones
#查看指定網絡接口所屬區域
[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33
#查看所有區域名稱
[root@localhost ~]# firewall-cmd --get-zones
添加:
#添加指定服務到指定區域
[root@localhost ~]# firewall-cmd --add-service=http --zone=public
success
#添加端口到指定區域
[root@localhost ~]# firewall-cmd --add-port=80/tcp --zone=public
success
#添加指定協議到指定區域
[root@localhost ~]# firewall-cmd --add-protocol=ah --zone=public
success
#添加ICMP阻塞類型到指定區域
[root@localhost ~]# firewall-cmd --add-icmp-block=echo-request --zone=public
success
#windows端驗證
C:\Users\zzh>ping 192.168.115.129
正在 Ping 192.168.115.129 具有 32 字節的數據:
來自 192.168.115.129 的回復: 無法訪問目標主機。
來自 192.168.115.129 的回復: 無法訪問目標主機。
來自 192.168.115.129 的回復: 無法訪問目標主機。
#添加指定網絡接口到指定區域
[root@localhost ~]# firewall-cmd --add-interface=ens33 --zone=work
success
#添加指定區域的放行源地址
[root@localhost ~]# firewall-cmd --add-source=192.168.1.0/24 --zone=work
success
#添加指定區域的放行源端口
[root@localhost ~]# firewall-cmd --add-source-port=999/tcp --zone=work
success
#添加轉發端口到指定區域
[root@localhost ~]# firewall-cmd --add-forwardport=port=8080:proto=tcp:toport=80:toaddr=192.168.115.115 --zone=work
success
#添加地址轉換功能到指定區域
[root@localhost ~]# firewall-cmd --add-masquerade --zone=work
success
#驗證添加
[root@localhost ~]# firewall-cmd --list-all --zone=public
修改:
#修改默認區域
[root@localhost ~]# firewall-cmd --set-default-zone=work
success
#修改網絡接口所屬區域
[root@localhost ~]# firewall-cmd --change-interface=ens33 --zone=internal
success
[root@localhost ~]# firewall-cmd --change-zone=ens33 --zone=external
success
#追加指定區域的放行源地址
[root@localhost ~]# firewall-cmd --change-source=192.168.2.0/24 --zone=work
success
刪除:
#刪除指定服務到指定區域
[root@localhost ~]# firewall-cmd --remove-service=http --zone=public
success
#刪除端口到指定區域
[root@localhost ~]# firewall-cmd --remove-port=80/tcp --zone=public
success
#刪除指定協議到指定區域
[root@localhost ~]# firewall-cmd --remove-protocol=ah --zone=public
success
#刪除ICMP阻塞類型到指定區域
[root@localhost ~]# firewall-cmd --remove-icmp-block=echo-request --
zone=public
success
#刪除指定網絡接口到指定區域
[root@localhost ~]# firewall-cmd --remove-interface=ens33 --zone=work
success
#刪除指定區域的放行源地址
[root@localhost ~]# firewall-cmd --remove-source=192.168.1.0/24 --zone=work
success
#刪除指定區域的放行源端口
[root@localhost ~]# firewall-cmd --remove-source-port=999/tcp --zone=work
success
#刪除轉發端口到指定區域
[root@localhost ~]# firewall-cmd --remove-forwardport=port=8080:proto=tcp:toport=80:toremover=192.168.115.115 --zone=work
success
#刪除地址轉換功能到指定區域
[root@localhost ~]# firewall-cmd --remove-masquerade --zone=work
success
#驗證刪除
[root@localhost ~]# firewall-cmd --list-all --zone=public
保存規則:
#逐行規則保存
[root@localhost ~]# firewall-cmd --remove-masquerade --zone=work --permanent
#一次性保存所有規則
[root@localhost zones]# firewall-cmd --runtime-to-permanent
success
#保存的規則存儲路徑
/etc/firewalld/zones
案例:
禁止外部主機ping本機
#本機IP:192.168.115.129 ens33 NAT
#外部IP:192.168.115.128
#防火墻配置
[root@localhost ~]# firewall-cmd --add-interface=ens33 --zone=work
success
[root@localhost ~]# firewall-cmd --add-icmp-block=echo-request --zone=work
success
#驗證
[root@localhost ~]# ping -c 4 192.168.115.129
PING 192.168.115.129 (192.168.115.129) 56(84) bytes of data.
From 192.168.115.129 icmp_seq=1 Destination Host Prohibited
From 192.168.115.129 icmp_seq=2 Destination Host Prohibited
From 192.168.115.129 icmp_seq=3 Destination Host Prohibited
From 192.168.115.129 icmp_seq=4 Destination Host Prohibited
--- 192.168.115.129 ping statistics ---
4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3001ms
允許外部主機訪問本機的http服務
#本機IP:192.168.80.128 ens34 vmnet3
#外部IP:192.168.80.129
#######環境配置 開始#########
##本機安裝httpd服務
#改變SElinux的規則
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install -y httpd
##啟動httpd服務
[root@localhost ~]# systemctl start httpd
##修改httpd服務的監聽IP
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.80.128:80
##重啟httpd服務
[root@localhost ~]# systemctl restart httpd
##驗證服務監聽狀態
[root@localhost ~]# netstat -naptu | grep :80
tcp 0 0 192.168.80.128:80 0.0.0.0:* LISTEN
5884/httpd
#######環境配置 結束#########
#防火墻配置
[root@localhost ~]# firewall-cmd --change-interface=ens34 --zone=dmz
succes
##客戶端驗證訪問##
[root@localhost ~]# curl 192.168.80.128
curl: (7) Failed connect to 192.168.80.128:80; 拒絕連接
##發現無法訪問###
#服務端查看dmz區域信息
[root@localhost ~]# firewall-cmd --list-all --zone=dmz
dmz (active)
target: default
icmp-block-inversion: no
interfaces: ens34
sources:
services: ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
#發現沒有放心http服務
#配置dmz區域http服務放行策略
[root@localhost ~]# firewall-cmd --add-service=http --zone=dmz
success
dmz (active)
target: default
icmp-block-inversion: no
interfaces: ens34
sources:
services: http ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
允許外部主機訪問本機的某個端口號
#前置環境如上
#防火墻配置
[root@localhost ~]# firewall-cmd --add-port=801/tcp --zone=dmz
success
#放行服務的本質實際上是放行了該服務的默認端口號!!!
#假如服務改變了監聽端口號,只需放行對應的端口號即可!!!
#客戶端驗證
[root@localhost ~]# curl 192.168.80.128:801

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

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

相關文章

【Qt】PyQt、原生QT、PySide6三者的多方面比較

目錄 引言 一、基本定義 二、核心對比維度 1. 編程語言與開發效率 2. 功能與 API 兼容性 3. 性能表現 4. 許可證與商業使用 5. 社區與文檔支持 三、遷移與兼容性 四、適用場景推薦 五、總結對比表 總結 引言 PySide6、PyQt(通常指 PyQt5/PyQt6&#xf…

JavaWeb站內信系統 - 技術設計文檔

1. 系統概述1.1 項目背景本系統旨在為企業或社區平臺提供一套完整的站內信解決方案,支持用戶之間的消息發送、接收、管理等功能,提升用戶間的溝通效率。1.2 設計目標實現用戶間消息發送和接收支持一對一和一對多消息發送提供消息狀態跟蹤(已讀…

Java基礎 9.10

1.System類常見方法和案例exit:退出當前程序arraycopy:復制數組元素,比較適合底層調用,一般使用 Arrays.copyOf 完成復制數組int[] src{1,2,3};int[] dest new int[3]; System.arraycopy(src, 0, dest, 0, 3);currentTimeMilens&…

詳解flink性能優化

1. 簡介 Apache Flink是一個強大的流處理框架,其性能很大程度上取決于內存的使用效率。在大規模數據處理場景中,合理的內存配置和優化可以顯著提升Flink作業的性能和穩定性。本文將深入探討Flink內存優化的各個方面,包括狀態后端選擇、內存配…

VueFlow的箭頭怎么調整

正好最近用到了VueFlow組件,發現箭頭默認樣式太小,無法體現流程展示,因此翻閱相關資料得出下列方法,有什么更好的方法,大家可以推薦推薦,謝謝。方法1:通過邊(Edge)的樣式…

【Python】S1 基礎篇 P9 文件處理與異常處理技術

目錄文件讀取操作讀取文件的全部內容相對路徑和絕對路徑逐行訪問文件內容文件寫入操作寫入單行內容寫入多行內容結構化數據的存儲異常處理機制理解異常的工作原理ZeroDivisionError異常示例try-except語句塊的使用else語句塊的正確使用靜默失敗的合理應用本文將深入探討Python中…

分布式事務實戰手冊:從四場業務災難看方案選型與落地陷阱

在分布式系統的穩定性戰役中,數據一致性問題如同潛伏的暗礁。某生鮮電商因分布式事務設計缺陷,在春節促銷期間出現"下單成功但無庫存發貨"的悖論,3小時內產生2300筆無效訂單,客服投訴量激增300%;某銀行轉賬系…

Java算法題中的輸入輸出流

在Java算法題中,處理輸入輸出主要依賴系統流(System.in和System.out),常用的方法總結如下: 一、輸入方法(讀取系統輸入) 主要通過java.util.Scanner類或BufferedReader類實現,適用于…

墨水屏程序

EPD Reader 基于ESP32-C3的電子墨水屏閱讀器,支持ap 配網、sntp 時間同步、txt閱讀、天氣預報、顯示節假日信息、農歷顯示、自動休眠、web配置等功能。這是在另一個項目 一個rust embassy esp32c3 的練習項目-CSDN博客的基礎上修改的 。 界面比較粗糙,以…

Git 創建 SSH 密鑰

1.生成 SSH 密鑰 打開 Git Bash ssh-keygen -t ed25519 -C "your_email@example.com" 把 ”your_email@example.com“ 改成再 github 注冊的郵箱 系統會提示您三次輸入: 第一個提示:Enter file in which to save the key (/c/Users/86189/.ssh/id_ed25519): 直接…

當前 AI 的主流應用場景

當前AI技術已深度滲透至社會各領域,2025年的主流應用場景呈現出行業垂直化、交互自然化、決策自主化三大特征。以下從六大核心領域展開分析,結合最新技術突破與規模化落地案例,揭示AI如何重塑人類生產生活范式: 一、智能辦公與生產力革命 AI正從工具升級為「數字同事」,…

EI會議:第六屆電信、光學、計算機科學國際會議(TOCS 2025)

第六屆電信、光學、計算機科學國際會議(TOCS 2025)定于11月21-23日在中國南陽舉行,本屆會議以“電信、光學、計算機科學”為主題,旨在為相關領域的專家和學者提供一個探討行業熱點問題,促進科技進步,增加科…

回歸預測 | MATLAB基于GRU-Attention的多輸入單輸出回歸預測

代碼是一個基于 MATLAB 的深度學習時間序列預測模型,結合了 GRU(門控循環單元)和自注意力機制(Self-Attention),用于回歸預測任務。 一、主要功能 使用 GRU + Self-Attention 神經網絡模型對時間序列數據進行回歸預測,評估模型在訓練集和測試集上的性能,并可視化預測結…

【JavaEE】(24) Linux 基礎使用和程序部署

一、Linux 背景知識 Linux 的第一個版本開發者是 Linus,所以部分人會叫“林納斯”。Linux 只是一個開源的操作系統內核,有些公司/開源組織基于 Linux 內核,配套了不同的應用程序,構成不同的操作系統(比如 vivo、&#…

視覺SLAM第9講:后端1(EKF、非線性優化)

目標: 1.理解后端的概念; 2.理解以EKF為代表的濾波器后端的工作原理; 3.理解非線性優化的后端,明白稀疏性是如何利用的; 4.使用g2o和Ceres實際操作后端優化。 9.1 概述 9.1.1 狀態估計的概率解釋 1.后端優化引出 前段…

樓宇自控系統監控建筑變配電系統:功效體現在安全與節能層面

建筑變配電系統是保障建筑電力供應的 “心臟”,負責將外界高壓電轉化為建筑內設備可使用的低壓電,為暖通、照明、電梯等核心系統供電。傳統變配電管理依賴人工巡檢,不僅存在 “監測滯后、故障難預判” 的安全隱患,還因無法精準調控…

【Docker安裝使用常見問題匯總】

文章目錄1. wsl update failed: update failed:2.dockerDesktopLinuxEngine: The system cannot find the file specified.3. 中文語言包3.1. 下載中文包3.2 默認路徑如下:3.3 備份并替換 app.asar 文件:4. Get "https://registry-1.docker.io/v2/&…

Android面試指南(八)

目錄 1、Java語言相關 1.1、String的intern方法 1.2、HashMap的擴容 1.3、Java數組不支持泛型 1.4、泛型類型保留到運行時 1.5、匿名內部類使用的外部變量需要加final 2、Kotlin語言相關 3、設計模式 1、Java語言相關 1.1、String的intern方法 1)、String…

7、Matplotlib、Seaborn、Plotly數據可視化與探索性分析(探索性數據分析(EDA)方法論)

學習目標:掌握數據可視化的原理和工具,培養通過圖表洞察數據規律的能力,建立數據驅動的分析思維數據可視化是數據科學的重要組成部分,它將抽象的數字轉化為直觀的圖形,讓我們能夠快速識別模式、趨勢和異常。從基礎的柱…

Next系統學習(二)

SSR生命周期與實現詳細解答 19. 如果不使用框架,如何從零用React/VueNode.js實現一個簡單的SSR應用? React Node.js SSR實現步驟: 項目結構搭建 /project/client - 客戶端代碼/server - 服務端代碼/shared - 共享代碼服務端基礎設置 // server/index…