linux防火牆分三種:
1:三層過濾,也就是包過濾。
2:七層過濾,也稱代理服務器型防火牆。它工作在osi模型的第七層,對數據的內容進行過濾。
3:複合型防火牆:整合三層和七層功能。
*三層過濾只對源ip和目的ip根據控制列表進行檢測而後選擇操作。
*七層過濾是進行拆包到用戶數據,並進行檢測後再進行操作。並且有日誌記錄的 功能。
七層過濾的原理是用戶的請求數據先發到代理服務器也就是防火牆,防火牆根 據它內部定義的規則來完成操作,然後把數據返回給服務器。返回數據也一 樣。
linux 防火牆分兩段:一段是工作在內核中對數據包進行真正的過濾的模塊,另一段是工作在用戶空間,實現規則的定義。
主要的命令是:iptables,它也就是我們剛所說的,一段工作在內核中,實現數據的過濾;一段工作在用戶空間,定義規則。
工作在內核中的規則鏈實現用戶與內核之間的“通信”。
默認有五條規則鏈:
1:INPUT:處理入站數據包。
2:OUTPUT:處理出站數據包
3:FORWARD:不進站,直接處理轉發數據。
4:POSTROUTING:在進入防火牆時進行路由選擇後處理數據包。
5: PREROUTING:在進行路由選擇前外理數據包。
處理機制在用戶空間叫規則表對五個規則鏈進行定義操作。
規則表有以下四種:
1:raw表:確定是否對該數據包進行狀態跟蹤
2:mangle表:爲數據包設置標記。
3:nat表:修改數據包中的源目標ip地址。
4:filter:確定是否放行該數據包
規則表間的優先順序:
依次是:raw mangle nat filter
規則鏈之間的匹配順序:1:入的順序:PREROUTING INPUT
出的數據:OUTPUT POSTROUTING
轉發數據:PREROUTING FORWORD POSTROUTING
規則鏈內的匹配順序:1:按照順序依次進行檢查,找到匹配的規則即停止。
2:若在該鏈內找不到匹配的規則則按照默認的規則進行處理
下面是規則表定義的規則鏈:raw:PREROUTING OUTPUT
manggle:PREROUTING POSTROUTING INPUT OUTPUT FORWARD五個規則鏈
nat表:PREROUTING POSTROUTING OUTPUT
filter:規則…… INPUT OUTPUT
下面是命令iptables的運用:
-t:指定操作的表 raw mangle nat filter
鏈管理命令:-P:默認策略
-F:清除
-N:自定義規則鏈
-E:重命名
-Z:清除計數器
-X:刪除指定的用戶自定義的鏈,且鏈必須還沒有運用。
規則管理命令:
-A:新增規則
-I:插入規則
-R: 修改規則
-D: 刪除規則
例:iptables -t filter -A INPUT -s 192.168.0.1/32 -j accept
意思是:在INPUT鏈上新增規則要求源ip爲192.168.0.1/32 的主機的數據包實行放行的規則。
最常用的匹配條件有:1:來源,目的(-s -d)
2:協議類型(-p)
3:來源;目的端口(-sport; dport)
4:流入;流出(-i;-o)
icmp協議是實現ping功能的協議。類型8:回射請求
類型0:回射應答
類型11:超時
基於協議的檢測。