Linux系統中防火牆的架構及簡單分析

來源:互聯網
上載者:User

  Netfilter提供了一個抽象、通用化的架構,該架構定義的一個子功能的實現就是包過濾子系統架構套件含以下五部分:

  1. 為每種網路通訊協定(IPv4、IPv6等)定義一套鉤子函數(IPv4定義了5個鉤子函數), 這些鉤子函數在資料報流過協議棧的幾個關鍵點被調用。在這幾個點中,協議棧將把資料報及鉤子函數標號作為參數調用Netfilter架構。

  2. 核心的任何模組可以對每種協議的一個或多個鉤子進行註冊,實現掛接,這樣當某個資料包被傳遞給Netfilter架構時,核心能檢測是否有任何模組對該協議和鉤子函數進行了註冊。若註冊了,則調用該模組的註冊時使用的回呼函數,這樣這些模組就有機會檢查(可能還會修改)該資料包、丟棄該資料包及指示Netfilter將該資料包傳入使用者空間的隊列。

  3 .那些排隊的資料包是被傳遞給使用者空間的非同步地進行處理。一個使用者進程能檢查資料包,修改資料包,甚至可以重新將該資料包通過離開核心的同一個鉤子函數中注入到核心中。

  4. 任何在IP層要被拋棄的IP資料包在真正拋棄之前都要進行檢查。例如允許模組檢查IP-Spoofed包(被路由拋棄)。

  5.IP層的五個HOOK點的位置如下所示 :

  (1)NF_IP_PRE_ROUTING:剛剛進入網路層的資料包通過此點(剛剛進行完版本號碼,校正 和等檢測), 源地址轉換在此點進行;IP_Input.c中IP_Rcv調用。

  (2)NF_IP_LOCAL_IN:經路由尋找後,送往原生通過此檢查點,INPUT包過濾在此點進行;IP_local_deliver中調用

  (3)NF_IP_FORWARD:要轉寄的包通過此檢測點,FORWORD包過濾在此點進行;

  (4)NF_IP_POST_ROUTING:所有馬上便要通過網路裝置出去的包通過此檢測點,內建的目的地址轉換功能(包括地址偽裝)在此點進行;

  (5)NF_IP_LOCAL_OUT:本機進程發出的包通過此檢測點,OUTPUT包過濾在此點進行。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.