iptable的概念與底層原理(詳解)


一、iptables

1.iptables簡介

什么是iptables?我們首先應該知道它是Linux平台最著名的防火牆工具,系統自帶的,從什么版本的內核開始自帶的呢,2.4以后。
它的全稱應該是netfilter/iptables,從這個名稱上看,它其實是兩個軟件。netfilter是運行在內核之中的,對數據包進行分析處理;iptables是提供用戶的一個配置管理工具,它可以設置一些表、表中有一些鏈條、鏈條上面有一些規則。通過iptables建立的一整個的規則體系,netfilter來對數據包進行分析處理。

 

 

 2.什么是防火牆?

防火牆一直被認為是保護敏感信息的第一道防線。他們在安全與受控內部網絡之間建立了一道屏障,提供低級保護,以及重要的日志記錄和審計功能。
它能監視傳入和傳出的流量,並根據一組以定義的安全規則決定是允許還是阻止特定流量。

 

 

 

 3.防火牆的種類

1.硬件防火牆(主機防火牆)f5
2.軟件防火牆(網絡防火牆)
iptables
firewalld

二、iptables基本介紹

 

 

 

 流程

用戶層  --->  調用iptables  --->  ip_tables內核模塊  --->  Netfilter(系統安全框架) --->  過濾請求

1.解析內容

1.iptables:
iptabes其實不是真正的防火牆,我們可以把它理解成一個客戶端代理,用戶通過iptables這個代理,將用戶的安全設定執行到對應的“安全框架中” 才是真正的防火牆,這個框架的名字叫netfiler
iptables其實是一個命令行工具,位於用戶空間,我們用這個工具操作真正的框架。
2.iptables內核模塊
ip_tables模塊它是防火牆的核心模塊,負責維護防火牆的規則表,通過這些規則,實現防火牆的核心功能。

3.netfilter:
netfilter才是防火牆真正的安全框架,netfilter位於內核空間
Netfilter是Linux操作系統核心層內部的一個數據包處理模塊,它具有如下功能:網絡地址轉換(Network Address Translate), 數據包內容修改, 以及數據包過濾的防火牆功能

三、iptables流程講解

1.流入本機

 

 

 

2.解析流入本機

講解:,
        當外部的數據進入時通過網卡進入本機后,在網絡層時會經過PREROUTING(主機外報文進入位置)鏈繼續前進到達用戶層之前會經過INPUT鏈。



解析流程:
  數據進入(通過網線) ---> 鏈接網卡設備---->網絡接口層---->netfilter---->在網絡層時會經過PREROUTING(主機外報文進入的位置)鏈---> TCP UDP協議--->進入用戶層之前(INPUT)---->到達用戶層

3.流出本機

 

 

4.解析(流出本機) 

講解:
    當用戶從用戶層發出數據之后,會先經過OUTPUT鏈,在經過了OUTPUT鏈到達Netfilter防火牆,在經過防火牆到達設備驅動之前,會經過POSTROUTING鏈,之后在發送出去。
    
流程圖解析:
用戶操作命令工具(iptables) --> OUTPUT鏈 --> ip_tables內核模塊 -->
Netfilter(防火牆) --> 網絡層 --> 網絡接口層 --> POSTROUTING鏈
-- 設備驅動    --> 網絡傳輸出

5.經過本機

 

 

 6.解析

講解:
    報文經過路由並且發覺目的並不是本機,在經過PREROUTING鏈進入本機發現最終目的並不是本機時被轉到FORWORD鏈后經過POSTROUING鏈轉發出去。
    
流程解析:
數據進入 --> PREROUTING --> FORWARD --> POSTROUTING --> 出去

四、什么是包過濾防火牆

1.什么是包

    在數據傳輸過程中,並不是一次性傳輸完成的:而是將數據分成若干個數據包,一點一點的傳輸。

 

 

 

 

2.什么是包過濾防火牆?
過濾數據包的防火牆。
3.包過濾防火牆如何實現?
通過系統安全框架,過濾數據包。

五:Iptables四表五鏈的概念

1.什么叫表?
具備某種功能的集合叫做


2.那四個表有什么作用?
filter 負責做過濾功能 INPUT、OUTPUT、FORWARD
nat 網絡地址轉換 PREROUTING、INPUT、OUTPUT、POSTROUTING
mangle 負責修改數據包內容 PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD
raw 負責數據包跟蹤 REROUTING、OUTPUT

3.五條鏈運行在那些地方?
1)REROUTING:    主機外報文進入的位置,允許的表    mangle, nat(目標地址轉換,,通常指相應報文)
2)INPUT:    報文進入本機用戶空間位置。允許的表filter, mangle
3)  OUTPUT:    報文從本機用戶空間出去的位置,允許的表filter,mangle,nat
4) FOWARD:      報文經過路由並且發覺不是本機,決定轉發但man還不確定從那個網卡出去允許的filter,  mangle
5) POSTROUTING:報文經過路由被轉發出去,允許mangle,nat(源地址轉換,把原始地址轉換為轉發主機出口網卡地址)

4.五鏈表格

名稱 功能 作用的表
PREROUTING 主機外報文進入位置 mangle, nat(目標地址轉換,,通常指響應報文)
INPUT 報文進入本機用戶空間位置 filter, mangle
OUTPUT 報文從本機用戶空間出去的位置 filter, mangle, nat
FOWARD 報文經過路由並且發覺不是本機決定轉發但還不知道從哪個網卡出去 filter, mangle(中轉)
POSTROUTING 報文經過路由被轉發出去 許mangle,nat(源地址轉換,把原始地址轉換為轉發主機出口網卡地址)

 

六、iptables全面流程圖(詳解)

 

 

1.解析流程順序


流入本機: A  --->  PREROUTING  --->  INPUT ---> B
解析:
    網絡經過該流程才能發出(出去)
    
流出本機:OUTPUT  --->  POSTROUTING  ---> B
    網絡經過該流程才能進入(進來)
    
經過本機: A ---> OUTPUT ---> POSTROUTING | ---> PREROUTING ---> FORWARD  ---> POSTROUTING ---> C ---> PREROUTING  ---> INPUT ---> B
2.經過本機(內容解析)
 A ---> OUTPUT ---> POSTROUTING    
 作用於A階段(出去)
 
 c相當於是一個防火牆
 PREROUTING ---> FORWARD  ---> POSTROUTING ---> C 
作用於C階段(出去)

PREROUTING  ---> INPUT ---> B
作用於B階段(進入)

七:鏈包含表

filter :  INPUT 、OUTPUT 、FORWARD
nat : PREROUTING 、 OUTPUT、 POSTROUTING
raw : PREROUTING、 OUTPUT
mangle : PREROUTING INPUT FORWARD OUTPUT POSTROUTING

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM