1. 防火牆技術
防火牆是用於阻止計算機之間直接通信,位於兩個或多個網絡間,實施網絡之間訪問控制的組件集合。
技術 | 協議棧 | 判據 | 檢測內容 | 邏輯位置 | 物理位置 | 代表 |
---|---|---|---|---|---|---|
靜態包過濾 | 網絡層 | 訪問控制表 | 源地址, 目的地址 | 網絡邊界 | 負責內外網絡轉換的網關, 個人計算機 | 已退出市場 |
動態包過濾 | 網絡層, 傳輸層 | 訪問控制表 | 端口號, 協議狀態 | 網絡邊界 | 負責內外網絡轉換的網關, 個人計算機 | 無 |
應用級網關 | 應用層 | 應用協議分析 | 截進出某應用程序的所有封包,並且封鎖其他的封包,通常是直接將封包丟棄 | 兩個網絡的駁接處 | 通用PC平臺或芯片級專用硬件平臺 | NetScreen, FortiNet |
代理服務 | 應用層 | 略 | 略 | 略 | 小型的帶有數據檢測過濾功能的透明代理服務器 | 略 |
狀態監視 | 略 | 略 | 略 | 略 | 略 | Checkpoint |
數據庫協議分析與控制技術 | 略 | 略 | 略 | 略 | 略 | 略 |
2. 防火牆策略
策略 | 內容 |
---|---|
通策略 | 默認門是全關的,必須要定義誰能進 |
堵策略 | 默認門是洞開的,有身份認證就能進 |
3. 應用軟件
iptables 現在被做成了一個服務,可以進行啓動,停止的。啓動,則將規則直接生效,停止,則將規則撤銷。
iptables 還支持自己定義鏈。但是自己定義的鏈,必須是跟某種特定的鏈關聯起來的。
在一個關卡設定,指定當有數據的時候專門去找某個特定的鏈來處理,當那個鏈處理完之後,再返回。接着在特定的鏈中繼續檢查。
軟件包 | 工作空間 | 功能 |
---|---|---|
iptables | 用戶空間 | 規則列表,定義規則和策略 |
netfilter | 內核空間 | 網絡過濾器,讀取規則和策略 |
4. 數據包流向
一個特定是數據包必定會經過規則鏈中的一個或多個。
類型 | 流向 |
---|---|
本機向外界發 | Output -> Postrouting |
外界向本機發 | Prerouting -> Input |
外界經過本機向外界發 | Prerouting -> Forward -> Postrouting |
5. 規則鏈
也叫做鉤子函數(hook functions),由 netfilter 規定。
規則鏈就是規則的集合。針對特定數據包的各種防火牆規則,按照順序依次放入對應的鏈中。
名稱 | 位置 | 含義 | 內容 | 判斷時機 | 舉例 |
---|---|---|---|---|---|
PREROUTING | 路由前 | for altering packets as soon as they come in | 當收到要通過防火牆發送給其他網絡地址的數據包時應用的規則 | 在對數據包做路由選擇之前 | 略 |
INPUT | 數據包入口 | for packets destined to local sockets | 外界訪問防火牆數據的規則的集合 | 收到訪問防火牆本地地址的數據包時 | 限制某IP是否可以管理防火牆 |
FORWARD | 轉發關卡 | for packets being routed through the box | 所有通過防火牆的數據的規則的集合 | 收到要通過防火牆發送給其他網絡地址的數據包時 | 限制某IP是否能訪問某網站 |
OUTPUT | 數據包出口 | for locally-generated packets | 防火牆訪問外界數據的規則的集合 | 防火牆本機向外發出數據時 | 是否允許防火牆對外進行DNS解析 |
POSTROUTING | 路由後 | 略 | 略 | 在對數據包做路由選擇之後 | 略 |
1. 名詞
狀態監視 Stateful Inspection
應用協議分析(Application Protocol Analysis)技術工作在OSI模型的最高層——應用層上,在這一層裏能接觸到的所有數據都是最終形式,也就是說,防火牆“看到”的數據和我們看到的是一樣的,而不是一個個帶着地址端口協議等原始內容的數據包,因而它可以實現更高級的數據檢測過程。
通用PC平臺:使用標準計算機的硬件平臺和一些功能經過簡化處理的UNIX系列操作系統
專用硬件平臺:採用專門設計的硬件平臺,搭建專門開發的防火牆軟件
靜態數據包過濾 Static Packet Filtering
動態數據包過濾 Dynamic Packet Filtering 與基於狀態的包過濾防火牆技術,即Stateful-based Packet Filtering 其實是同一類型
應用級網關 Application Level Gateways
代理服務(Proxy Service)也稱鏈路級網關或TCP通道(Circuit Level Gateways or
TCP Tunnels)
訪問控制表 Access Control Table
協議棧:TCP/IP 協議棧層級
網絡邊界:兩個網絡之間的接口處,稱爲邊界防火牆,工作於操作系統網絡處理接口與網絡驅動程序接口(Network Driver Interface Specification,NDIS)之間
代理服務器(Transparent Proxy)
網絡邊界,即兩個網絡之間的接口處,在操作系統網絡處理接口與網絡驅動程序接口之間
2. 在協議棧的不同層級有什麼不同?
在網絡層只能對源地址和目標地址進行檢測,而在應用層,軟件處理的數據同人們看到的數據,包含所有信息。
3. 什麼影響防火牆的性能?
吞吐量可能成爲流量瓶頸。
6. 規則表定義
爲了讓各個功能交替工作,我們制定出了“表”這個定義,來定義、區分各種不同的工作功能和處理方式。
除了三張默認的表外,我們還可以自定義額外的鏈。
規則的次序非常關鍵,誰的規則越嚴格,應該放的越靠前,而檢查規則的時候,是按照從上往下的方式進行檢查的。
規則表 | 內容 | 作用於哪種數據包或規則鏈 |
---|---|---|
filter | 定義過濾功能,即數據包中的通策略或堵策略,用於管理本機數據包的進出。 | INPUT, FORWARD, OUTPUT |
nat | 定義地址轉換功能。用於來源地與目的地的 IP 或 port 轉換,用於管理後端主機(防火牆內部主機的)訪問internet。與本機無關。主要與 Linux 主機後的內部計算機有關 | PREROUTING, OUTPUT, POSTROUTING |
mangle | 修改報文原數據,即特殊數據包的路由標記,即修改TTL。能夠實現將數據包的元數據拆開,在裏面做標記/修改內容的。而防火牆標記,其實就是靠mangle來實現的。用於管理有特殊標記的包 | PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING |
raw | 略 | 略 |
security | 略 | 略 |
7. 參考
http://zhidao.baidu.com/question/23063704.html
http://www.xuexila.com/diannao/360634.html
http://blog.chinaunix.net/uid-23886490-id-3167640.html
http://drops.wooyun.org/tips/1424
http://blog.chinaunix.net/uid-9950859-id-98279.html