IPtables之一 基本概念介紹

2021-12-30 04:37:53 字數 1649 閱讀 3004

防火牆按照實現方法可以分為軟體防火牆和硬體防火牆

純硬體防火牆是很少的,一般見到的防火牆裝置都是依靠軟體搭配實現

按照功能可以將防火牆分為包過濾防火牆和閘道器**型防火牆

包過濾防火牆

工作在網路層和傳輸層。特點:效率高,安全性不及閘道器型防火牆

包過濾防火牆又可以分為「狀態檢測型」和「簡單包過濾型」

閘道器**型

工作於應用層,位於osi的最高層。特點:效率低,安全性好

而在linux中,iptables是一款自帶的防火牆軟體,基於核心實現網路流量的過濾

針對資料報的ip位址,埠,標誌位,連線狀態定義相應的防火牆規則,匹配規則後用指定的處理機制進行處理,可以是允許,可以是丟棄

首先簡單介紹一下乙個資料報進入linux後是如何處理的

資料報從網絡卡1進入linux主機後,首先進入核心維護的網路記憶體空間佇列。核心接手資料報後,會進行一系列的流水線處理

核心的tcp/ip協議棧解封ip頭部後,先是檢測資料報的目的ip,然後對比路由表

如果目標ip是指向自己,於是檢測tcp首部,將資料報遞交給處於核心空間和使用者空間的套接字(即埠),讓使用者空間的程式進行處理。使用者程式從套接字取出資料後,進行處理後,改寫目標ip和源ip,從新遞交給對應的套接字。然後tcp/i協議棧進行資料報的封裝,原路返回

如果目標ip不是自己,對比路由表,如果是將要從網絡卡2傳送出去的。tcp/ip協議棧就直接將資料從記憶體中取出,交由網絡卡2傳送出去,這一切將都在核心空間完成,無需進入使用者空間

iptables分為2部分,一部分位於核心中,用來存放規則,稱為netfilter。還有一段在使用者空間中,用來定義規則,並將規則傳遞到核心中,這段在使用者空間中的程式就叫做iptables。

其中存放規則有5個地方,分別位於1、2、3、4、5 這5個點

1是由內部主動發往外部的規則,2是由外部發往內部的規則,3是不進入使用者空間,進行路由**的規則,4是資料進來,還未查詢路由表之前的規則,5是查詢完路由表,將要出去的規則

在這5個點都可以定義不同的規則,用以實現處理不同流向的資料報

這5個過濾點,在核心中也叫做hook function(鉤子函式)

而這5個鉤子,也有著個自的名字

1:input 2:output 3:forward 4:prerouting 5:postrouting

對於4和5,主要是為了實現nat功能

真正做資料過濾的地方在123這3個點

具體資料的流向

在這張圖中,raw用的比較少不多做介紹,而mangle主要用以資料報的的修改。在處理資料報時,優先順序依次以mangle、nat、filter排序

在iptables中,以鏈為單位定義一組規則,對於不同功能的鏈又組成不同的表

鏈也可以自定義建立,但不會直接生效,需要在預設的鏈中建立規則跳轉,可以將資料報的匹配檢查跳轉到自定義建立的鏈中。如果在自定義建立的鏈中匹配到,就直接進行處理,如果匹配不到,就跳轉會預設的鏈中

由於這一切都是在核心中完成的,所以在使用者空間中的iptables傳遞規則給netfliter後,並不會永久有效,在重啟後規則就會丟失,於是可以將規則寫成指令碼,在每次啟動系統時將規則傳遞給核心

而redhat則使用另外一種機制來應用規則和取消規則,具體的實現方法,下篇博文再細細介紹

摘自:lustlost.blog.51cto.com/2600869/937471

eventlet學習筆記之一 基本概念

如果這是您第一次使用eventlet,您可能會發現設計模式文件中的示例是乙個很好的起點。eventlet是圍繞綠色執行緒 即協程,我們使用術語可互換 的概念構建的,這些概念是為了進行與網路相關的工作而啟動的。綠色執行緒與正常執行緒的區別主要有兩種 eventlet.spawn func,args,k...

機器學習基礎之一 基本概念

一 機器學習方法分類 監督學習 訓練樣本帶標記 分類 回歸 無監督學習 訓練樣本無標記 聚類 異常檢測 半監督學習 訓練樣本帶少量標記 強化學習 通過狀態空間大量試錯學習得最佳決策 決策 深度學習 以上ml方法和深度神經網路的結合 分類 聚類 決策 二 機器學習流程 1.實際問題抽象為數學問題 理解...

一 基本概念

資料 程式的操作物件,用於描述客觀事物 資料元素 組成資料的基本單位 資料項 乙個資料元素由若干個資料項組成 資料物件 性質相同的資料元素的集合 陣列,鍊錶 struct person 一種資料型別 int main void 資料項 p1.age 0 資料項 線性結構 元素之間的關係為一對一 圖形...