- Linux系統安全:縱深防御、安全掃描與入侵檢測
- 胥峰
- 705字
- 2019-08-06 18:29:25
2.2.1 理解iptables表和鏈
netfilter鉤子與iptables表和鏈的處理順序如圖2-1所示。
圖2-1 netfilter鉤子與iptables表和鏈的處理順序
netfilter有5個鉤子可以提供程序去注冊。在數據包經過網絡棧的時候,這些鉤子上注冊的內核模塊依次被觸發。這5個鉤子的處理時間如下。
·NF_IP_PRE_ROUTING:在數據流量進入網絡棧后立即被觸發,這個鉤子上注冊的模塊在路由決策前即被執行,如圖2-1中①所示的階段。
·NF_IP_LOCAL_IN:這個鉤子在路由判斷確定包是發送到本機時執行,如圖2-1中②所示的階段。
·NF_IP_FORWARD:這個鉤子在路由判斷是需要轉發給其他主機時執行,如圖2-1中的③所示的階段。
·NF_IP_LOCAL_OUT:這個鉤子在本機進程產生的網絡被送到網絡棧上時執行,如圖2-1中④所示的階段。
·NF_IP_POST_ROUTING:這個鉤子在數據包經過路由判斷即將發送到網絡前執行,如圖2-1中⑤所示的階段。
iptables中有以下5個鏈(Chain)。
·PREROUTING:NF_IP_PRE_ROUTING鉤子觸發。
·INPUT:NF_IP_LOCAL_IN鉤子觸發。
·FORWARD:NF_IP_FORWARD鉤子觸發。
·OUTPUT:NF_IP_LOCAL_OUT鉤子觸發。
·POSTROUTING:NF_IP_POST_ROUTING鉤子觸發。
iptables中有5種表(Table):
·filter表。iptables中使用最廣泛的表,作用是進行過濾,也就是由filter表來決定一個數據包是否繼續發往它的目的地址或者被拒絕丟棄。
·nat表。顧名思義,nat表用于網絡地址轉換,可以改變數據包的源地址或者目的地址。
·mangle表。用于修改IP的頭部信息,如修改TTL(Time to Live)。
·raw表。為iptables提供了一種不經過狀態追蹤的機制,在大流量對外業務的服務器上使用這個表可以避免狀態追蹤帶來的性能問題。
·security表。提供在數據包中加入SELinux特性的功能。在實際應用中,security一般不常用,因此在下面的章節中不再包含這一部分內容。
通過以上分析,我們知道netfilter僅僅有5個鉤子,而iptables有5個鏈和5種表,由此可見在一個鉤子上可能有多個表的不同鏈需要處理,如圖2-1中的raw表、mangle表、filter表都有POSTROUTING鏈,這些不同表中的鏈根據自己向內核注冊時的優先級(priority)依次處理。
- 操作系統實用教程(Linux版)
- 全屋互聯:智能家居系統開發指南
- 樂學Windows操作系統
- Windows Vista基礎與應用精品教程
- 從零開始寫Linux內核:一書學透核心原理與實現
- 寫給架構師的Linux實踐:設計并實現基于Linux的IT解決方案
- Windows 7實戰從入門到精通(超值版)
- Heroku Cloud Application Development
- Linux內核分析及應用
- Linux內核修煉之道
- Azure Resource Manager Templates Quick Start Guide
- 再也不踩坑的kubernetes實戰指南
- 基于Arduino的嵌入式系統入門與實踐
- Python機器學習系統構建(原書第3版)
- Unity AR/VR開發:實戰高手訓練營