運維之 Centos7 防火墻(CentOS 7 Firewall for Operations and Maintenance)

運維之 Centos7 防火墻

圖片

1.介紹

Linux CentOS 7 防火墻/端口設置: 基礎概念: 防火墻是一種網絡安全設備,用于監控和控制網絡流量,以保護計算機系統免受未經授權的訪問和惡意攻擊。Linux CentOS 7操作系統自帶了一個名為iptables的防火墻工具,用于配置和管理網絡流量。

優勢:

1. 提供網絡安全:防火墻可以限制網絡流量,阻止未經授權的訪問和惡意攻擊,提高系統的安全性。

2. 靈活性:iptables工具提供了豐富的配置選項,可以根據具體需求進行定制化設置。

3. 可擴展性:可以通過添加規則來支持新的網絡服務和應用程序。 ?

類型: 在Linux CentOS 7中,防火墻主要有兩種類型:

1. 傳統防火墻:基于iptables工具,可以通過命令行進行配置。

2. 新一代防火墻:基于firewalld服務,提供了更高級的配置選項,并支持動態更新。 ?

應用場景:

1. 保護服務器:防火墻可以限制對服務器的訪問,防止未經授權的用戶或惡意攻擊者入侵系統。

2. 網絡分割:通過配置防火墻規則,可以將網絡分割成多個安全區域,提高網絡的安全性。

3. 限制網絡服務訪問:可以使用防火墻規則限制特定網絡服務的訪問,例如只允許特定IP地址訪問SSH服務。

在centos7中,有幾種防火墻共存:firewald , iptables . 默認情況下,CentOS是使用firewalld來管理netfilter子系統,不過底層調用的命令仍然是iptables

2.firewalld 和 iptables區別

  1. firewalld 可以動態修改單挑規則,而不像iptables那樣,在修改了規則后必須全部刷新才可以生效。

  2. firewalld在使用上比iptables人性化很多,即使不明白"五張表五條鏈"而且對TCP/IP協議也不理解也可以實現大部分功能。

  3. firewalld跟iptables比起來,不好的地方是每個服務都需要去設置才能放行,因為默認是拒絕。而iptables里默認每個服務是允許,需要拒絕才去限制。

  4. firewalld自身并不具備防火墻的功能,而是和iptables一樣需要通過內核的netfilter來實現,也就是說firewalld和iptables一樣,他們的作用是用于維護規則,而真正使用規則干活的是內核的netfilter,只不過firewalld和iptables的結構以及使用方法不一樣罷了。

3.區域管理概念

區域管理

通過將網絡劃分成不同的區域,制定不同區域之間的訪問控制策略來控制不同程序間傳送的數據流。例如,互聯網不是可信任的區域,而內部網絡是高度信任的區域。網絡安全模型可以在安裝,初次啟動和首次建立網絡連接時選擇初始化。該模型描述了主機所連接的整個網絡環境的可信級別,并定義了新連接的處理方式。

有如下幾種不同的初始化區域:

  • 阻塞區域(block):任何傳入的網絡數據包都將被阻止

  • 工作區域(work):相信網絡上的其他計算機,不會損害你的計算機

  • 家庭區域(home):相信網絡上的其他計算機,不會損害你的計算機

  • 公共區域(public):不相信網絡上的任何計算機,只有選擇接受傳入的網絡連接

  • 隔離區域(DMZ):隔離區域也稱為非軍事區域,內外網絡之間增加的一層網絡,起到緩沖作用。對于隔離區域,只有選擇接受傳入的網絡連接。

  • 信任區域(trusted):所有的網絡連接都可以接受

  • 丟棄區域(drop):任何傳入的網絡連接都被拒絕

  • 內部區域(internal):信任網絡上的其他計算機,不會損害你的計算機。只有選擇接受傳入的網絡連接

  • 外部區域(external):不相信網絡上的其他計算機,不會損害你的計算機。只有選擇接受傳入的網絡連接

