防火墻,其實就是用于實現Linux下訪問控制的功能的,它分為硬件和軟件防火墻兩種。無論是在哪個網絡中,防火墻工作的地方一定是在網絡的邊緣。而我們的任務就是需要去定義到底防火墻如何工作,這就是防火墻的策略、規則,以達到讓它對出入網絡的IP、數據進行檢測!
1. 關于防火墻
目前市面上比較常見的有三、四層的防火墻,叫做網絡層的防火墻,還有七層的防火墻,其實是代理層的***。對于TCP/IP的七層模型來講,我們知道第三層是網絡層,三層的防火墻會在這層對源地址和目標地址進行檢測。但對于七層的防火墻,不管你源端口或者目標端口,源地址或者目標地址是什么,都將對你所有的東西進行檢查。所以,對于設計原理來講,七層防火墻更加安全,但是這卻帶來了效率更低。所以市面上通常的防火墻方案,都是兩者相互結合的。
2. iptables的發展
包括iptables及其前身在內,這些都是工作在用戶空間中,定義規則的工具,本身并不算是防火墻。它們定義的規則,并且可以讓在內核空間當中的“Netfilter”來讀取,從而實現讓防火墻工作。而放入內核的地方必須要是特定的位置,必須是TCP/IP的協議棧所經過的地方——Netfilter。
iptables只是防火墻的管理工具,在內核中真正實現防火墻功能的是Netfilter。
對Linux而言,TCP/IP協議棧存在于內核當中,這就意味著對數據報文的處理是在內核中處理的,也就是說防火墻必須在工作在內核中,防火墻必須在內核中完成TCP/IP報文所流進的位置,使用規則去檢查,才真正能工作起來。
3. iptables的結構
從上面的發展我們知道了作者選擇了五個位置,來作為控制的地方,但是你有沒有發現,其實前三個位置已經基本上能將路徑徹底封鎖了,但是為什么已經在進出的口設置了關卡之后還要在內部設置關卡呢?由于數據包尚未進行路由決策,還不知道數據要走向哪里,所以在進出口是沒有辦法實現數據過濾的。所以要在內核空間里設置轉發的關卡,進入用戶空間的關卡,從用戶空間出去的關卡。那么,既然他們沒有什么用,我們為什么還要放置他們呢?
因為在進行NAT/DNAT的情況下,目標地址轉換必須在路由之前轉換。所以我們必須在外網而后內網的接口處進行設置關卡。
Netfilter規定的這五個位置也叫五個規則鏈:
iptable的結構:在數據包過濾表中,規則被分組放在我們所謂的鏈中。鏈,就是一個規則的列表(如圖所示)。
要設置一個Linux防火墻,就要使用規則,每個規則指定在包中與什么匹配,以及對包執行什么操作。那么什么是規則呢?因為iptables利用的是數據包過濾的機制,所以它會分析數據包的報頭數據。根據報頭數據與定義的規則來決定該數據包是否可以通過或者是被丟棄。也就是說,根據數據包的分析資料來與預先定義的規則內容進行“比對”,若數據包數據與規則內容相匹配則進行相應的處理,否則就繼續下一條規則的比對。重點在于比對與比對的順序。
什么是表和鏈呢?
這得由iptables的名稱說起,為什么稱為iptables呢?因為它里面包含有多個表格(table),每個表格都定義出自己的默認策略與規則,且每個表格的用途都不相同。iptables包含四個表,五個鏈。其中表是按照對數據包的處理功能區分的,鏈是按照不同的Hook點來區分的,表和鏈實際上是netfilter的兩個維度。
四個規則表分別為:Filter、NAT、Mangle、Raw,默認表是Filter(沒有指定表的時候就是Filter表)。 表的處理優先級為:Raw>Mangle>NAT>Filter
常用的三個表:
iptables采用的是數據包過濾機制工作的,所以它會對數據包的報頭信息進行分析,并根據我們預先設定的規則進行匹配來決定是否對數據包的處理方式。
防火墻是層層過濾的,實際是按照匹配規則的順序從上到下,從前到后進行過濾的。如果匹配上規則,即明確表明是阻止還是通過,數據包就不在向下繼續進行匹配了。如果規則中沒有明確判斷出處理結果,也就是說不匹配當前規則,那么就繼續向下進行匹配,直到匹配默認的規則,得到最后的處理結果。所以說規則的順序至關重要。
防火墻的默認規則是所有的規則均不匹配時,才會執行的規則。
指令常用操作選項:
常用封包比對參數:
其它選項:
操作實例:禁止SSH遠程登錄
注意:通過命令行添加的防火墻指令僅僅是臨時生效的,系統重啟即失效。
處理動作包括:
指令格式示意圖:
兩種增加規則選項的差別:
-A chain rule-specification:添加規則到指定規則鏈的結尾,成為最后一條規則。
-I chain [rulenum] rule-specification:如果沒有指定序號,則添加的規則將成為對應鏈中的靠前條規則。如果指定了序號,則成為該序號上的規則,而原來位于該序號的規則將往后移一位。
操作實例:禁止PING本機(ping指令屬于ICMP協議,其類型為“8”)
1. 配置案例講解
生產環境配置防火墻主要有兩種模式:逛公園及看電影模式
逛公園模式:默認隨便進出,對非法分子進行拒絕。企業應用:企業配置上網***路由。
看電影模式:默認沒票進不去,花錢買票才能夠進入電影院。企業應用:服務器防火墻。
可以看出,還是第二種模式更加的嚴格和安全。其本質區別就是防火墻的默認規則是允許還是拒絕。
企業面試題:自定義鏈處理“syn”攻擊
2. 工作中如何維護防火墻
實際生產中,一般靠前次添加規則是以命令行或者腳本的方式進行,然后一次性的保存成配置文件,之后的維護工作就是圍繞著對該配置文件的修來來進行。
3. 配置***
靠前步:首先,作為***的主機除了要具備雙網卡并且能夠連接互聯網等物理條件外,還要確保將內核的轉發功能打開。
另外,還要求Filter表的“FORWARD”鏈允許通過。
第二步:確保***主機的相關模塊已經加載
第三步:內網服務器要能夠Ping通***主機的內外網卡。
第四步:在***主機上配置規則(兩種方法)。
至此,Linux***主機配置完畢。
還有一種應用,就是把外部IP地址及端口映射到內部服務器的地址及端口(和共享上網的環境一樣)。
要求:
企業應用場景:
把訪問外網ip及端口的請求映射到內網某臺服務器的地址及指定端口上(企業內部)。
硬件防火墻,把訪問LVS/Nginx外網VIP及80端口的請求映射到IDC負載均衡服務器內部IP及指定端口上(IDC機房的操作)
iptables在企業中的應用小結:
Linux主機防火墻(表:Filter
最為內網共享上網的***(表:NAT,鏈:POSTROUTING)
由外到內的端口映射(表:NAT,鏈:PREROUTING)
指定地址段
4. 端口映射
連接跟蹤表已滿,開始丟包的解決辦法:
一、關閉防火墻。 簡單粗暴,直接有效
二、加大防火墻跟蹤表的大小,優化對應的系統參數
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
這是陽光明媚的一天,互聯網里風平浪靜,一切都是欣欣向榮。我就是在這樣一個平凡的日子里誕生了。我給自己起了個名字叫超,不過我的師哥師姐們都喜歡叫我小超。從出生的那...
網上關于SEO優化的知識很多也很雜,很多新手都不知道如何選擇。本來耗子網站里每篇文章都有的詳細步驟的,考慮到很雜,于是耗子對各種SEO優化基礎知識進行了整理,但...
今天,我給大家講講如何利用電影貼吧引流輕松變現。這個很適合新手。廢話不多說,直接上干貨。每上映一個新片子,只要這個片子有一定的熱度,馬上該片子的貼吧就會出現各種...
隨著互聯網的快速發展,網站經營和推廣已成為企業獲取客戶和提升品牌知名度的重要手段之一。作為泉州領先的SEO公司,我們致力于為客戶提供全方位的網站SEO優化服務,幫助您在百度、谷歌、抖音以及自媒體平臺上獲得更多的曝光和流量。本文將為您詳細介紹我們公司的特色服務和優勢,以及如何進行網站SEO優化,幫助您更好地了解和利用搜索引擎優化來推廣您的產品和服務。一、泉州SEO網站經營及特色介紹1. 百度SEO優...
對于任何一個網站的經營者而言,如何使自己的網站在搜索引擎上獲得更好的排名一直是一個重要的課題。本文將為您介紹10種提升網站搜索引擎排名的方法,助您在競爭激烈的互聯網世界中獲得更好的排名。選擇合適的關鍵字關鍵字是搜索引擎優化中最基本、也是最重要的元素之一。在選擇關鍵字時,我們需要根據目標受眾和網站內容來確定關鍵字的選擇。一般來說,我們應該優先選擇那些相關度高、搜索量適中、競爭度低的關鍵字。構建友好的...
百度SEO關鍵詞介紹:百度SEO關鍵詞指的是在百度搜索引擎中被搜索者輸入的關鍵詞。在優化網站時,選擇合適的關鍵詞并通過對其進行優化,可以提升網站在百度搜索結果中的排名。百度SEO不穩定因素的5個包括:1.搜索算法:隨著百度搜索算法的不斷升級,網站排名也會隨之發生變化。2.外部鏈接質量:外部鏈接是影響網站排名的重要因素,但鏈接質量不同會導致排名波動。3.網站內容質量:網站內容質量是影響排名的核心因素...