linux防火牆(一)—— iptables架構介紹


一、防火牆的分類

  一般宏觀來說,防火牆分為主機型防火牆,例如我們為了防止個人電腦被攻擊,而開啟的防火牆,還分為網關型防火牆,一般部署在企業的網關,用於過濾和轉發,保證整個企業的網絡環境安全性。

  按照物理狀態又分為:軟件防火牆和硬件防火牆

  按照功能分:包過濾型、狀態檢測型和代理性

二、iptables介紹

  iptables防火牆屬於包過濾型,工作在網絡層,針對IP數據包,體現在對包內的IP地址和端口等信息的處理上(源IP、端口和目標IP、端口)。

  iptables防火牆由netfilter和iptables組成,netfilter指的是linux內核中實現包過濾防火牆的內部結構、不以程序或文件形式存在,屬於“內核態”,iptables指用來管理linux防火牆的命令程序,通常位於/sbin/iptables目錄下,是“用戶態”。

三、iptables結構

  iptables由4表、5鏈和用戶在鏈內寫入的各種規則所組成。

  1、表:容納各種規則鏈;表是按照功能分的類,具體功能如下:

  (1)raw表:用來決定是否對數據包進行狀態跟蹤。(不常用)

  (2)mangle表:為數據包設置標記,有ACK、SYN、FIN、RST、PSH、URG等標記。(不常用)

  (3)nat表:修改數據包的IP地址、端口等信息。(網關型防火牆常用)

  (4)filter表:確定是否放行數據包。(常用)

  2、鏈:容納各種防火牆規則;鏈是按照時機分的類。

  (1)input:處理入站請求包

  (2)output:處理出站包(就是響應、應答包)

  (3)forward:處理轉發數據包,實現不同網段間的通信

  (4)prerouting:在包做路由選擇之前應用此鏈的規則

  (5)postrouting:在數據包做路由選擇之后應用此鏈的規則

表鏈結構圖

注:初學者很難把表和鏈的關系聯系起來,首先大家要牢記,表是按照功能分類,鏈是按照時機分類,這里給大家舉個例子,比如第三條意思是:只有在路由前和路由后還有出站的時候才能修改數據包的IP地址和端口信息。

四、數據包過濾的匹配流程

1、規則表之間的順序:raw→mangle→nat→filter

2、規則鏈之間的順序:

  (1)入站數據流向:prerouting→input

  (2)出站數據流向:output→postrouting

  (3)轉發數據流向:prerouting→forward→postrouting

注:(1)和(2)多用於主機型防火牆,(3)多用於網絡型防火牆

3、規則鏈內的匹配順序:

  按照順序依次檢查,匹配即停止(log策略例外);若找不到相匹配的規則,按該鏈的默認策略處理。

匹配流程示意圖:

 

五、防火牆的路由功能

  防火牆可作為路由器起轉發作用,具體操作如下:

  (1)永久生效方法

  vim etc/sysctl.conf

  修改

  forward = 1

  sysctl -p(立即生效)

  (2)臨時生效方法

  echo 1 > /proc/sys/net/ipv4/ipforward

  或者 sysctl -w net.ipv4.ip_forward=1

 


免責聲明!

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



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