注:Firewalld的默認區域是public

firewalld默認提供了九個zone配置文件:block.xml、dmz.xml、drop.xml、external.xml、 home.xml、internal.xml、public.xml、trusted.xml、work.xml,他們都保存在“/usr/lib /firewalld/zones/”目錄下。

4.iptables的配置

1.簡述

iptables防火墻由Netfilter項目(http://www.netfilter.org) 開發,自2001年1月在Linux2.4內核發布以來就是Linux的一部分了。

Netfilter是由Linux提供的所有包過濾和包修改設施的官方項目名稱,但這個術語同時也指Linux內核的一個框架,他可以用于在不同的階段將函數掛接(hook)進網絡棧。另一方面,iptables使用Netfilter框架指在將對數據包進行操作(如過濾)的函數掛接進網絡棧。

所以,你可以認為Netfilter提供了一個框架,而iptables在它之上建立了防火墻功能

2.基本原理

規則(rules)其實就是網絡管理員預定義的條件,規則一般的定義為“如果數據包頭符合這樣的條件,就這樣處理這個數據包”。規則存儲在內核空間的信息 包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當數據包與規 則匹配時,iptables就根據規則所定義的方法來處理這些數據包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火墻的 主要工作就是添加、修改和刪除這些規則

3.iptables傳輸數據包的過程

  1. 當一個數據包進入網卡時,它首先進入PREROUTING鏈,內核根據數據包目的IP判斷是否需要轉送出去

  2. 如果數據包就是進入本機的,它就會沿著圖向下移動,到達INPUT鏈。數據包到了INPUT鏈后,任何進程都會收到它。本機上運行的程序可以發送數據包,這些數據包會經過OUTPUT鏈,然后到達POSTROUTING鏈輸出

  3. 如果數據包是要轉發出去的,且內核允許轉發,數據包就會如圖所示向右移動,經過FORWARD鏈,然后到達POSTROUTING鏈輸出

4、iptables規則表和鏈

表(tables):

iptables一共有四張表,稱為filter, nat, mangle, raw。filter用于過濾,nat用于網絡地址轉換,mangle用于給數據包做標記以修改分組數據的特定規則,raw表則獨立于Netfilter連接跟蹤子系統

因此,如果你的目標是保護主機安全,那么著重考慮的是filter表,而如果像OpenStack那樣,目的是做網絡地址轉換,就用NAT表,而mangle則用于QoS(服務質量控制),如對打上某個標記的分組數據分配較多帶寬等等

鏈(chains):

是數據包傳播的路徑,每個鏈其實就是眾多規則中的一個檢查清單,每一條鏈中可以有1條或者數條規則。當一個數據包到達一個鏈時,iptables就會從鏈中第一條規則開始檢查,看數據包是否滿足規則所定義的條件,如果滿足,就會根據該規則所定義的方法處理該數據包。否則iptables將繼續檢查下一條規則,如果數據包不符合鏈中任一條規則,iptables就會根據該鏈預先定義的策略來處理數據包。

5.規則表處理的優先順序

Raw--mangle--nat--filter

對filter表來說,最重要的是內置鏈INPUT/OUTPUT/FORWARD。顧名思義,INPUT應用于外部網絡進入到本地主機的數據包,OUPTU則應用于從本地主機發送到外部網絡的數據包。FORWARD則可以理解為將本地主機作為路由器,數據包從本地主機經過,但目標位于本地主機的下游。

6.管理和設置iptables規則

7.配置iptables之前firewalld的關閉

CentOS7默認的防火墻是firewall,所以要使用iptables得先將默認的firewall關閉,并另安裝iptables進行防火墻的規則設定

[root@localhost ~]# systemctl stop firewalld.service //停止firewall
[root@localhost ~]# systemctl disable firewalld.service //禁止firewall開機啟動

8.iptables的安裝

先檢查iptables是否有安裝:

[root@localhost ~]# rpm –qa | grep iptables
iptables-1.4.21-16.el7.x86_64 //如果有顯示這個,則說明已經安裝了iptables

安裝iptables

[root@localhost ~]# yum install –y iptables
[root@localhost ~]# yum install –y iptables-services

9.iptables的基本語法格式

iptables [-t 表名] 命令選項 [鏈名][條件匹配] [-j 目標動作或跳轉]

說明:表名、鏈名用于指定 iptables命令所操作的表和鏈,命令選項用于指定管理iptables規則的方式(比如:插入、增加、刪除、查看等;條件匹配用于指定對符合什么樣 條件的數據包進行處理;目標動作或跳轉用于指定數據包的處理方式(比如允許通過、拒絕、丟棄、跳轉(Jump)給其它鏈處理。

10.iptables命令的管理控制選項

-A 在指定鏈的末尾添加(append)一條新的規則

-D 刪除(delete)指定鏈中的某一條規則,可以按規則序號和內容刪除

-I 在指定鏈中插入(insert)一條新的規則,默認在第一行添加

-R 修改、替換(replace)指定鏈中的某一條規則,可以按規則序號和內容替換

-L 列出(list)指定鏈中所有的規則進行查看

-E 重命名用戶定義的鏈,不改變鏈本身

-F 清空(flush)

-N 新建(new-chain)一條用戶自己定義的規則鏈

-X 刪除指定表中用戶自定義的規則鏈(delete-chain)

-P 設置指定鏈的默認策略(policy)

-Z 將所有表的所有鏈的字節和數據包計數器清零

-n 使用數字形式(numeric)顯示輸出結果

-v 查看規則表詳細信息(verbose)的信息

-V 查看版本(version)

-h 獲取幫助(help)

11.iptables命令的保存

[root@localhost ~]# service iptables save

12.iptables的基本操作

清除所有規則

⑴清除預設表filter中所有規則鏈中的規則

[root@localhost ~]# iptables -F

⑵清除預設表filter中使用者自定義鏈中的規則

[root@localhost ~]# iptables –X
[root@localhost ~]# iptables -Z

⑶清除NAT表規則

[root@localhost ~]# iptables –F –t nat

設置鏈的默認策略,一般有二種方法

⑴允許所有的包,然后再禁止所有危險的包通過防火墻

[root@localhost ~]# iptables –P INPUT ACCEPT
[root@localhost ~]# iptables –P OUTPUT ACCEPT
[root@localhost ~]# iptables –P FORWARD ACCEPT

⑵首先禁止所有的包,然后根據需要的服務允許特定的包通過防火墻

[root@localhost ~]# iptables –P INPUT DROP
[root@localhost ~]# iptables –P OUTPUT DROP
[root@localhost ~]# iptables –P FORWARD DROP

向鏈中添加規則(下面的語句用于允許SSH連接本服務器)

[root@localhost ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT

向鏈中添加規則(下面的語句用于允許PING命令測試本服務器)

[root@localhost ~]# iptables -A INPUT -p icmp -j ACCEPT
[root@localhost ~]# iptables -A OUTPUT -p icmp -j ACCEPT

iptables的配置文件

直接編輯iptables的配置文件:

[root@localhost ~]# vim /etc/sysconfig/iptables[root@localhost ~]# systemctl restart iptables.service //最后重啟防火墻使配置生效
[root@localhost ~]# systemctl enable iptables.service //設置防火墻開機啟動[root@localhost ~]# iptables -L
//查看防火墻規則,默認的是-t filter,如果是nat表查看,即iptables -t n

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

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

相關文章

第十五屆藍橋杯大賽軟件賽省賽Python 大學 C 組題目試做(下)【本期題目:砍柴,回文字符串】

okk,大伙,這一期我們就把C組的題目刷完。 本期題目:砍柴,回文字符串 文章目錄 砍柴題目思路分析舉個栗子思路總結 代碼 回文字符串題目思路分析代碼 感謝大伙觀看,別忘了三連支持一下大家也可以關注一下我的其它專欄&a…

Design Compiler:庫特征分析(ALIB)

相關閱讀 Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 簡介 在使用Design Compiler時,可以對目標邏輯庫進行特征分析,并創建一個稱為ALIB的偽庫(可以被認為是緩存)&…

MySQL索引原理:從B+樹手繪到EXPLAIN

最近在學后端,學到了這里做個記錄 一、為什么索引像書的目錄? 類比:500頁的技術書籍 vs 10頁的目錄缺點:全表掃描就像逐頁翻找內容優點:索引將查詢速度從O(n)提升到O(log n) 二、B樹手繪課堂 1. 結構解剖&#xff0…

全連接RNN反向傳播梯度計算

全連接RNN反向傳播梯度計算 RNN數學表達式BPTT(隨時間的反向傳播算法)參數關系網絡圖L對V的梯度L對U的梯度L對W和b的梯度 RNN數學表達式 BPTT(隨時間的反向傳播算法) 參數關系網絡圖 L對V的梯度 L對U的梯度 L對W和b的梯度

C++高效讀取大規模文本格式點云(windows)

需使用VS2017及以上版本&#xff0c;C語言標準選擇C17&#xff0c;支持OpenMP。 執行效率明顯優于ifstream stof。 // 點云數據結構 struct PointXYZ {std::array<float, 3> coord; };float string_to_float_fast(const std::string& str) {float value;auto [p…

【Linux】進程信號的捕捉處理

個人主頁~ 進程信號的捕捉處理 一、信號捕捉處理的概述1、信號捕捉處理全過程2、用戶態和內核態的區別&#xff08;一&#xff09;用戶態&#xff08;二&#xff09;內核態&#xff08;三&#xff09;用戶態與內核態的切換&#xff08;四&#xff09;硬件條件 二、再談進程地址…

Nyquist內置函數-概述

1 Nyquist內置函數-概述 本章提供奈奎斯特&#xff08;Nyquist&#xff09;語言參考。操作按功能和抽象級別分類。奈奎斯特在兩個重要級別上實現&#xff1a;“高級”級別支持行為抽象&#xff0c;這意味著像 stretch 和 at 這樣的操作可以應用。這些函數是典型用戶期望使用的…

數據驅動防災:AI 大模型在地質災害應急決策中的關鍵作用。基于DeepSeek/ChatGPT的AI智能體開發

全球氣候變化加劇了滑坡、泥石流等地質災害的發生頻率與不確定性&#xff0c;傳統基于統計與物理模型的預測方法常受限于?數據稀疏性?與?動態耦合復雜性?。近年來&#xff0c;AI智能體&#xff08;AI Agents&#xff09;與大型語言模型&#xff08;LLMs&#xff09;的突破為…

光譜相機在工業中的應用

光譜相機&#xff08;多光譜、高光譜、超光譜成像技術&#xff09;在工業領域通過捕捉物質的光譜特征&#xff08;反射、透射、輻射等&#xff09;&#xff0c;結合化學計量學與人工智能算法&#xff0c;為工業檢測、質量控制和工藝優化提供高精度、非接觸式的解決方案。以下是…

Dify工作流中如何去除deepseek-r1思考內容

在工作流中deepseek-r1的think標簽內部的內容&#xff0c;很容易讓工作流其他的llm產生幻覺&#xff0c;導致不能良好的生成目標效果。 我們通過代碼的方式讓deepseek-r1既有think思考鏈的效果&#xff0c;又不傳遞思考鏈。 工作流的邏輯為上圖 去除think中的代碼為 import re…

容器的CPU

1、限制進程的CPU 通過Cgroup來限制進程資源的使用&#xff0c;CPU Cgroup 是 Cgroups 其中的一個 Cgroups 子系統&#xff0c;它是用來限制進程的 CPU 使用的。 cpu.cfs_period_us&#xff0c;它是 CFS 算法的一個調度周期&#xff0c;一般它的值是 100000&#xff0c;以 mic…

【系統分析師-第二篇】

學習目標 通過參加考試&#xff0c;訓練學習能力&#xff0c;而非單純以拿證為目的。 1.在復習過程中&#xff0c;訓練快速閱讀能力、掌握三遍讀書法、運用番茄工作法。 2.從底層邏輯角度理解知識點&#xff0c;避免死記硬背。 3.通過考試驗證學習效果。 學習方法 第二遍快速…

【再探圖論】深入理解圖論經典算法

一、bellman_ford 1. 是什么松弛 在《算法四》中&#xff0c;對松弛的解釋是&#xff1a;relax the edge&#xff0c;看起來比較抽象&#xff0c;不過如果我們從生活中的實例去理解&#xff0c;就簡單多了&#xff1a; 試想一根繩索&#xff0c;當你握著繩索的兩頭使勁用力拉…

基于pycharm的YOLOv11模型訓練方法

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言一、前期準備1.1 軟件環境配置1.2 訓練集參考 二、訓練步驟2.1 打開文件夾2.2 打開文件2.3 data.yaml最終代碼 三、train.py四、最終結果五、detect.py六、 拓展…

用nodejs連接mongodb數據庫對標題和內容的全文本搜索,mogogdb對文檔的全文本索引的設置以及用node-rs/jieba對標題和內容的分詞

//首先我們要在Nodejs中安裝 我們的分詞庫node-rs/jieba,這個分詞不像jieba安裝時會踩非常多的雷&#xff0c;而且一半的機率都是安裝失敗&#xff0c;node-rs/jieba比jieba庫要快20-30%&#xff1b;安裝分詞庫是為了更好達到搜索的效果 這個庫直接npm install node-rs/jieba即…

水下聲吶探測儀,應急救援中的高效水下定位技術|深圳鼎躍

近年來&#xff0c;隨著水域活動增多及自然災害頻發&#xff0c;水下救援需求日益增長。傳統人工打撈方法在復雜水域中效率低、風險高&#xff0c;尤其在能見度差、水流湍急或深水區域中&#xff0c;救援難度倍增。 在此背景下&#xff0c;水下聲吶探測儀憑借其聲波定位與視頻…

AI 網關代理 LLMs 最佳實踐

作者&#xff1a;付宇軒&#xff08;計緣&#xff09; DeepSeek/QWen 普惠 AI 趨勢 隨著 DeepSeek-R1 的橫空出世&#xff0c;又一次點燃了原本已經有點冷淡的大語言模型市場和話題&#xff0c;并且快速成為了現象級&#xff0c;小到中小學生&#xff0c;大到父母輩都知道了中…

策略模式實際用處,改吧改吧直接用,兩種方式

controller RestController RequestMapping("admin/test") RequiredArgsConstructor(onConstructor __(Autowired)) public class TestController {Autowiredprivate VideoFactory VideoFactory;GetMapping("getList")public R getList(){// 第一種方式T…

chromium魔改——修改 navigator.webdriver 檢測

chromium源碼官網 https://source.chromium.org/chromium/chromium/src 說下修改的chromium源碼思路&#xff1a; 首先在修改源碼過檢測之前&#xff0c;我們要知道它是怎么檢測的&#xff0c;找到他通過哪個JS的API來做的檢測&#xff0c;只有知道了如何檢測&#xff0c;我們…

Muduo網絡庫實現 [九] - EventLoopThread模塊

目錄 設計思路 類的設計 模塊的實現 私有接口 公有接口 設計思路 我們說過一個EventLoop要綁定一個線程&#xff0c;未來該EventLoop所管理的所有的連接的操作都需要在這個EventLoop綁定的線程中進行&#xff0c;所以我們該如何實現將EventLoop和線程綁定呢&#xff1f;…