逢 甲 大 學
資 訊 工 程 學 系 專 題 報 告
硬 體 防 火 牆
學 生 : 黃 思 華 ( 四 乙 )
陳 俊 宇 ( 四 乙 )
廖 明 沂 ( 四 乙 )
陳 建 帆 ( 四 乙 )
指 導 教 授 : 賴 坤 助 教 授
中 華 民 國 九 十 一 年 十 二 月
目 錄
圖表目錄
···IV摘要
··· VII第一章 導論
··· 1 1.1 什麼是防火牆 ··· 1 1.2 硬體防火牆與軟體防火牆 ··· 2 1.3 防火牆的基本功能 ··· 3 1.4 市售各家防火牆的功能及規格 ··· 7 1.5 防火牆相關技術及名詞解說 ···13第二章 封包的進出及架構簡介
···19 2.1 IEEE 802.3 ···19 2.1.1 Ethernet III 訊框格式 ···22 2.1.2 CRC-32 訊框檢查碼 ···24 2.1.3 CSMA/CD 通訊協定 ···26 2.2 網路卡內部訊框進出流程 ···32 2.2.1 Packet Reception ···32 2.2.2 DMA 原理 ···34 2.2.3 IRQ 中斷請求 ···362.2.4 ARPpacket and MACadress spoofing 38 2.3 我們的防火牆架構 ···42
第三章 Linux 核心防火牆技術
···433.1 netfilter ···43
3.1.2 netfilter 的四個部分 ···43 3.1.3 Netfilter 的架構···45 3.1.4 Netfilter base ···46 3.2 防火牆工具 iptables ···47 3.2.1 什麼是 iptables ···47 3.2.2 封包在 iptables 中的處理 ····48 3.2.3 iptables 的結構 ···49 3.2.4 iptables 中的 chains ···51 3.2.5 iptables 防火牆規則設定 ····54 3.3 NAT HOWTO ···61 3.3.1 什麼是 NAT ···61 3.3.2 為什麼要用 NAT ···62 3.3.3 SNAT 與 DNAT ···63
3.3.4 NAT 與 Packet Filtering 整合 ··64
第四章 防火牆的硬體加速
···66 4.1 軟體的字串比對演算法 ···67 4.1.1 暴力式演算法 ···67 4.1.2 Knuth、Morris、Pratt 演算法 ··67 4.1.3 Boyer、Moore 演算法 ···68 4.1.4 Robin 、Karp 字串搜演算法 ···69 4.2 硬體的字串比對設計 ···70 4.2.1 字串比對設計方法 ···70 4.2.2 比對不明字串(A*B) ···794.2.3 比對不明字元(A?B) ···81 4.3 模擬結果 ···83
第五章 防火牆網管
···85 5.1 防火牆功能介紹 ···85 5.2 畫面展示 ···86工作分配
···89參考資料
···90圖 表 目 錄
圖 2-1 CSMA/CD 網路匯流排架構 ···20
圖 2-2 IEEE 802.3 通訊結構 ···21
圖 2-3 Ethernet III Frame 格式 ···22
圖 2-4 Ethernet III Frame 地址欄位格式 ···23
圖 2-5 CRC-32 硬體線路圖···26 圖 2-6 CSMA/CD 訊框接收流程圖 ···28 圖 2-7 CSMA/CD 訊框傳送流程圖 ···29 圖 2-8 基頻 CSMA/CD 網路衝撞偵測 ···31 圖 2-9 網路卡內部構造方塊圖 ···32 圖 2-10 DMA 控制器方塊圖···34 圖 2-11 ARP 封包格式 ···38 圖 2-12 IP 封包格式 ···40 圖 2-13 ICMP 封包格式 ···41 圖 2-14 TCP 封包格式 ···41 圖 2-15 我們的防火牆整體架構圖 ···42 圖 3-1 Netfilter 系統下封包的傳輸流程 ···45 圖 3-2 封包在 iptables 中的處理流程···48 圖 3-3 iptable 結構示意圖 ···49
圖 3-4 IP datagram 在 Linux Kernel 中處理的狀態圖 ···51
圖 3-5 iptables 中 chains 示意圖 ···52
圖 3-7 NAT 的運作示意圖 ···62 圖 4-1 封包資料比對···66 圖 4-2 暴力式演算法···67 圖 4-3 K.M.P 演算法圖 1 ···67 圖 4-4 K.M.P 演算法圖 2 ···67 圖 4-5 Boyer、Moore 演算法···68 圖 4-6 Boyer、Moore 演算法···68 圖 4-7 Boye、Moore 演算法 ···68 圖 4-8 Boye、Moore 演算法 ···69 圖 4-9 Boye、Moore 演算法 ···69 圖 4-10 Boye、Moore 演算法···69 圖 4-11 硬體字串比對實作圖解 ···70 圖 4-12 硬體字串比對流程圖 1···71 圖 4-13 硬體字串比對流程圖 2···72 圖 4-14 硬體字串比對流程圖 3···73 圖 4-15 硬體字串比對流程圖 4···74 圖 4-16 硬體字串比對流程圖 5···75 圖 4-17 硬體字串比對流程圖 6···76 圖 4-18 硬體字串比對流程圖 7···77 圖 4-19 硬體字串比對流程圖 8···78 圖 4-20 硬體字串比對流程圖 9···79 圖 4-21 硬體字串比對 (A*B) ···80
圖 4-22 硬體字串比對 (A?B) ···81 圖 4-23 結果模擬波形圖一 ···82 圖 4-24 結果模擬波形圖二 ···83 圖 4-25 結果模擬波形圖三 ···84 圖 5-1 設定群組畫面···86 圖 5-2 設定規則畫面···87 圖 5-3 管理規則畫面··· 88
摘 要
防火牆主要的工作是監看與處理所有進出的封包,依每一條過濾 規則對封包進行比對的工作,再依比對結果決定是否讓這個封包通 過。所以就效能而言,用硬體實做防火牆有平行處理的能力,可同時 處理多筆資料,這是硬體防火牆相較於軟體防火牆最大的優點。在我 們專題的研究,由於受限環境與資金不足,所以只能針對防火牆中最 重要的字串比對這個部分進行模擬研究,將我們所想到的演算法以 VHDL 搭配 MaxPlus II 模擬字串比對效能最佳化。 另外,為了解 Linux 核心所提供的防火牆功能,我們也對 Linux 的封過過濾技術進行研究,了解 Linux 核心對封包的處理。我們採用bridge 模式架設一部 Linux 防火牆,透過 bridge 連結兩端的網路, 檢查通過 bridge 的封包。我們用 Perl 實做一個 GUI 介面的防火牆控 管系統,操控 Linux 核心來管理封包。系統管理員可以透過 Web Browser 對通過 bridge 的封包進行控管,可以設定防火牆的封包過濾 規則,如根據 IP、port (service)、protocol、string match、time limit 建立過濾規則。我們對內外網域進行群組分類,所以可以針對不同的 網域設定不同的過濾規則,可設定套用規則的時段,這是針對 content blocking 所作的設定,例如設定週二下午一點到三點電腦實習教室 F 室不可上 bbs、www,上班時間 8:00~17:00 員工無法開 ICQ 聊天或是 讓小孩子不能夠上色情網站。
第一章 導 論
1.1 什麼是防火牆?
一旦連上網路,就充滿各種危機。傳統上,為了保護自身內部網 路的安全,另一方面,也為了可以做 網路進出交通 的控管,通常所 採用的方法是建構一層網路防火牆系統,在外部網路和內部網路之 間,構築一道屏障,以做為安全的區隔,使得特定的封包才能進入我 們的內部網路,而將大部份奇奇怪怪的封包,完全隔離在外,但同時, 又可允許內部網路的機器自在地對外連線,內部的使用者上網的行為 甚少需要有任何改變。 換言之,防火牆系統可區隔網路封包,使內部網路中流通的封包 十分乾淨,更讓網路管理者在安裝新機器時,比如 NT/W2K,不致於一 裝好、連上網路就中標。 不過,防火牆系統十分昂貴,平民百姓或小單位實在買不起,而 且其功能也未必就如其所宣稱的那樣足以符合我們的需求。因此許多 前賢開始尋找其它替代的方案,在低成本、高效益、彈性大的考量下, 使用 FreeBSD/OpenBSD/Linux 來建構小型防火牆系統蔚為流行。甚至 許多公司拿 FreeBSD/Linux 的防火牆機制為基礎,製造出商用的防火 牆系統;國內某一知名的防火牆公司,其防火核心即源自於 Linux。1.2 硬體防火牆與軟體防火牆
防火牆可分為硬體防火牆及軟體防火牆兩種:
硬體式防火牆產品跟軟體式防火牆產品最大的不同,在於軟體式 防火牆架構中,防禦主機(Bastion Host)建構在 Windows 或 Unix 等作 業平台上,購置軟體式防火牆產品後,需要再採購一台電腦(PC 或 Unix 工作站),先行安裝 Windows 或 Unix 作業系統及相關週邊設備(例如: 網路卡)後,才可以進行防火牆軟體安裝,防火牆軟體只是安裝在這兩 類作業系統上的一個應用程式。硬體式防火牆買回來後,就可以直接 進行安裝,無需另行購置電腦。 目前巿面上所看到的硬體式防火牆,又可區分為兩類,一種稱為 PC 式防火牆(PC-based Architecture),另一種為純硬體式防火牆 (ASIC-based Architecture)。 PC 式防火牆採用一般 PC 的架構與常見的開放式作業系統(DOS、 Windows 或 Unix),它們跟軟體式防火牆一樣,建構在一般個人電腦架 構上。PC 式防火牆跟軟體式防火牆的硬體架構是完全相同的,當您拆 開 PC 式防火牆後,您會發現它就是一台 PC,裏面有主機板、CPU、軟 碟與硬碟等。目前巿面上所謂的硬體式防火牆,大部份是屬於這類型 的產品。
純硬體式防火牆(CISCO PIX)採用專門設計的 ASIC(Application Specific Integrated Circuit)晶片與硬體架構,配合專門為防火牆 而開發的作業系統,組合成最新一代的防火牆。純硬體式防火牆具備 安全、便宜、效能佳、體積小、功能強與易管理等優點。
1.3 防火牆的基本功能
目前市面上的防火牆通常有以下的功能: ² 網路介面(Network interfaces): 大部分應用層代理防火牆都具備多個網路介面,將受保護的網路 與不信任的網路實際分隔,建議至少要配備三個網路介面才恰當,以 供連接企業內部網路、外部網路,和供外部存取但亦需加以保護的網 路 (例如,對外公開的企業網站便屬於第三種)。² 位址轉換與隱藏(Adress translation and/or hiding):
將企業內部網路的位址隱藏起來不讓外界得知。此功能是防止企 圖攻擊企業的人取得企業內部系統相關資訊,以免被作為攻擊的起 點。此外,由於網際網路上可用的位址愈來愈難申請,這種做法也較 不浪費網路上寶貴的位址空間 (除非等到整個網際網路都改成採用 IPV6,或目前擁有固定位址的大多數人把他們手上的位址釋出,情況 才有可能改觀)。應用層代理的防火牆,會自動將所有內部位址轉換成 可在網際網路上流通的位址,通常只將全部轉換成一個位址。封包過 濾式的防火牆則須經過特殊設計,才能轉換與隱藏企業內部網路的位 址。
² 作業系統安全強化(Operating system hardening):
防火牆應對作業系統應提供安全強化功能,最好完全不需要人為 操作,就能確實強化作業系統。這項功能通常會暫時停止不必要的服 務,並修補作業系統的安全弱點,雖然不是百分之百有效,但起碼能 防止外界一些不必要的干擾。 ² 存取控制(Access rules): 防火牆是否有效,完全取決於管理員設定的存取控制規則是否完 整適當而定。這些規則包括時間、日期、使用者身分認證需求,以及 根據通訊協定種類、流量內容、主機與網路位址處理網路上的流量。 防火牆是否能提供嚴密的保護端視其是否正確設定。 存取控制規則共分以下兩種:
1. 順序相關(Order-dependent , first-fit): 以第一條符合的規則為準:這種方式很容易設定錯誤,無論一 開始建立的政策或後來增加新的規則,都要十分注意,否則一 旦順序弄錯,將導致安全防護出現漏洞,後果不堪設想。 2. 順序無關(Non-order-dependent , best-fit): 以最符合的規則為準:這種方式不僅讓政策的建立大幅簡化, 同時也降低了人為疏失的風險,是最簡易的控管方式。 ² 使用者身分認證(User authentication): 當使用者企圖與網路建立連線時,防火牆應具備驗證使用者身份 的功能,方法有很多種,最簡單的例如要使用者輸入密碼。若僅根據 使用者 IP 位址便決定其是否有連接網路的權限,此安全控管便稍嫌 薄弱,因為 IP 位址很容易假造。驗證符記在使用者每次登入時都會 產生一組新的密碼,可用來辨認使用者的身分,並根據當時的政策決 定是否授權使用者存取網路。 ² 速度/效能(Speed/performance): 防火牆不僅要能嚴密安全控管,亦要能處理同時自數百個甚至數 千個使用者湧入的流量,且絲毫不能拖垮網路流量的速度。封包過濾 式防火牆由於不需要每個連線都加以處理,因此長久以來在未反應出 實際狀況的有限測試環境中,其效能都表現得比較突出;不過最近狀 況有點改觀,愈來愈多的應用層代理防火牆加入了特殊功能,使其效 能大幅提昇,不僅保有原來較嚴密的安全控管,速度也足以與封包過 濾式防火牆一決高下。 ² 內容阻擋(Content blocking): 整合式阻隔機制必須能讓管理員限制公司員工不得瀏覽毫無生產 力或不適當的資料內容,強制員工遵守公司規定,讓員工在工作時間 內僅能接觸與工作相關的網路內容。 ² Content Filtering--網頁過濾: 網頁過濾功能針對公司、學校及家用戶等有必要管理員工或未成 年子女所瀏覽的網站內容所設計,讓家長或網站管理者建立連線內容 規範,以保護青少年遠離不當網頁內容,或管理員工在上班時間從事 與工作無關的連網。
網頁過濾功能提供完整的分類網址資料庫,透過簡易明瞭的圖型 介面,將一般最常需要管制的網站分成暴力、色情、毒品等等十餘大 項,管理者可針對不同的需求對欲管制的類別勾選加以管制。除了透 過分類的分類網址資料庫外,管理者可設定特定的網址關鍵字,將網 址中包含該關鍵字的網站全部過濾掉。管理者若想新增或開放特定網 站,也可於該界面中一一設定。 同時也提供了管制時間及管制區域(用戶 IP 位址,如同網路上的 門牌號碼)設定,管理者可以依據本身的需要,彈性打造最合適的連 線規範。除此之外,對於一般網站上常用的 ActiveX、Java Applet、 Cookies、Web Proxy 等技術應用,由於容易造成隱私外洩及網路安全 風險,也提供了過濾的機制。 ² 記錄(Logging): 此功能必須要能紀錄每一次要通過防火牆或與防火牆的連線記 錄,無論連線成功或失敗都不能遺漏,讓管理員手中握有所有事件的 證據,以便需要時可供佐證,讓入侵者無可狡辯。此外,記錄功能亦 可追查整個企業內對網際網路的使用情形。雖然某些防火牆可以設定 停止記錄,但我們強烈建議讀者不要這麼做,因為如果沒有將以往的 所有動作記錄下來,發生攻擊事件時就無法重建當時的情境或加以追 查了。 ² 警報(Alerting): 防火牆不僅要能辨認出企圖闖入的人是否有足夠權限,且在碰到 沒有權限的人硬闖時,要能立刻通知管理員,才算是有實際發揮防火 牆應有的作用。通知管理員的方法有很多種,常見做法如:電子郵件、 呼叫器、SNMP、SNMP Traps 以及更改防火牆系統設定等。 ² 自動調整功能(Adaptability): 任何防火牆架構若要能長期有效保護企業,必定要能隨著企業的 規模成長以及遠端工作者數量的增加,彈性的自動調整因應。一般不 屬於任何公司獨有的系統,由於採用標準的硬體與作業系統,在這方 面算是最適當的選擇,即使要更換防火牆,原有的硬體與作業系統都 可以繼續使用,因此將防火牆系統整合到混合各式各樣系統的環境內 時,建議您一定要留心該防火牆與其他系統之間的相容問題。
² 虛擬私人網路 (Virtual Private Networking,VPN) 功能: 此功能讓企業得以將其網路延伸到辦公室實體界限之外,防火牆 負責提供安全的連線給其他分公司辦公室、遠端使用者或出差的員工 使用。若 VPN 功能可整合到防火牆內,便可從同一個地方用同一個使 用者介面對安全政策進行控管。
1.4 市售各家防火牆的功能及規格
NetScreen-25
1. 符 合 19 吋 機 架 規 格 , 提 供 4 組 10/100 BASE -T 網 路 埠 , 機 體 提 供 一 個 CompactFlash 卡的插糟,還有 LED 燈 號 顯 示 目 前 的 網 路 運 作 情 況 。 2. 網 路 傳 輸 支 援 TCP/IP 通 訊 協 定 , 並 分 別 提 供 一 埠 Trust 介 面 以 及 Untrust 介 面 , 可 依 系 統 管 理 者 的 需 求 決 定 信 任 與 非 信 任 的 傳 輸 通 道 。 內 建 NetScreen-25Transparen 模 式 , 不 需 修 改 原 有 網 路 設 備 的 設 定 , 即 可 完 成 安 裝 與 組 態 。 3. 支 援 DHCP 伺 服 器 、 PPPoE 以 及 DHCP Client, 系 統 能 自 動 分 配 與 取 得 IP 位址,降低網管人員的部署與管理時間。VPN 虛 擬 網 路 連 線 功 能 可 延 伸 企 業 網 路 涵 蓋 範 圍 , 並 為 分 散 各 地 的 分 公 司 或 辦 事 處 提 供 安 全 的 資 訊 傳 輸 通 道 。 4. 支 援 NAT 網 路 位 址 轉 換 , 提 供 對 外 真 實 IP 與 區 域 網 路 內 部 的 虛 擬 IP 之 間 的 轉 換 , 可 以 將 內 部 網 路 位 址 對 應 到 合 法 外 部 位 址 , 並 能 夠 隱 藏 內 部 的 IP 位 址 , 增 加 網 路 安 全 性 。 5. 提 供 20Mbps IPSec 處 理 效 能 以 及 25 的 IP VPN 同 時 連 線 , 支 援 MD5、 SHA-1 封 包 認 證 功 能 , 能 在 NAT 的 環 境 下 , 建 立 IPSec VPN 的 功 能 。 6. 系 統 管 理 者 可 利 用 網 路 瀏 覽 器 登 錄 NetScreen-25 的 web 管 理 介 面 , 或 是 利 用 SNMP 管 理 程 式 和 文 字 介 面 管 理 。 除 此 之 外 , 也 可 以 透 過 NetScreen Global Pro Express 系 統 同 時 管 理 多 臺 NetScreen 設 備 。7. 為 避 免 頻 寬 負 載 不 均 , NetScreen -25 具 備 了 網 路 頻 寬 與 優 先 權 管 理 功 能 , 系 統 管 理 者 可 即 時 監 控 、 分 析 以 分 配 網 路 頻 寬 , 並 針 對 特 定 資 料 流 量 設 定 保 證 頻 寬 、 最 高 可 用 頻 寬 與 優 先 權 , 維 持 封 包 傳 輸 時 的 流 暢 。
8. 提 供 RADIUS、 SecureID、 LDAP server 身 分 認 證 功 能 , 可 建 立 250 位 以 上 的 使 用 者 , 防 止 非 法 的 使 用 者 擅 自 使 用 網 路 服 務 。
Cisco PIX Firewall 主要功能:
1. 非開放式(Non-UNIX, Non-Windows NT)、安全、及時、內建之私有 作業平台,使駭客不易入侵。 2. 可達每秒 169.36 Megabits 傳輸速度、每秒 6,500 個連結及 256,000 個以上的同時連結(Connections)。 3. 提供 GUI 之設定管理介面,管理軟體最多可設定管理多達 256 台防 火牆。 4. 提供進出網路之認證,使用標準的 TACACS+/RADIUS 伺服器及 Windows NT 使用者資料庫作認證,利用 Authentication Cut-Through Proxy 提供內外網路高度安全及快速的連結;更可連 結其他強力之認證工具提供動態之密碼認證,如 Secure ID card/(One-time password)。 5. 提供及時的警告訊號(Alarm),傳至螢幕、E-mail 或呼叫器。 6. 提供 WWW、FTP、Telnet 等 TCP/IP 網際網路的透通服務。 7. 提供 NAT(RFC 1631)及 PAT 功能,可將非法 IP 以一對一或多對一的 方式轉換成合法 IP 連上網際網路,解決 IP 不足之問題。 8. 提供 Mail、DNS 及資料流(Flood)之防護,以防止非法駭客入侵,並 能有效的預防 IP Address Spoofing,以防止偽裝或仿冒之封包通 過防火牆。9. 支援 Java blocking 功能檢查 Java applets。
10.可依來源地址、目的地址及網路服務功能定義交叉混合過濾之規 則,限制路之存取權限.
11.支援 NetBIOS over IP、多媒體資料及 H.323 規格之視訊會議應用 程序(如 Microsoft NetShow、 NetMeeting 及 Intel Internet Video Phone)。
12.支援 SNMP 及系統記錄(syslog),可依各種服務(如 Mail,FTP, Telnet,URL 及防火牆硬體)的成功與失敗,依時間及使用排名,產
生內外部網路使用情形之報表;並可將記錄的告示,以 E-mail 及 呼叫器等方式傳送給系統管理者。 13.可添購私有連結加密卡,利用防火牆做到加密解密的功能,以保障 在網路上傳送訊息的隱密性,達到虛擬私有網路(Virtual Private Network,VPN)的功能。 14.利用兩台防火牆達到熱備用(Hot Standby)的功能,不需添購任何 防錯/備用軟體。 15.可擴充網際網路網站(URL)的過濾功能,限制內部使用者對色情, 暴力等不當網站的存取限制。
SonicWALL PRO 防火牆功能及規格
1. 硬體式防火牆, 軟硬體兼備, 且軟體本身必須不含有 Telnet, Rsh, Rlogin, 等網路服務, 並且不能安裝於一般商用 NT, Unix 作業系 統上以避免防火牆本身形成安全漏洞。 2. 硬體本身必須具備 10/100MBps 乙太網路介面 3 片(含)以上。 3. 須採用具備有 80 MIPS 高效能 RISC 處理器處理能力。 4. 防火牆可安裝於 19 英吋寬之標準機架。 5. 必須提供無限人數使用版權。 6. 產品本身必須通過 ICSA 認證, 經過嚴格之闖入及攻擊測試。 7. 使用狀態封包偵測技術來決定是否允許封包通過防火牆進入內部 私屬網路。 8. 採用 JAVA 瀏覽器為管理操作管理界面。 9. 具備 NAT 網路地址轉換之功能, 可將私屬內部網路自訂之 IP Address 轉換成合法的 IP Address, 以解決 IP 不足之問題, 且 增加安全性。10.必須可以偵測 http 的封包是否含有 Java, ActiveX, Cookie, 並 可加以禁止, 以免成為駭客偷取或破壞資料的工具。
11.具備可以自動偵測和阻隔 DoS (Denial of Service) 攻擊之功能, 如 Ping of Dcath, SYN Flood, LAND Attack, IP Spoofing 等, 以 免駭客破壞或癱瘓網際網路連結服務。
12.可允許 Internet 遠端使用者, 經本防火牆認證之方式 (名稱及 密碼須加密, 防止竊聽), 進入內部網路存取資料。
13.同機內含符合 IPSec DES, ARC4 標準之 VPN 虛擬網路連線功能。 當兩部以上 VPN 防火牆連接及認證後, 即形成私人虛擬網路。 14.VPN 支援 H.323 多媒體連線功能。
15.能提供完整之報表, 至少須有最常存取之網站, 最佔用頻寬之使 用者及最佔用頻寬的網際服務排行榜。
16.具備警示及事件記錄查詢之功能。
17.具備 DHCP Client 及 Server 支援 ADSL 及 Cable Modem 連線功 能. 18.可透過自定網路存取規則 (Rule Base), 使管理人員可以控制網路 交通. 並可設定開放或管制時段。 19.可支援 Intranet 安全管理功能, 及不用分網路區段功能, 以允 許管理者限制其它使用者存取 LAN 上某些資源。 20.同機具備有一個 PCI 介面之 VPN 加速處理卡擴充插槽。 21.具備有原廠 Email 通知新版本軟體無限期免費更新服務。 22.(選購)具備過濾不良之暴力與色情網站功能, 且必須能提供壹年 (含)以上全自動定時更新最新之名單服務, 以減輕管理人員負擔。 23.(選購)具備有 Windows 遠端用戶 IPSec VPN 加密撥接連線軟體。 24.另有 DMZ 及 SOHO 版之 SonicWALL。
GNAT Box 中文硬體防火牆
1. 內建無限人版專屬作業系統,提供無限網路連線 IP、用戶數量限制 之合法使用版權。且提供圖形化(GUI)中文管理設定。 2. 內部網路提供使用 NAT,可隱藏制訂私有 IP 位址,具有一對一及多 對一網路位址轉換功能。 3. 內建 DHCP Server 可動態或靜態的自動分配用戶端 IP 位址,降低 網路 IP 管理的負擔。 4. 提供具彈性的網路存取規則,可依時段管制或開放通訊服務項目, 可設定增加、刪除或修改定義新的網路服務項目及來源埠號範圍, 以免佔用過多的頻寬。 5. 可即時顯示目前及平均的網路連結數,傳送接收封包及進出網路佔 用頻寬。 6. 提供 Email 代理閘道功能(Proxy),可避免非法轉信,可設定拒收 大型郵件,支援廣告黑名單 RBL(Realtime Blackhole List)避免 收垃圾郵件。 7. 可設定遇到緊急入侵事件發生時,立刻發 E-mail 或 BB-Call 通知 警告功能。 8. 可驗證所有的設定項目是否正確,包括基本網路組態 (Configuration)、授權(Authorization)、路由(Routing)、過濾 規則(Filter)等等。 9. 各個網路介面可各自分別定義分區連接為:防火牆外部區- WAN、 內部安全防護區- LAN、網站開放連線服務區- DMZ。 10.防火牆外部區介面可連接現有 100MB/Gigabit Switch 交換器、 Router 路由器、Cable Modem ,並支援 ADSL 非對稱性數位用戶傳 輸專線網路連線設備(WAN Port)。1.5 防火牆相關技術及名詞解說
² 服務相依型過濾 (Service-Dependent Filtering): 允許某些 IP 位址的遠端使用者利用 Telnet 進入網路系 統,其他人則全部拒絕存取,是為了控制特定服務的流量而設計的。 ² 服務無關型過濾 (Service-Independent Filtering): 可阻擋與服務無關的特定入侵類型。舉例來說,駭客可能偽裝 成來自內部 IP 的封包來存取私人網路上的電腦。雖然封包中含有 內部系統的 IP 位址,封包通過連接 Internet 的介面後卻抵達路 由器。設定完善的過濾方式可以把內部系統的 IP 位址和內部網路 的介面關聯起來,因此能夠偵測到來自 Internet 上具有這些來源 IP 位址的封包並予以丟棄。² VPN (Virtual Private Network)企業虛擬私有網路:
在公眾網路(如 Internet;隱密性低但便宜)上使用通道 (Tunneling)及加密技術(Encryption)建立一虛擬通道,並在 資料上加密,讓兩端用戶可以用便宜的成本、專線的保密性傳遞重 要機密資料。一般企業用戶如總公司和分公司、海外子公司、業務 來往夥伴便可用 VPN。而遠端個人用戶如在家上班、出國出差等也 可利用 VPN 連回總公司 Intranet 傳遞重要資料。 運用 VPN 技術,將使所有企業節省許多設備購置費用、長途數 據線路月租費、撥接線路費用及後續管理維護成本。更重要的是, 可以迅速建構一個屬於自己的私有網路,增進工作效能與員工生產 力,提高企業整體的競爭力。
² DoS (Denial of Service) 阻斷服務:
有些網路駭客雖然看不到區域網路上的主機位址予以直接攻 擊,但仍可藉由不斷的 ping 路由器造成網路頻寬全被佔住;或不 斷要求伺服器的服務,讓伺服器把所有資源都用來回應這些無理 的要求,以至於不能提供其它使用者正常的服務進而造成全面性 的癱瘓。防火牆能夠有效的防止這類攻擊。
² Stateful Packet Inspection 狀態偵測: 連網的目的常是要從網路上下載資料,有可能是瀏覽某個網站 或是從 FTP 伺服器下載檔案。防火牆狀態偵測功能就是要偵測是否 這些網頁、檔案是經正常管道,由內部人所發出的要求,否則便有 可能是駭客透過偽裝下載將非法資料送進網路。 ² DMZDe-Militarized Zone 解除管制區: 高階的防火牆產品提供了 DMZ 埠,讓多個存有公開資源的伺 服器不被防火牆管制,讓網際網路上用戶自由存取。
² DHCP (Dynamic Host Configuration Protocol) 動態主機配址協 定:
提供動態分配 IP 位址的機制,因而當主機不再使用該位址 時,可將該位址給其他主機用。它的主要功能是讓一部機器能夠透 過自己的 Ethernet address 廣播,向 DHCP server 取得有關 IP、 netmask、default gateway、nds 等設定。這樣網管人員只要把 DHCP server 設定好,就可以讓 client 透過 DHCP server 自動取得 IP 相 關的設定,而不需要去每一部機器上辛苦地做 IP、netmask、default gateway、dns 等設定。
² ICMP(Internet Control Message Protocol)Internet 控制訊息 協定: 網路層 Internet 協定,負責錯誤報告及提供 IP 封包處理之 相關資訊。相關文件見 RFC 792。ICMP 是與 IP 模組整合在一起的 控制訊息協定,它透過 IP 收發 ICMP 訊息,ICMP 被用於報告在傳輸 datagram 的過程中發生的各種狀況,包括 datagram 的目標不存在、 遞送路徑不正確等訊息,也可透過 ICMP 測試主機之間的連接是否 中斷,甚至利用 ICMP 控制特定主機的 datagram 流出量。與 IP 的 上層協定相似,ICMP 既然透過 IP 收發控制訊息,其訊息在經 IP 傳 送前,自然也被裏上一層 IP 表頭,ICMP 不作錯誤偵測,因此它與 IP 同樣不可完全被信賴。
² IPSO(IP Security Option)IP 安全設定選擇: 定義 IP 封包表中之一個選擇性欄位的美國政府規格,由此欄 位可定義每一介面的階層性封包安全等級。 ² IPv6(IP version 6)第 6 版網際網路協定: 目前 IP 版本(第 4 版)的取代品。IPv6 在封包表頭中加上 資料流 ID,可用來辨識資料流。又稱為 IPng(ng 表 next generation,下一代)。
² ISDN(Integrated Services Digital Network)整合性服務數位 網路:
電話公司提供的通訊協定,允許用電話網路來傳輸資料、語音 和其他形式之資料。可同時參考 BISDN、BRI、N-ISDN 及 PRI。 ² LDAP(Lightweight Directory Access Protocol)輕型目錄存取協
定:
為了存取那些能提供讀寫交談去存取到 X.500 目錄的瀏覽應 用和管理所需的協定。
² MAC (Media Access Control) 媒體存取控制:
IEEE 所定義的兩個資料鏈結子層中的較底層。MAC 子層處理共 享媒體的存取方式,如是否使用記號傳遞 (token passing) 或競 式 (contention) 等。可同時參考資料鏈結層和 LLC。 ² MAC address: 標準化的資料鏈結層位址,每一連上 LAN 的埠或設備都需此位 址。網路上的其他設備則利用這些位址來定位特定的埠,以產生、 更新路由表和資料結構。MAC 位址長度是 6 個位元組,由 IEEE 來管 制。其他名稱還有硬體位址,MAC 層位址或實體位址等。可相較於 網路位址。MAC address 主要負責 Logical topology 邏輯拓撲, Media Access 傳輸媒體的存取及 Addressing 定址三個功能。位 於整個 Data Link Layer 部份負責較低階的事情,直接和
² MD5 (Message Digest 5) 訊息摘錄 5:
用在 SNMP v.2 的訊息驗證演算法。MD5 確認通訊的完整性, 驗證發送端,並檢查時效性。可同時參考 SNMPP2.
² MIB (Management Information Base) 管理訊息庫:
被網路管理協定,諸如 SNMP 或 CMIP 等所使用並管理的網路訊 息資料庫。一 MIB 物件的值可用 SNMP 或 CMIP 指令來改變或存取, 通常是經一 GUI 網管系統來達成。MIB 物件被組織成樹狀結構,包 含公開(標準)和私用(專屬)的分枝。
² NetBIOS(Network Basic Input/Output System)網路基本輸入/ 輸出系統: 在 IBM LAN 上用來請求下層網路程序服務的應用程式介面 (API)。這些服務包括交談的建立與結束及資料的傳輸。NetBIOS 是由 IBM 公司所發展出來的一種軟體介面,與 PC 上的 BISO 類似。 它提供軟體程式介面給軟體應用程式與 PC 網路卡上的硬體溝通的 窗口,使軟體程式可以呼叫網路卡上的硬體做必要的動作,它目前 在大部分的作業系統中已經變成一種標準的軟體介面,供網路應用 程式是使用。
² RADIUS (Remote Authentication Dial In User Service) 遠程撥 入用戶認証服務:
Radius 是驗證數據機和 ISDN 連線並追蹤連線時間的資料庫。 其定義了在 NAS(Network Access Server,撥號服務器,
如:pastmaster,3com rs1500 等)和集中存放認証信息的 radius 服 務器之間傳輸認証、授權和配置信息的協議。其協議的標準最新的 定義在 rfc2865 和 2866 中,也可以在 www.freeradius.org 處得到 相關的 rfc。RADIUS 以 Client/Server 模式工作,實現了對遠程電 話撥號用戶的身份認証、授權和計費功能。其 Client 端多為網絡 訪問服務器(NAS),主要用來將用戶信息傳遞給 Server;Server 則 對用戶進行認証,並反回用戶的配置信息。為保証傳輸的安全性, 在 Client 和 Server 之間傳送的數據均以 MD5 方式加密。RADIUS Server 端和 Client 端通信主要有兩種情況,一種是接入認証,另 一種是計費請求。
² SLB(Server Load Balance)負載平衡:
避免單主機故障時無法提供服務,而多主機時又面臨負 載不均衡的問題。
² SNMP (Simple Network Management Protocol) 簡單網管協定: 只使用在 TCP/IP 網路裏的網管協定。SNMP 提供一個監控網路 設備,管理組態,統計收集,效能及安全的方法。可同時參考 SGMP 和 SNMP2 ² SNMP2: SNMP 版本 2。流行的網路管理協定第 2 版。SNMP2 支援集中和 分散管理的策略,以及包括 SMI、協定操作,管理架構,和安全等 方面的改善。可同時參考 SNMP。
² SOHO (small office, home office) 住家辦公室:
對那些辦公室並沒有連到大公司網路的一種網路解決方案和 存取技術。
² TACACS (Terminal Access Controller Access Control System) 終端存取控制器存取控制系統:
由 DDN 所發展,提供遠端存取驗證和事件記錄等相關服務的驗 證協定。 使用者密碼乃由集中資料庫管理而非由個別路由器, 因 而提供了更容易擴充的網路架構和安全性。可同時參考 TACACS+。 ² TACACS+ (Terminal Access Controller:
Access Control System Plus) 終端機存取控制器控制系統 Plus Cisco 專屬終端機存取控制器控制系統, 提供了額外的驗 證,授權及帳務的支援。可同時參考 TACACS。
² URL (Universal Resource Locator) 萬用資源地址使用:
瀏覽器存取超媒體文件和其他服務的標準定址策略。可同時參 考瀏覽器。
² DMAC(destination MAC)目的地 MAC:
標示在一封包目的地位址欄位中的 MAC 位址。可和 SMAC 比 較。可同時參考 MAC 位址。
² GUI(graphical user interface)圖形使用者介面:
利用圖形和文字及其他儲存資訊之資料結構展現應用程式之 輸出、入的使用者環境。習慣上使用按鍵、圖像及視窗,並搭配指 標設備(如滑鼠)來執行許多動作。Microsoft Windows
第二章 封包的進出及架構簡介
為了了解封包在硬體防火牆中的處理過程我們先從封包的進出作 一個初步的了解。在 2.1 節中首先介紹 CSMA/CD 通訊協定以對通訊協 定及封包格式有一個基本的了解。再來在 2.2 節中深入介紹網路卡的 基本構造及網路卡內部封包的進出,以了解封包在硬體中的處理過 程,這是一個實作硬體防火牆的封包過濾部分的一個小範本。最後在 2.3 節中引出我們的防火牆的整體架構。2.1 IEEE 802.3
IEEE 802.3 標準制定了 Carrier Sense Multiple Access with Collision Detection (CSMA/CD)通訊協定。其基本網路結構為一匯流 排 (BUS) 架構,如圖 2-1 所示。此網路的主要特性如下: 1. 傳輸速率為 10 Mbps。 2. 訊框格式為 IEEE 802.3 CSMA/CD 訊框。 3. 傳輸媒介可為同軸電纜(Coaxial cable) 、無遮蔽式雙絞線 (UTP)、或光纖 (Fiber)。 4. 通訊協定採用 CSMA/CD,沒有提供優先權傳輸服務。 5. 廣播式傳輸 (Broadcasting)。工作站將訊號送上傳輸媒介時 該訊號會廣播至所有工作站,因此訊框傳送具有廣播性質。 6. 不提供保証傳送延遲服務。如果同時有二個或二個以上的工作 站同時傳送訊框將造成「衝撞」(Collision) 。發生衝撞的訊 框無法有效的辨認,因此會被視為無效的訊框而丟棄。網路負 載重時會因為不斷發生衝撞的現象而使得訊框被成功傳送出 去的時間無法預期。 7. 頻寬使用不保証公平。工作站利用 CSMA/CD 通訊協定來互相 競爭傳送訊框的機會,並沒有輪流傳送的特性,因此每個工作
站使用的頻寬可能差異極大。後到的訊框也可能因為其他訊框 進入衝撞期而較早傳送成功。 8. 高負載時頻寬使用率低。網路負載重時會因為不斷發生訊框衝 撞的現象而使得訊框無法成功的傳送,此將導致網路的成功輸 出率 (throughput) 急速降低。嚴重時整個網路可能完全癱 瘓。 9. 較不適合多媒體資訊傳輸。由於網路無法提供保証的頻寬及傳 送延遲服務,此網路較不適合傳送具有即時要求的多媒體資 訊。 10.網路容錯性高。為了避免訊號傳送到最末端時的反射而造成衝 撞問題,採用同軸電纜為傳輸媒介時應在兩端同時接上終端器 (terminator),負責將訊號吸收掉。此時連接每一工作站的連 接栓(TAP) 為被動式元件(passive device)。對於同軸電纜上 的訊號它只能接受而不能更改。因此當工作站當機或停電時並 不會影響到網路上其他工作站的運作。但是當電纜沒有接好、 斷裂、或終端器鬆脫、損壞時,整個網路將會無法運作,此時 網路視為損毀。 圖 2-1 CSMA/CD 網路匯流排架構 IEEE 802.3 的通訊結構如圖 2 -2 所示。其所包含的主要內容為: 1.MAC 服務規格 (Service Specification)
2.MAC 通訊協定 (CSMA/CD Protocol)
4.接觸單元介面(AUI,Attachment Unit Interface) 5.媒介接觸單元(MAU,Medium Attachment Unit)
圖 2-2 IEEE 802.3 通訊結構 其中 MAC 服務規格部分主要是提供一些服務給 LLC 層。 MAC 通 訊協定主要就是完成 CSMA/CD 的工作。另外就是負責將 LLC 訊框加 上一些訊框標頭(SFD,DA,SA,Length) 及訊框尾 (PAD,FCS) 或則 相反的將由實體層收到的訊框在去掉訊框標頭及訊框尾標後將 LLC 訊框送給 LLC。前者工作稱為訊框包裝(Encapsulation),後者工作則 稱為訊框拆裝(Decapsulation)。 實體層訊號處理 (PLS) 部分屬於實體層,其主要工作有: (1) 將每一筆要傳送的訊框加以編碼處理(採用 Manchester 編碼)。 (2) 提供通道時序。 (3) 針對傳送的訊框產生前導部份及針對接收的訊框刪除前導部份。 接觸單元介面 (AUI) 部分包含與 PLS 間的連接器規格以及到 MAU 的電纜。此段電纜又稱為分岔電纜 (Branch cable)或收發器電纜 (Transceiver cable) 。 高層通訊協定 邏輯鏈結控制 媒介擷取控制 實體層訊號處理 PMA 傳輸媒介 CSMA/CD MDI AUI PLS MAC LLC MAU
媒介接觸單元 (MAU) 部分包含有:
(1) Physical Medium Attachment (PMA):透過 MDI 直接與傳輸媒介 (同軸電纜)接觸,有完成傳送、接收及衝撞偵測功能的硬體線路。 因此又稱為「傳接器」或「收發器」(Transceiver) ,也稱為「栓接 器」(TAP) 。
(2) Medium Dependent Interface (MDI):直接與傳輸媒介接觸的介 面。
2.1.1 Ethernet III 訊框格式
7+1 Bytes 6 Bytes 6Bytes 2Bytes 46~1500Bytes 4Bytes
Preamble+SFD DA SA LEN LLC+PAD FCS
圖 2-3 Ethernet III Frame 格式
IEEE 802.3 的 MAC 訊框格式說明如下: Preamble:
包含 7 個位元組(101010...1010),其主要目的是達成接收的同步 功能(synchronization) 。
SFD(Start Frame Delimiter):
1 個位元組(10101011),表示訊框的開始。 DA(Destination Address) : 2 個或 6 個位元組,目的地工作站位址,表示此訊框要送給那一個工 作站。 SA(Source Address): 2 個或 6 個位元組,原始工作站位址,表示此訊框由那個工作站送出。 Length: 2 個位元組,記錄 LLC 的長度。
LLC:
LLC 訊框,最長為 1500 位元組。 PAD(Padding):
當 LLC 訊框長度小於 48 位元組時,利用此填塞欄位將 LLC 訊框填 補位元組。填補的位元組的值沒有特別意義,可為任意值。
FCS(Frame Check Sequence):
4 個位元組,記錄訊框的檢查碼,採用 CRC-32 技術。 訊框大小 一個訊框的大小是指由 DA 到 FCS 間的位元組數目。其大小必須 大於或等於 64 位元組。在下一節中將提到為了偵測是否發生衝撞, 每一個工作站在傳送時至少要監聽的時間為 2a(1 個時槽時間)。在 標準的 CSMA/CD 網路中,2a=51.2μsec 而網路傳送速度為 10 Mbps。因此 51.2μsec 的時間將可傳送 107 ×51.2×10-6 =512 位元=64 位元組。 也就是說,每一個 訊框至少必須大於或等於 64 位元組,否則訊 框可能在衝撞尚未偵測出來之前便被傳送完畢,其傳送結果是成功亦 或失敗就無法確定。訊框的 PAD 欄位即是當 LLC 訊框太小時,用來增 加其長度。因為 DA+SA+Length+FCS=18 位元組,因此當 LLC 訊 框 < 46 位元組時必須加 PAD 使其總長度為 64 位元組。當 LLC 訊 框 ≧ 46 位元組時則此欄位不必使用。 為了避免某一個工作站佔用傳輸媒介太久,每一筆訊框的最大長 度也受到限制,其值為 1518 位元組(LLC 訊框 1500 位元組+18 位 元組),不包含訊框中的 Preamble 及 SFD 欄位。 地址欄位
I/G U/L 46-bit Address
I/G = 0 Individual Address (個別地址) I/G = 1 Group Address (群體地址)
U/L = 0 Globally Administered Address (整體性地址) U/L = 1 Locally Administered Address (區域性地址)
圖 2-4 地址欄位格式 IEEE 802.3 的地址欄位為 6 個位元組,如圖 2-4 所示。每一個 工作站的地址可分為二大類: 各別地址(Individual address):代表某一工作站的地址,具有 唯一性,不會與其他工作站的各別地址相同。 群體地址(Group address) :代表某一群工作站共用的地址。一 個群體可包含多個工作站,而一個工作站也可以同時屬於多個不同的 群體。其特性是當一筆訊框指定要傳送給某一群體時,該群體中的所 有成員皆可以收到該筆訊框。訊框上的 DA 如果使用群體地址則又可 分為 2 種: 多重傳播地址(Multicast address) :表示此訊框要傳送給此群 體中所有的成員。 廣播地址(Broadcast address) :表示此訊框要傳送給網路上所 有的工作站。 由圖 2-4 的格式中可以辨別當地址的最左邊的位元為 "0",是表 示該地址為各別地址,否則即為群體地址。當所有的位元全部為 "1" 時則表示該地址為廣播地址。另外 DA 左邊的第二個位元 (U/L 位元) 也具有特殊的意義: U/L=0,表示此地址(各別地址或群體地址)為總體性的地址 (Globally Administrated Address),其工作站並不在此區域網路上。 由於可能會有若干個網路連結在一起的情形,所以當工作站欲傳送訊 框給另外一個網路上的工作站時,其所送出的訊框上的 DA 即屬於總 體性地址。
U/L=1,表示此地址(各別地址或群體地址)為區域性的地址 (Locally Administrated Address),其工作站與地址為 SA 的工作站 在相同的區域網路上。
2.1.2 CRC-32 訊框檢查碼
在圖 2-2 的訊框格式中,每一筆訊框的最後面 4 個位元組是錯誤 檢查碼,其主要功能是檢查訊框在傳送的過程當中是否發生錯誤。其
所檢查的範圍是從 DA 欄位到 PAD 欄位間的資料。FCS 檢查錯誤的方 法是採用 CRC-32 (Cyclic Redundancy Check) 技巧。基本上是將訊 框視成一位元串然後除以一多項式(32 位元),所得到的餘數(32 位 元)即是 FCS 。當接收工作站收到訊框後也對訊框做相同的處理,然 後比較其所得到的 FCS 是否與訊框上的 FCS 相同。如果不同則表示 該筆訊框有錯誤並且將之丟棄。 CRC-32 所採用的多項式 G(X) 如下: G(X)=X32 +X26 +X23 +X22 +X16 +X12 +X11 +X10 +X8 +X7 +X5 +X4 +X2 +X+1 對資料做 CRC 運算的處理過程如下所示: 1.將所有資料視為 n 個位元的二進位數字。 2.將最前面的 32 位元做補數(complement),1→0,0→1 的運算。 3.將此 n 位元視為一 n-1 次多項式 M(X) 的係數。其中目的地 位址的第一個位元相當於第 Xn-1 項的係數 (1 或 0) 而資料欄 的最後一個位元相當於第 X0 項的係數 (1 或 0)。 4.將多項式 M(X)乘上 X32 (在 n 個位元的二進位數後面加上 32 個 0) 再除以 G(X)。可得到一個餘數 R(X),其次方小於或等於 31。R(X) 的係數可當成是一個 32 位元的二進位數。 5.將此 32 位元二進位數做補數的運算便得到 CRC 檢查碼。 為了避免額外的軟體計算時間,CRC 的處理可以利用硬體線路來 完成,如圖 2-5 所示。此線路包含有 32 位元的位移暫存器 (Shift Register)及若干個邏輯閘 (Logic Gates,AND,XOR,NOT)。欲處理 的資料由輸入端輸入,輸出端則輸出處理過後的資料。在資料的輸入 過程中,輸出端於輸入端(資料本身不改變),同時資料則依序進入 位移暫存器中完成除法的運算。當資料輸入完畢時其相對的 CRC 值 (FCS 值) 也同時計算完成且存在 32 位元的位移暫存器中。此時再經 過 32 次的位移動作便可將 CRC 值放入 FCS 欄位中,所欲傳送的訊 框並不會因為 CRC 的處理而在傳送時間上有所延誤。
圖 2-5 CRC-32 硬體線路圖
2.1.3 CSMA/CD 通訊協定
CSMA/CD 通訊協定的運作可以在不同的傳輸媒介上,如同軸電 纜、無遮蔽式雙絞線、或光纖。初期制定 CSMA/CD 網路相關規格時是 在同軸電纜上定義的,為了方便起見,以下使用同軸電纜的網路環境 來說明此通訊協定的運作原理如下(流程圖請參考圖 2-6 與圖 2-7): 步驟 1:每一個工作站在傳送之前必須先監聽同軸電纜上是否已 經有訊號在傳送(Carrier Sense) ,如果沒有則可立刻將訊框傳送出 去。如果有則表示其他工作站正在傳送,此時工作站繼續監聽同軸電 纜上的訊號,直到訊號消失(該訊框傳送完畢)後立刻將其訊框傳送 上電纜。 步驟 2: 在傳送訊框同時也要繼續監聽同軸電纜上的訊號,看看 是否發生衝撞。如果發生衝撞則立即停止傳送訊框並且改傳送一個「擾 亂訊號」(Jamming Signal),強迫造成更嚴重的衝撞,使得每一個參 與衝撞的工作站能確實偵測出衝撞。否則表示該筆訊框成功的傳送出Set carrier sense signal ON Destination address matched? CRC correct? Length field correct? Receive Frame
Strip Preamble,SFD,FCS of frame
Receive successful ! Start of frame? Acquire bit synchronization
Discard frame Increment Error Count Reject frame Address matches : Promiscuous mode Local address Multicast address Broadcast address SFD of frame (data=11) Preamble of frame Length>=64 bytes Length<=1518 bytes Compare FCS of frame by CRC checker Receive finished? Collision detected? Receive data YES NO NO YES YES NO NO YES NO YES YES NO
Is another node transmitting? Transmit Frame
Assemble a packet from the Frame and Set Attempt Counter to zero
Transmit first bit of the packet
Delay rest of IPG time
Delay entire of IPG time Other transmission
finished?
Transmit 32 bits of jam sequence
Increment attempts
Compute backoff time Attempts>16?
Delay backoff time
Transmission Failed !
Too many Collision ! Transmission successful ! Collision detected?
Transmission finished? Has IPG passed since
last transmission?
Transmit next bit of the packet YES NO YES NO YES NO NO YES NO YES YES NO 圖 2-7 CSMA/CD 訊框傳送流程圖
去。發生衝撞的工作站則在各自等待一段隨機延遲時間(random delay time) 之後再回到步驟 1 。
CSMA/CD 通訊協定運作原理的步驟 2 使用所謂的隨機延遲時間 (random delay time) 。其延遲時間的長短由一個亂數決定,以便儘 可能使所有參與衝撞的工作站的延遲時間不相同,以避免因為延遲時 間相同而造成的再次衝撞。此方法稱為「二元指數後退演算法」(Binary Exponential Backoff Algorithm) 簡述如下:
n : 連續發生衝撞的次數 (n ≦ 16) 。當 n > 16 時則顯示網 路的負載太重,訊框因不斷的衝撞而無法傳送。此時該工作站會放棄 繼續傳送該筆訊框並且報告情況。 k : MIN(n,10) ,n 值和 10 的最小值。 r : 隨機延遲時間。單位是一個時槽時間(slot time) ,其定義 是訊號由網路上最遠的二端來回傳遞一次所需的時間(Round-trip propagation delay)。在標準的網路中,一個時槽時間為 51.2 微秒, 而 0 ≦ r < 2k ,也就是說 r {0,1,2....,2k -2,2k -1}。 例如當第一次發生衝撞時 n=1,k = min(n,10) = 1 ,因此 r {0,1}。此時該工作站有一半的機會立刻執行步驟 1 ,也有一半的 機會要等待一個時槽時間後才執行步驟 1。如果在第二次傳送時又發 生衝撞則 n=2,k = min(n,10) = 2,因此 r {0,1,2,3}。表示 該工作站可能延遲的時間為 0,1,2 或 3 個時槽時間。確實數目必須 由亂數產生器來隨機產生。當 10 < n ≦ 16 時,r {0,1,2...,1023},表示延遲時間最長為 1023 個時槽時間。否則延遲 太長反而較無效率。 在步驟 2 中曾提及在傳送訊框時也要繼續監聽同軸電纜上的訊 號以檢查是否發生衝撞。其主要原因是可能會有許多個工作站同時去 偵測同軸電纜,如果當時沒有訊號正在傳送則這些工作站都會立刻將 其訊框送出,結果便造成了衝撞。問題是每個工作站到底要監聽多久 才能確定其送出的訊框不會發生衝撞呢?答案是 2a,其中 a 是訊號 由同軸電纜的一端傳遞到最遠的另一端所需的時間。而 2a 也正好就 是一個時槽時間,其道理如圖 2-8 所示。假設工作站 A ,B 分別位於 同軸電纜的最遠兩端。在時間 t0 時 A 開始傳送,而在時間 t0+a- ε 時該訊框的前頭部份快到達 B。此時 B 有訊框要傳送並且檢查同
因此造成衝撞,此時時間為 t0+a。發生衝撞後 B 可立即偵測出衝 撞,然而 A 卻必須等到該衝撞訊號傳遞到 A 時才可偵測出發生衝 撞,此時為 t0+1-ε。由於 A、B 是最遠的二個工作站,因此其他 工作站彼此間若發生訊框衝撞將可在更短的時間中偵測出來。換句話 說,當一個工作站將訊框送上同軸電纜並且在 2a 時間內沒有發生衝 撞,則可以保證該筆訊框將可成功送完。因為在過了傳送後的 a 時間 後 (t0+a),任何一個工作站都會聽到訊號而不能傳送。 在步驟 1 中曾提到如果在傳送前聽到電纜上有訊號則仍繼續監 聽直到訊號消失後 立刻將其訊框送出。這個方法稱之為「1-堅持法」 (1-persistent)。另外還有二種較為大家熟悉的方法,分別為: p-堅持法(p-persistent):每個工作站在監聽到訊號消失後將訊 框立刻送出的機率為 p, 0 < p < 1 。 0-堅持法(0-persistent):每一個工作站在聽到電纜上有訊號 後,立刻退出,不繼續監聽。等待一段隨機延遲之後再回到步驟 1 。 一般說來,1-堅持法較適合網路負載輕的環境,而 0-堅持法則較 適合網路負載重的環境。在 1-堅持法的運作之下,一筆訊框在傳送的 過程當中如果有二個或二個以上的工作站想送則會在該筆訊框傳送完 畢之後同時送出而一定造成衝撞。也就是說在網路負載輕的環境之 下,繼續監聽的代價較不會白費,因為在聽完之後的傳送絕大部分都 會成功。在 0-堅持法的運作之下,只要聽到有訊號立即延遲。如果網 路負載輕則較無效率,網路負載重則可減少衝撞的機會。p-堅持法則 介於兩者之間。由於 p 值可以調整,因此具有較佳的效率,但在實作 上較複雜。Ethernet 採用的是 1-堅持法。
2.2 網路卡內部訊框進出流程
網路卡內部構造如下圖:
圖 2-9 網路卡內部構造方塊圖
2.2.1 Packet Reception:
當 Carrier Sense 為 high 時,表示偵測到載波訊號,於是 Receive Deserializer 準備開始接收從網路傳來的 serial data,deserializer 根據封包最前頭的 preamble 調整 receive clock 並且偵測 SFD,當偵 測到 SFD 時表示此為封包的開始,於是資料就隨著 Receive Clock 的 上升緣接收 serial 資料,先放到Deserializer 內的 shift register 裡,每 8 個 receive clocks 後再把此 byte 寬的資料傳送到 FIFO 內。
NIC’s DMA Collision Recovery, IFG Timing Carrier Sense Collision Detect Protocol PLA Receive Deserializer Tansmit Serializer Receive Clock Receive Data (serial data) Transmit Clock M U X CRC Generator / Checker M U X Transmit Data Receive/ Tansmit FIFO Preamble/ Synch / JAM pattern Gen.
Internal BUS Buffer Ring Receive Buffer Transmit Buffer Remote DMA Local DMA SMAC DMAC MAC Unit To Host Memory Bus Arbitration / Handshake Local Address Remote Address Handshake Handshake BREQ, IRQ
同時此 serial data 也傳入 CRC Generator/checker 裡作錯誤偵 測,CRC Generator/checker 根據封包資料產生 local CRC field,用 來與封包末端的 CRC field 比對,若比對正確就產生 error free packet,若比對錯誤就駁回(reject)封包。
而封包的目的地位址(封包的前 6 bytes)會被送進 MAC Unit 作 DMAC 比對,DMAC 會作以下四種比對:(address filter)
1. promiscuous mode :所有進來的封包全部接收,用來 作網路監聽之用。
2. local address:此網路卡的 physical address,廠商 在製造網路卡時即燒錄在網路卡上了,每張網路卡都有 一個獨一無二的 physical address。
3. broadcast address:此位址全部為 1,用來作為廣播 位址,所屬網域內的每一台電腦都會接收此封包 4. multicast address:使用 hashing 技術將 multicast
address map 至 hardware address。
若符合其中一種就接收此封包,若不符合就由 Protocol Unit 駁回。 當 Receive Deserializer 寫資料到 FIFO 中後,由 DMA 從 FIFO 讀 走資料。FIFO 中有一個 byte counter,receive deserializer 每傳送 1 byte 資料到 FIFO 中,counter 就加 1,用以控制 FIFO 內的資料量, 當資料達到一定量時或在 FIFO 滿出來之前 DMA 就會把資料傳送到 Receive Buffer 中。
DMA 分成 local DMA 與 remote DMA。在接收資料時,Local DMA 透 過 internal arbitration(優先權最高的取得 Bus 控制權)取得
internal Bus,把資料從 FIFO 存到Receive Buffer 中,然後由 remote DMA 將資料由 Receive Buffer 傳送到 system memory。Remote DMA 會發出 DRQ 請求使 host DMA 來將 data 由 Receive Buffer 傳送到 main memory 中。
2.2.2 DMA 原理
DMA (Direct Memory Access): 直接記憶體存取
當一裝備有資料需傳輸到記憶體時. CPU 要把資料從裝備讀出再由 CPU 寫到記憶體. 所有的動作均由 CPU 控制. 非常沒有效率. 而 DMA 即是不透過 CPU 而直接由裝備寫到記憶體. 如此有非常好的效 率. 而網路卡即是透過 DMA 來傳送資料. 圖 2-10 DMA 控制器方塊圖 DMA 方塊圖中的各暫存器功能如下: 1.位址暫存器:存記憶體中某位置的位址,以便 DMA 傳輸。 2.控制暫存器:表示轉移模式。 3.字組計數器:存轉移之字組數。當其內含值為 0,表示已完成傳輸。 位址匯流排緩衝器 位 址 暫 存 器 控 制 暫 存 器 字 組 計 數 器 I / O 設 備 DS 控 RS 制 RD 單 WD 元 BR BG 資料匯流排 緩衝器 位址匯流排 內部匯流排 IRQ DMA 需求 DMA 認可 DMA 擇取 暫存器擇取 Read Write 匯流排需求 匯流排許可 資料匯流排
DMA 的動作流程:
step1: 當 I/O 設備有 I/O 動作要求執行時,發出一個 DMA 需求給 DMA 的控制單元。
step2: DMA 控制單元接收了 I/O 設備的 DMA 需求信號之後,即發 出匯流排需求給 CPU。
step3: CPU 在接到 DMA 的匯流排需求訊號之後,即中止目前的程 式指令,傳送資料所需之起始位址、傳送資料字組數…等 傳給 DMA 的控制單元。使 DMA 獲得 BUS 的控制權及主記憶 體的存取權。
step4: DMA 在獲得 main memory 的存取權後,即直接將 main memory 上的資料與 I/O 設備互傳,以完成 I/O 動作。
step5: 當 DMA 已做完 I/O 動作,將 I/O 設備所需資料傳送完畢, 則發出一中斷訊號給 CPU,則 CPU 會中斷匯流排傳輸,取 回 main memory 控制權,並看情形是否有再一次 DMA 需求。 在 step4 時 DMA 控制器已經取得控制權這時 CPU 已經不需要監控較 低速 IO 動作所以可以大大提升 CPU 利用率。當 DMA 在存取主記憶體,CPU 就不能同時存取主記憶體,且 CPU 和 DMA 控制器間同時只有一個能夠使 用 BUS。
2.2.3 IRQ 中斷請求
IRQ (interrupt request ) 是 PC 非常重要的一個功能. 在一般 的電腦系統裡. 當裝備需要系統來服務時.有二種方法 :一是 polling. 由 CPU 一直去問裝備是否需要服務. 如果需要時就去服務 它. 這很浪費 CPU 的時間. 另一種方法就是 IRQ 法. 當裝備需耍服 務時就發出 IRQ. 當系統收到這個 IRQ 時才去服務它. 就樣可大大 減小系統的負擔. IRQ 由中斷控制器 (8259A) 所處理. 每一中斷控制器可處理八 個中斷輸入. 現在的系統多由二個中斷控制器來處理. 所以共可以處 理十六個中斷. 由 IRQ 0 到 IRQ 15. 但是第二個中斷控制器的輸出 需要接到第一個中斷控制器的其中一個輸入. 所以最多只可處理到十 五個中斷請求. 而這個被用掉的輸入就是 IRQ 2. 在 ISA bus 增加到 16 bits 時. 因 IRQ 2 不能用了. 所以在 ISA 插槽上就把 IRQ 2 的 腳位讓給 IRQ 9 了. 所以可以說 IRQ 9 就是 IRQ 2 了.
中斷控制器有優先順序. 0 最大. 7 最小. 當有二個裝備同時發 出 IRQ 時. 就由這個順序來決定誰先被服務. 因 IRQ 2 被當成第二 個中斷控制器的輸入. 所以整個中斷請求的順序為 : 0, 1, 2 ( 8, 9, 10, 11, 12, 13, 14, 15 ), 3, 4, 5, 6, 7. 十五個 IRQ 被設定為下列裝備 :
• IRQ 0 : System timer. 系統時間.
• IRQ 1 : Keyboard. 鍵盤.
• IRQ 3 : Com2. 串列埠.
• IRQ 4 : Com1. 串列埠.
• IRQ 5 :
• IRQ 6 : Floppy Disk. 軟碟機.
• IRQ 7 : Parallel port. 並列埠.
• IRQ 8 : Real Time Clock. 時鐘.
• IRQ 9 :
• IRQ 10 :
• IRQ 11 :
• IRQ 12 : PS/2 mouse. 滑鼠.
• IRQ 14 : Primary IDE. 主 IDE. 如硬碟機.
• IRQ 15 : Secondary IDE. 副 IDE.
未列有裝備者可供給其他裝備使用. 如音效卡 , 網路卡等. 可 由使用者自由調整但不衝突. 否則系統就會當機了. Plug and Play 的 系統則可由系統自動調整. 中斷請求的流程如下 : 1. 由裝備發出中斷請求. 2. 8259A 收到中斷請求. 3. 由 8259A 檢查此中斷的優先順序來決定是否送出中斷給 CPU. 4. 等到 CPU 接受此中斷就送出訊號給 8259A. 5. 由 8259A 發出此中斷的參數給 CPU. 6. 透過此參數可取得中斷服務程式的位址. 7. CPU 執行中斷服務程式. 中斷請求的訊號分為二種 :
EDGE TRIGGER 方式 - 當裝備要發出中斷請求時. 就把 IRQ 的訊號由 低拉往高. 8259A 接收到這個訊號表示只有一個中斷請求. 若有二個 以上的裝備使用同一個中斷就不能正常工作. 但 PC 系統只有十五個 中斷不夠使用. 所以有下面一種方式產生.
LEVEL TRIGGER 方式 - 當裝備要發出中斷請求時. 就把 IRQ 的訊號 由低拉往高. 8259A 接收到這個訊號表示有一個中斷請求. 當中斷完 成時 IRQ 訊號會被還原成低電位. 若 IRQ 訊號還是在高電位表示有 另外一個裝備發出同一個中斷請求. 此方式可由多個裝備共用一個中 斷. PCI 的裝備即是使用這種方式.
2.2.4 ARP packet and MAC adress spoofing:
1 8 16 24 32 Hardware type(16) Protocol type(16)
H.len(8) P.len(8) Operation(16) Sender HA Sender HA Sender IP Sender IP Target HA Target HA Target IP 圖 2-11 ARP 封包格式 在一般的 HUB 區網中,甚至連 ARP 攻擊都不必,可以直接進 行 IP 層以上的攻擊,但是現行的區網中,幾乎都是使用 switch 的 連結,在一般的連結下,在同一個 port 的連線才看得到彼此的封 包,要了解到 switch 只有在開機時會有短暫時間的 broadcast 模 式,在每個 port 第一次看到的封包,都會記錄為該 port 的區網 主機 MAC 位址,在一些較舊的 switch 上,我們可以傳送一個乙太 網封包,讓 switch 更新該 port 的 port/MAC address 對映表。
ARP 協定的存在,就是為了乙太區域網路內的傳輸,因為乙太 網路所使用的位址並非一般使用者所知的 IP 位址,而是利用 MAC 位址做為傳輸的來源與目的辨識。而知道 MAC 位址後乙太網是可以 傳輸沒錯,但是怎麼跟上層 IP 位址銜接起來,就是 ARP 這個協定 來負責。ARP 這個協定的原理就是利用 IP 位址去查詢該 IP 位址 對映的 MAC 位址,我們以一個實際的查詢例子來舉例說明: 當 A 主機要在乙太網上傳送給 B 主機時,他會送出一個 ARP query,這個 ARP 的封包包含 B 的 IP ,但是沒有 MAC,直到 B 主 機看到這個 ARP query,他就會回應一個 ARP reply,這個 ARP reply 就包含了 B 的 IP 以及 B 的 MAC
Host A has IP address IPa and MAC address MACa Host B has IP address IPb and MAC address MACb
(ARP query)
A 送出封包查詢:
A - what is IPb's MAC address (ARP query) -> broadcast 這個 ARP query 包含了 A 的 IPa、MACa 以及要查詢的 IPb,以 及 MAC0(00:00:00:00:00:00)
(ARP reply)
B 收到這個 query 後會發出以下封包:
B - IPb is my IP, and my MAC addrees is MACb -> A
這個 ARP reply 包含了 B 的 IPb、MACb 以及目的地 IPa、MACa
=> A 現在知道 B 的 MAC 位址,可以藉此傳乙太網封包(ethernet frames)給 B 了。
IP 層的攻擊進行 ARP 協定的攻擊動作就是假造 ARP reply 的 封包。假設 A, B 要在乙太網上傳輸,我們的主機是 X,我們假造 ARP reply 使得 A 以為 B 的 MAC 位址是 MACx,使得 B 以為 A 的 MAC 位址是 MACx,如此就可以進行 man in the middle attack 了。
我們再看看之前說針對 A、B 主機的攻擊,A 和 B 並不限定在 一般主機上,還可以是 Router,Gateway 主機。如此就可以輕易的 控制整個 intranet 的網域傳輸。在實作的方法中,我們可以送出 假造的 ARP reply 到所要攻擊的主機上,使該主機自動更新 ARP table,或者是以極高頻率的 ARP reply 封包,使得 switch port 在 開機時儲存的 port/MAC 對映更新為我們所要的 port/MAC 對應。
針對 router/gateway 的攻擊,我們可以假造 ARP reply 讓其 他主機以為 router/gateway 的 MAC 為 FF:FF:FF:FF:FF:FF,也就 造成 broadcast 的傳輸模式,此時就和在 HUB 中一樣,可以監控所 有的區網封包。
如果我們假造的 ARP reply 是不存在的 MAC 位址,就會造成 阻絕攻擊。這種情況在 man in the middle attack 之後也會發生, 除非攻擊者將原本正確的 MAC 位址再用 ARP reply 更正,否則會 使得被假造的雙方無法進行傳輸,直到該假造的 ARP 資料過期或更 新為正確 MAC 位址。
某些主機在阻絕式攻擊之後,若是完全死當,則假造方甚至可 以加上 IP 的假造,完全取代受攻擊主機。
假如你所在的網路環境中, 有可能將 switch 以 MAC spoof 攻 擊,使他當機, 那麼可以使用和所要假造的主機相同的 MAC
address,讓 switch 以為不同的 port 中有相同的 device 連接, 如此在 switch 丟封包時就會將原本要送的封包, 同時丟一份到我 們所使用的假 MAC 網段的 port, 但須注意這只能做單向的竊聽。 * 其他相關網路封包格式: IP: 1 8 16 24 32 Version (4) H.Len (4)
Service type(8) TOTAL LENGTH(16)
Identification(16) Flags(3) Fragment Offset(13) TTL(8) TYPE(8) Header Checksum(16)
Source IP address(32) Destination IP address(32)
IP options(May be omitted) Padding BEGINNING OF DATA
…
ICMP: 1 8 16 24 32 Version (4) H.Len (4)
Service type(8) TOTAL LENGTH(16)
Identification(16) Flags(3) Fragment Offset(13) TTL(8) TYPE(8) Header Checksum(16)
Source IP address(32) Destination IP address(32)
Type(8) Code(8) Checksum(16) Identifier(16) Sequence Number(16)
圖 2-13 ICMP 封包格式
TCP:
1 8 16 24 32 Source Post(16) Destination Port(16)
Sequence Number(32) Acknowledgement Number(32) Data
offset(4)
Reserved(6) Flags(6) Window(16) CheckSum(16) Urgent Pointer(16)
Options(0 or more 32 bit words + padding) BEGINNING OF DATA
...
2.3 我們的防火牆架構
圖 2-15 我們的防火牆整體架構圖
我們的防火牆整體上是一個類似 Bridge 的架構,它的核心運作在 bridge 模式下,它裝有三張網路卡,但沒有設定 IP 位址,NIC 1 連接 外部網路,NIC 2 連接內部網路,NIC 3 接上防火牆網管系統。外部網 路的資料從 NIC 1 進來,經過防火牆內部的 Filter chains 過濾之後, 若符合 Control Port 端系統管理者所設定的 Rule,則從 NIC 2 傳送進 內部網路中,若不符合,則將它 drop 掉,同理,內部網路的資料要傳 送到外部網路,也須經過此防火牆的過濾才能出去。 在封包過濾時經常會作字串比對,這是防火牆封包過濾速度的癥結 點,所以我們以硬體加速演算法設計了一個字串比對晶片(這在第四章 會詳細介紹) ,掛在 Filter chain 上以使字串比對的速度加快,同時 我們實作了一個網管系統作 Filter Rule 的設定。 NIC 1 NIC 2 NIC 3 Controller 硬體加速部分 : 字串比對晶片 Filter chains 內部網路 外部網路
第 3 章 Linux 核心防火牆技術
3.1 Netfilter
3.1.1 什麼是 Netfilter
netfilter 不是柏克萊 socket 的標準介面,而是一種能夠處理 封包處理 (packet mangling) 的框架 (framework)。Netfilter 是 Linux2.4 核心實作封包過濾,封包處理,NAT 等功能的框架。 Netfilter 比舊核心的防火牆系統完善,提供了一個抽象、通用化的 框架,該框架定義的一些子功能就是封包過濾子系統。
3.1.2 Netfilter 的四個部分
一、為每種網路協定 (Ipv4、IPv6 等) 定義一套 hooks (在 Ipv4 中 是定義 5 個 hooks),這些 hooks 會在封包通過協定堆 (protocol stack) 的幾個點時被叫出來使用。在這幾個點裡面,協定堆會 把封包和 hook number 作為參數呼叫 netfilter framework。 註:在 ipv4 中所定義的 5 個 hooks: 1 NF_IP_PRE_ROUTING 2 NF_IP_LOCAL_IN 3 NF_IP_FORWARD 4 NF_IP_POST_ROUTING 5 NF_IP_LOCAL_OUT 二、核心內的任何模組會對每種協定登錄一個或多個 hooks 來實現掛 接,這樣的話,當某個封包被送給 netflter 框架時,核心就可以 檢測是否有任何模組對該協定和 hooks 登錄,如果有登錄,則這 些模組就會去檢查封包,並決定這些封包的去向。 三、排隊等待中的封包會被 ip_queue driver 集合起來,然後傳給使 用者空間 (userspace) 以非同步的方式處理。一個用戶行程可以
做檢查封包、修改封包的工作。
四、這個部分是 netfilter 的註解和文件。
此外,各種寫好的模組會提供跟舊版 Linux 核心類似的功能,特 別是擴充過的 NAT 和封包過濾系統(iptables)。
3.1.3 Netfilter 的架構
在 Netfilter 系統上,封包傳輸的流程: [1] [ROUTE] [3] [4] [ROUTE] [ 2 ] 圖 3-1 Netfilter 系統下封包的傳輸流程 封包從左邊進入系統,進行 IP 檢驗以後,封包經過第一個 hook (NF_IP_PRE_ROUTING[1]) 處理;然後進入路由代碼,由其決定該封包 是需要轉發還是發給本機的;若該封包是發給本機的,則該封包在經 過 hook NF_IP_LOCAL_IN [2] 處理以後,會被傳遞給上層協議;若該 封包應該被轉發,則它會被 NF_IP_FORWARD [3] 處理;經過轉發的封 包在經過最後一個 hook NF_IP_POST_ROUTING[4]處理以後,再傳輸到 網路上。 由本地產生的封包在經過 hook NF_IP_LOCAL_OUT [5]處理以後, 接著進行路由選擇處理,然後在經過 NF_IP_POST_ROUTING[4]處理以後 發送到網路上。3.1.4 Netfilter base
核心的模組可以對一個或多個 hooks 註冊監聽,並且在封包經過 這些 hooks 時被呼叫,更進一步,模組可以去修改這些封包,並傳下 面這些值給 netfilter: 1. NF_ACCEPT: 繼續正常傳輸封包。 2. NF_DROP: 丟掉該封包,停止傳輸。 3. NF_STOLEN: 模組接管封包,不要繼續傳輸。 4. NF_QUEUE: 讓封包排隊 (通常用在使用者空間處理) 5. NF_REPEAT: 再次呼叫 hook。3.2 防火牆工具 iptables
3.2.1 什麼是 iptables
iptables 是 Linux Kernel 2.4 版本以後的主要 IP 過濾機 制,最大的功能就是可以過濾掉不要的封包,還可以用來進行 IP 偽 裝,以達成 NAT 的主機功能。iptables 的工作方向,必須要依規則 的順序來分析。基本上,防火牆都是設定防火牆規則( RULES ) 來規 範封包的處理。 iptables 的主要功能如下: 1.增強網路位址轉換(NAT) SNAT (來源網路位址轉換) 改變封包的來源位址。 DNAT (目地網路位址轉換) 改變封包的目地位址。 2.增強的封包檢視 IPTables 可以檢查所有 6 個 TCP 旗標。 IPTables 可以詳細的指定一連串的來源或目的端埠,而非只有 單一埠或單一範圍的埠。 3.MAC 位址過濾 可以使用 MAC Address 做為過濾的條件。 4.一定比例的限制條件 抵擋拒絕服務的攻擊(像是大量 syn)和埠的掃描,而且也限制重 覆的程序上登入的次數。 5.服務的優先順序類型(TOS) 傳輸可以依優先順序到不同的排列裡。效率儘可能在可靠度最 大、花費最少及標準的服務。
3.2.2 封包在 iptables 中的處理
IP Tables 封包選擇系統建構 netfilter framework 之上。核心 模組可以註冊一個新的規則表(table),並要求封包流經指定的規則 表,這種封包選擇的方法用在封包過濾、網路位址轉換(NAT)以及封包 處理。
PRE [ROUTE] FWD POST Conntrack Mangle Mangle
Mangle Filter NAT (Src) NAT (Dst) Conntrack (QDisc) [ROUTE]
IN Filter OUT Conntrack Conntrack Mangle Mangle NAT (Dst) Filter