第二章 文獻探討
2.7 IP F ILTER 的功能
2.7.1IP Filter 簡介
IP Filter 是由Darren Reed 在許多人的幫忙下所撰寫完成的軟體,它可以安裝於 Linux、FreeBSD、Sun Solaris等許多不同的作業系統平台上,而且目前已經是FreeBSD 2.2 版及NetBSD 1.2 版作業系統的一部分了,此軟體提供了防火牆(FireWall)及網路位址轉 換(NAT,Network Address Translation)的功能,透過使用者自訂的一些規則(rule)方法,
來對網路介面上所傳遞的封包進行監控管理,而且該軟體現在已經發展成可以動態裝載的 模組化程式,並且可以與若干作業系統的核心程式(kernel)直接進行溝通,意即當作業系 統已經啟動IP Filter 的功能時,即使軟體的規則改變或是加入新的規則設定,也都可以在 不需要重新開機的情形之下,讓改變過或是全新產生的規則能夠立即產生作用。該軟體及 相關資訊可從http://coombs.anu.edu.au/~avalon/ 網址取得。
2.7.2IP Filter 軟體的規則(Rule)制定
IP Filter 的規則讀取順序採由上而下逐條讀取的原則,每當 IP Filter 讀完一條規則並
block in quick all pass in all
所以 IP Filter 讀取規則的時候,第一條規則被讀取之後判斷符合條件,因為該規則有
定義 quick 的關鍵字,所以便不會再繼續讀取下一條規則,而會直接地執行該規則所定義 的動作,所以結果便是所有的封包都無法通過該網路介面。因此當所定義之規則眾多的時 候,如何訂定規則的優先順序,便足以影響整體所需讀取及判斷的規則數目,也因此會影 響系統整體效能的表現。
第3章系統設計
Linux 二種作業系統的環境存在,而電子輔助設計軟體所支援的 Solaris 作業系統的版本通 常並不會以目前市場上最新版本為主,相反地,各電子輔助設計軟體的廠商都會以軟體開 發時,最穏定的版本為正式支援的作業系統版本,所以網路環境中的 Sun Solaris 作業系統 均統一安裝目前多數電子輔助設計軟體廠商正式支援的 Solaris8 版本,此即本研究採用 Solaris8 而不用更新的 Solaris10 為建構環境的作業系統之主因。在網路環境方面,目前 IPv4 定址空間的數量限制,沒有辦法達到使用一組 IP 位址便
因此,本研究基於下列考量而採用 Solaris 作業系統建構 IPv6 的環境:
源碼加以修改,便能夠符合作者的安全需求,而且該軟體已能夠支援 IPv6 的定址方式,表 示該軟體能夠順應網路的未來潮流,所以便決定利用該軟體來完成此論文系統的主體。
至於選擇 Tcl/Tk 為本研究中的程式語言主因如下:
1. Tcl/Tk 可支援大多數平台的程式語言。方便日後移植到其他作業平台。
2. Tcl/Tk 的語法簡單易懂,維護程式較容易。
3. Tcl/Tk 在撰寫使用者介面(User Interface)方面比其他程式語言容易。
基於上述理由,故本研究之系統便以 Tcl/Tk 所撰寫的使用者介面系統將所有的元件組 合,加強資料在網路上傳遞時的安全性。
3.3 虛擬私有網路(VPN)的設計
本論文在建立虛擬私有網路的時候,採取利用 Soalris 8 可以設定建立通道(tunneling)
的新特性,在虛擬私有網路的二端設定並建立起虛擬通道。
VPN
IntranetIntranet
Site B Site A
圖 19 系統建立通道模式前
VPN
IntranetIntranet
New Tunnel
Site B Site A
圖 20 系統建立通道模式後
Solaris 8 要達到建立虛擬通道的目的,乃是透過下列模組的功能來完成:
strmod/tun strmod/atun
為了要將在傳遞溝通的過程中相關性降至最小,在傳遞的二個節點中間所需經過的路 由器,並不需要一定能支援 IPv6 的協定。這種機制稱為通道模式(tunneling)。基本上,IPv6 的封包是放在 IPv4 的網路封包內,而此 IPv4 的封包是真正透過 IPv4 路由器傳送的封包格 式。 圖 21 解釋此通道模式的機制:
圖 21 通道模式的機制
在傳遞溝通的過程中,通道模式的型式可分為在二台機器間定義通道模式 (圖 11)及 在二個路由器中定義通道(圖 12)。目前在網際網路上所定義的通道模式大多是為了其它 的用途,例如MBONE (IPv4 multicast backbone)。而此類的通道模式在可預見的未來,將會 愈來愈常被使用。
3.4 友善的圖形操作介面
本研究是利用 Open Source 軟體中的 IP Filter 及 Sun 的作業系統 Solaris 的系統指令 來達成本研究加強資料傳輸時的安全性目的 , 在許多的系統操作經驗中顯示,透過友善 的圖形介面操作會遠比命令模式下操作指令更能讓使用者容易接受,尤其對不熟悉系統指 令的管理人員而言,更是如此,光是要記憶許多的指令及路徑就可能讓管理人員傷透腦筋,
因此本研究一開始便朝發展出一個簡易的圖形介面為方向,方便協助系統管理人員能夠在 很短的時間內能夠利用該系統來加強網路上的資訊安全。
當使用者以系統管理人員(root)的身份登入的時候,只需一個指令即可開始使用該系統 的功能 ,完成 IP Filter 及網路參數的設定。圖 22 為進入系統後所見到的啟始介面,此一 介面也是設定 VPN 網路相關參數所見到的畫面。
此一介面可設定主機的網路參數,如 IP Address、是否支援 IPv6 等。若要建立一個 VPN 通道的話,則只需點選 Tunnel Setup 的按鈕選項,則系統即會開啟通道設定的新視窗
(如圖 23),將設定一一填入後,只要執行 submit 選項後,所設定的網路參數會立即生效,
因此系統管理人員不必記憶設定系統網路參數及通道設定時所需的指令及每個指令的語法 格式及選項,系統管理人員只需記得每一欄位所代表的意義,一一填入即可完成設定,而 個個選項的名稱也都儘量以一般常見的名詞命名,所以要了解其意義並不困難。
VPN 設定畫面中各欄位的說明如下:
Network Interface Name:網路介面的名稱,此為 Sun Solaris 所能辨認的網路介面的敍述,
如 hme0 或 eri0;如該主機有二個網路介面的話,則需填寫下面的 Network Interface Name 欄位。
Supports:確認該網路介面支援 IPv4/IPv6 的程度 IP Address:填入網路介面所需的 IP Address
圖 22 VPN 網路設定的圖形介面
通道設定畫面中各個欄位的說明如下:
Tunnel No.:針對每一個 VPN 連線都必需確認其編號,而該編號可以由管理人員自行設定。
Source:來源主機的 IP Address,分為 IPv4 及 IPv6 二種。
Target:目的地主機的 IP Address,分為 IPv4 及 IPv6 二種。
圖 23 VPN - Tunnel 設定介面
若是要設定 IP Filter 的 firewall 功能時,則系統管理人員只要以滑鼠點選上方的 Firewall 選項即可看到如圖 24 的畫面。此一畫面為進入 firewall 設定後所看到的預設畫面,畫面中 會將目前系統中所執行的規則全部列出,而每一行在“#”符號後方的所有內容均視為說明,
不會交由 IP Filter 執行或判斷。系統管理人員可以在畫面中立即編修所要增刪的規則內 容,確定內容編輯完成後,務必要以滑鼠點選 Save 按鈕選項將所編輯過的規則記錄下來,
如此離開本系統之後才不致於將剛才所做的改變遺失,而每次點選 Save 功能時,系統會自 動將原先記錄檔的檔名後方加入時間註腳,以便日後要重回特定時間的規則時,可以輕易 地回復到當時的情形。
圖 24 Firewall - 設定的啟始畫面
而 load 按鈕選項則是專門為了將 firewall 規則回復到某一特定時間時所用。 使用者可 以透過選單的方式點選所需的設定檔案,每一個設定檔案的最後一個欄位即為該記錄檔 save 時的時間點,若沒有時間點的檔案則為目前執行的設定檔。舉例來說,若最後一個欄 位的數字為 200504160324 則代表此檔案的儲存時間為 2005 年 04 月 16 日 03 點 24 分。其 畫面如圖 25 所示。
圖 25 Firewall - Load config file 畫面
當你編輯 Firewall 設定檔時,若要確認所設定的規則是否有誤時,則可以利用“Check Rules”的選項先 check 是否有不符合 IP Filter 的設定。若有問題的話,則會在畫面中顯示錯 誤,否則便會將所有檢查過的規則一一列出,而設定檔中的說明部份則不會列出。其畫面 如圖 26 所示。
圖 26 Firewall – 檢查 firewall rules 介面
而 Help 選項則是將此系統各個欄位簡略地提示使用者知道,因其內容己於前面介紹過 了,在此不再重複。而 Quit 選項則是讓使用者點選離開系統,但是為了避免使用者是誤選 到該功能,所以會出現新的視窗再次與使用者確認動作,如圖 27,若確認後,方會真正離 開系統。
圖 27 系統 Quit 確認視窗
第4章測試驗證
4.1 驗證環境的建構
為了驗證本論文中所提之方法確實可以增加資料傳遞時的安全性,故擬建構一個模擬 之測試環境,並利用封包解讀之工具的輔助,來了解設定 VPN 通道前後對於所傳遞之資 料封包所造成的差異性。
硬體需求:
1. 二台測試主機,以便安裝測試軟體,進行測試。
2. 本文以 Solaris 為測試的作業系統,故機器的硬體以 Sun Workstation 為測試的機種。
3. 一台監控的主機,以監控網路上所傳遞的封包內容。本論文擬利用 Solaris 的內建 工具 snoop 為分析資料封包的工具軟體,故監控機器仍以 Sun Workstation 為監控 的機種。
4. 一台網路設備,以便模擬建構出一個簡單的網路環境,本論文以集線器(Hub)
為測試設備。
軟體需求:
1. 作業系統,本論文以昇陽電腦之 Solaris 8 為測試機器上所安裝的作業系統,因為 昇陽電腦從 Solaris 8 之後的作業系統可以支援 IPv6 的網路功能,符合本論文的 需求。
2. 編譯器(Compiler),本論文同樣以網路上免費的 GNU C 編譯程式(簡稱 GCC)
為本論文所使用的編譯器,以符合本論文希望使用開放原始碼軟體來完成達到增 加系統安全的目的。
3. 監控軟體,市場上有許多的軟體可以達到此功能,但是同樣希望能以開放原始碼 軟體為主要考量,昇陽電腦的 Solaris 作業系統中所提供的 snoop 程式便可以用來 進行網路封包的監控與分析,所以便不另外安裝其他軟體。
所以測試環境的示意圖如下(圖 28):
通道二端的二台主機分別為主機 A 及主機 B,其設定如下:
通道二端的二台主機分別為主機 A 及主機 B,其設定如下: