Firewall 防火牆基礎

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

http://blog.chinaunix.net/uid-26495963-id-3279216.html

http://blog.csdn.net/houlc/article/details/7089436

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章