• 沒有找到結果。

以SDN為基礎之自動化防火牆:規則學習、入侵偵測與多路頻寬負載平衡器之實作 - 政大學術集成

N/A
N/A
Protected

Academic year: 2021

Share "以SDN為基礎之自動化防火牆:規則學習、入侵偵測與多路頻寬負載平衡器之實作 - 政大學術集成"

Copied!
87
0
0

加載中.... (立即查看全文)

全文

(1)國⽴立政治⼤大學資訊科學系 Department of Computer Science National Chengchi University 碩⼠士論⽂文 Master’s Thesis. 立. 政 治 大. ‧. ‧ 國. 學. 以SDN為基礎之⾃自動化防⽕火牆:規則學習、︑入侵偵 測與多路頻寬負載平衡器之實作 SDN based Automatic Firewall for Rules Learning, IDS and Multi-WAN Load Balancer n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 研 究 ⽣生 :王昌弘 指導教授:張宏慶. 中 華 民 國 104 年 08⽉月 August 2015.

(2) 以SDN為基礎之⾃自動化防⽕火牆:規則學習、︑入侵偵測與多 路頻寬負載平衡器之實作 SDN based Automatic Firewall for Rules Learning, IDS and Multi-WAN Load Balancer 研 究 ⽣生:王昌弘 Student:Chang-Hung Wang 指導教授:張宏慶 Advisor:Hung-Chin Jang. 國⽴立政治⼤大學 資訊科學系 碩⼠士論⽂文. 學. Nat. y. ‧. ‧ 國. 立. 政 治 大. n. sit. er. io. A Thesis submitted to Department of Computer Science al National Chengchi University iv n Ch i URequirements e n g cofhthe in partial fulfillment for the degree of Master in Computer Science. 中 華 民 國 104 年 08⽉月 August 2015 .

(3) 以SDN為基礎之⾃自動化防⽕火牆:規則學習、︑入侵偵測與多路頻寬 負載平衡器之實作 摘要 防⽕火牆是現今網路中的重要設備,負責區隔內部網路和公共網路,維護內 部網路安全。︒然⽽而防⽕火牆也存在幾個重要的問題,⾸首先,防⽕火牆的規則是. 治 政 大 由網管⼈人員設定,近年來隨著網路科技蓬勃發展、︑虛擬技術⼤大量應⽤用,此 立 ‧ 國. 學. 項⼯工作已帶給網管⼈人員龐⼤大的負擔。︒其次,防⽕火牆雖可隔離外部網路,阻 擋有害流量,但對內部網路的防範卻毫無⽤用武之地。︒⽬目前市⾯面上普遍使⽤用. ‧. 入侵偵測系統(IDS)進⾏行偵測,但僅能在發現攻擊⾏行為後發出警告訊息,無. sit. y. Nat. 法即時處理。︒最後,企業在連外網路部分,通常採⽤用多條線路進⾏行備援,. er. io. 並倚賴多路頻寬負載平衡器(Multi-WAN load balancer)增加頻寬的使⽤用率,. n. a. v. l C 但在線路數量上卻受限於廠商所制定之規格,無法彈性調整。︒⽽而在負載平 ni. hengchi U. 衡演算法⽅方⾯面,也只能基於網路特徵(IP位置)、︑權重比例(weight)或是輪詢 機制(round robin),無法依據⽬目前網路狀況做出更好判斷。︒. 為改善上述問題,本論⽂文在軟體定義網路(SDN)環境下,使⽤用交換機 取代傳統防⽕火牆設備,透過封包分析與信任觀測區間達到規則學習,並整 合Snort入侵偵測系統,透過特徵比對,找出危害網路環境之封包,即時阻 擋該危險流量。︒本論⽂文也提出基於隨需(on demand)概念,動態調整防⽕火 . i.

(4) 牆規則,降低管理⼈人員負擔。︒最後利⽤用交換機擁有多個實體通訊埠的概念 ,依需求可⾃自由調整對外及對內線路數量,不再受限於廠商規格,取代傳 統多路寬頻負載平衡器,建構更彈性的架構。︒並透過收集交換機上的實體 埠與資料流表中的資訊,即時評估網路狀況,加強負載平衡。︒為驗證本論 ⽂文所提出之⽅方法的有效性,我們使⽤用Linux伺服器架設KVM、︑OpenvSwitch 以及POX控制器實際建構SDN網路環境,透過發送封包對防⽕火牆提出請 求,以驗證實驗⽅方法的正確性。︒. 立. 政 治 大. ‧ 國. 學. 根據實驗結果顯⽰示,本論⽂文所提出之概念均能正確運作,有效降低調 整防⽕火牆所需之⼈人⼯工作業。︒在多路寬頻負載平衡器部分,本研究所提出之. ‧. 負載平衡⽅方法,與round robin負載平衡⽅方法相較之下,在最佳情況下,能. Nat. n. al. er. io. sit. y. 有效提升約25%平均頻寬使⽤用率,並降低約17.5%封包遺失率。︒. iv. n 關鍵字 : 軟體定義網路、︑防⽕火牆、︑入侵偵測系統、︑多路頻寬負載平衡器 C. hengchi U. ii.

(5) SDN based Automatic Firewall for Rules Learning, IDS and Multi-WAN Load Balancer Abstract. Firewall is an important device that is responsible for securing internal network by separating Internet from Intranet, but here are several existing issues about. 政 治 大 Along with the vigorous development of Internet technologies and great amount 立 of applications of virtual technology in recent years. This work burdens the the firewall. First, the firewall rules are set by the network admistrator manually.. ‧ 國. 學. network adminstrator with a heavy workload. Second, the firewall is able to. ‧. isolate the external network from harmful traffic, however, it can do nothing to the internal network. The common situation is to use IDS to detect the harmful. Nat. sit. y. packet, but it can only send an alert message to the adminstrater, no more. er. io. actions can be done. Finally, most companies use several ISP connections to. n. a use Multi-WAN loadi vbalancer to integrate those assure fault tolerance and connections to enhance. l C n U bandwidth But h e nutilization. i gch. the number of WAN/LAN. ports is set by the manufacturer, and the load balance algorithm is also limited by the manufacturer. It offers only a few algorithms (network-based features, round-robin, etc.), and there is no other way to provide. more efficient. algorithms. In order to resolve the mentioned problems, we propose an automatic firewall based Software Defined Network (SDN). We use Openflow switches to replace traditional firewalls, the system is able to learn the rules automaticlly by packet analysis during an observation interval. We aslo integrate Snort Intrusion . iii.

(6) Detection System (IDS) to localize the dangerous packets and block them immediately. Next, we propose an on-demand based dynamic firewall rules adjustment mechanism which is able to reduce management workload. Finally, we implement a Multi-WAN load balancer architecture and provide a more efficient load balance algorithm by collecting port usage and firewall rule information. In order to verify the proposed methods, we implement a SDN environment by using Linux Ubuntu servers with KVM, Open vSwitch and POX controller. According to the experiment result, it proves that the proposed. 政 治 大 experiment results show that 立. method is able to reduce the firewall configuration effectively. In the MultiWAN load balancer,. our method outperforms. ‧ 國. 學. round-robin argrithom in terms of average bandwidth utilization and packet loss rate by 25% and 17.5%, respectively.. ‧. n. al. er. io. sit. y. Nat. Keywords : SDN、︑Firewall、︑IDS、︑Multi-WAN Load Balancer . Ch. engchi. iv. i n U. v.

(7) 誌謝 ⾸首先誠摯的感謝指導教授張宏慶博⼠士,張⽼老師悉⼼心的教導使我得以⼀一窺⾏行動通訊網路 領域的奧秘,並且在我對於論⽂文⽅方向迷惘時,不厭其煩的與我討論並指點我正確的⽅方 向,使我在這些年中獲益匪淺。︒⽼老師對學問的嚴謹更是我輩學習的典範。︒. 回⾸首兩年來的⽇日⼦子,時光過得非常快,想當初剛踏進校⾨門時的憧憬不安,彷彿是 昨⽇日才發⽣生的事情。︒在職專班的⽣生活非常的忙碌,但也非常的充實,每份報告與作業. 政 治 大 往往都是在漫漫長夜中完成,段考時更是蠟燭兩頭燒,但現在回頭看,這些經歷都是 立 我這兩年中最珍貴的回憶。︒感謝在這兩年中所有的授課⽼老師,陳良弼⽼老師的⼤大資料研. ‧ 國. 學. 究,胡毓忠⽼老師的分散式系統,陳恭和連耀南⽼老師的程式設計,何瑁鎧⽼老師的演算法,. ‧. 每⼀一位⽼老師的專業技能,許許多多的專業知識,無論是在基礎或是在新技術上,都擴. y. sit. io. n. al. er. 的專業⼈人才。︒. Nat. 展了我在電腦各領域的視野,很榮幸能夠進入政⼤大資科這個⼤大家庭,使我成為更優秀. i n U. v. 感謝傑哥、︑Hank、︑明志、︑育叡、︑師凱、︑建雄、︑麒瑋等所有實驗室的夥伴們,總是. Ch. engchi. 能⼀一起討論並且尋求問題的答案,不厭其煩的指出我研究中的缺失,且總能在我迷惘 時為我解惑。︒最後,謹以此⽂文獻給我摯愛的家⼈人。︒. v.

(8) ⽬目次 第⼀一章 前⾔言 ...................................................................................................... 1 1.1 研究背景 .................................................................................................1 1.2 論⽂文架構 .................................................................................................2 第⼆二章 背景技術與相關研究 .......................................................................... 3 2.1 SDN簡介 .................................................................................................3. 政 治 大. 2.2 防⽕火牆簡介 .............................................................................................6. 立. 2.2.1 網路層防⽕火牆 ..................................................................................6. ‧ 國. 學. 2.2.2 應⽤用層防⽕火牆 ..................................................................................6. ‧. 2.2.3 代理服務 ..........................................................................................7. y. Nat. 2.2.4 防⽕火牆架構 ......................................................................................7. er. io. sit. 2.3 入侵偵測系統簡介 ...............................................................................10. n. 2.3.1 入侵偵測系統設計⽅方式分類 ........................................................ 10 a v 2.3.2. i l C n h e n g c h........................................................ i U 入侵偵測系統偵測⽅方式分類 11. 2.3.3 Snort 入侵偵測系統 ......................................................................12 2.4 Openflow相關概念 ...............................................................................13 2.4.1 OpenFlow交換機 ...........................................................................14 2.4.2 OpenFlow路由表 ...........................................................................14 2.4.3 OpenFlow Matching .......................................................................15 2.4.4 OpenFlow Counters........................................................................16 2.4.5 OpenFlow Instruction .....................................................................17. vi.

(9) 2.4.6 安全通道 ........................................................................................17 2.5 POX SDN網路控制器 ..........................................................................17 2.6 Mininet 網路模擬器 .............................................................................19 2.7 相關研究 ...............................................................................................20 2.7.1 防⽕火牆相關研究 ............................................................................20 2.7.2 負載平衡相關研究 .......................................................................21. 政 治 大. 第三章 實驗架構與實驗⽅方法 ........................................................................ 22. 立. 3.1 規則學習 ...............................................................................................22. ‧ 國. 學. 3.2 入侵偵測系統的⾃自動防護功能 ...........................................................29. ‧. 3.3 隨需註冊機制 .......................................................................................33 3.4 多路寬頻負載平衡器 ...........................................................................36. y. Nat. io. sit. 第四章 實作技術與實驗結果 ........................................................................ 41. er. 4.1 系統架構 ............................................................................................... 41 a. n. iv l C n 硬體規格 ............................................................................................... 43 hengchi U. 4.2. 4.3 系統平台及軟體 ...................................................................................43 4.4 建置實驗環境 .......................................................................................44 4.4.1 KVM安裝 .......................................................................................44 4.4.2 Open vSwitch安裝與設定 .............................................................45 4.4.3 Snort安裝 .......................................................................................46 4.4.4 POX Controller安裝 ......................................................................47 4.5 防⽕火牆⾃自動邏輯⽣生成實驗結果 ...........................................................47. vii.

(10) 4.6 入侵偵測系統的⾃自動防護功能實驗結果 ...........................................52 4.7 隨需的註冊機制實驗結果 ...................................................................56 4.8 多路寬頻負載平衡器實驗結果 ...........................................................57 第五章 結論 .................................................................................................... 69 5.1 總結 .......................................................................................................69 5.2 未來研究⽅方向 .......................................................................................69. 政 治 大. 參考⽂文獻 ...........................................................................................................71. 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. viii. i n U. v.

(11) 表次 表3.1 防⽕火牆邏輯⽰示意表……………………………………………………………………23 表3.2 IDS測試規則 ………………………………………………………………………….31 表4.1 軟體名稱及功能………………………………………………………………………43 表4.2 Snort log列表.…………………………………………………………………………54 表4.3 10%測試-平均頻寬使⽤用率...…………………………………………………………58 表4.4 10%測試-Packet loss rate..……………………………………………………………59 表4.5 20%測試-平均頻寬使⽤用率...…………………………………………………………60. 治 政 表4.6 20%測試-Packet loss rate..……………………………………………………………61 大 立 表4.7 30%測試-平均頻寬使⽤用率...…………………………………………………………63 ‧ 國. 學. 表4.8 30%測試-Packet loss rate..……………………………………………………………64 表4.9 40%測試-平均頻寬使⽤用率...…………………………………………………………65. ‧. 表4.10 40%測試-Packet loss rate……………………………………………………………66. n. er. io. sit. y. Nat. al. Ch. engchi. ix. i n U. v.

(12) 圖次 圖2.1 SDN架構圖...……………………………………………………………………………5 圖2.2 主機型防⽕火牆...…………………………………………………………………………7 圖2.3 雙閘型防⽕火牆...…………………………………………………………………………8 圖2.4 屏障單機型防⽕火牆...……………………………………………………………………9 圖2.5 屏障雙閘型防⽕火牆...……………………………………………………………………9 圖2.6 屏障⼦子網域型防⽕火牆.…………………………………………………………………10 圖2.7 OpenFlow網路架構……………………………………………………………………14. 政 治 大. 圖2.8 OpenFlow路由表項結構………………………………………………………………15. 立. 圖2.9 OpenFlow封包比對流程………………………………………………………………16. ‧ 國. 學. 圖2.10 POX效能比較圖...……………………………………………………………………18 圖3.1 現⾏行防⽕火牆架構⽰示意圖.………………………………………………………………23. ‧. 圖3.2 規則學習實驗架構圖.…………………………………………………………………25. y. Nat. 圖3.3 規則學習實驗流程圖.…………………………………………………………………26. sit. 圖3.4 入侵偵測系統的⾃自動防護功能實驗架構圖.…………………………………………29. er. io. 圖3.5 入侵偵測系統的⾃自動防護功能實驗流程圖.…………………………………………29. al. iv n C hengchi U 圖3.7 隨需註冊機制實驗流程圖.……………………………………………………………34 n. 圖3.6 隨需註冊機制實驗架構圖.……………………………………………………………33 圖3.8 多路頻寬負載平衡實驗架構圖.………………………………………………………36 圖3.9 多路頻寬負載平衡實驗流程圖.………………………………………………………37 圖3.10 觀測時間實驗圖...……………………………………………………………………39 圖4.1 整體實體架構圖.………………………………………………………………………40 圖4.2 整體邏輯架構圖.………………………………………………………………………41 圖4.3 服務整合架構圖(SDAW)...……………………………………………………………42 圖4.4 Virt-manager管理畫⾯面....………………………………………………………………44 圖4.5 初始資料流表.…………………………………………………………………………46 圖4.6 Client ping Server1成功畫⾯面..…………………………………………………………47 圖4.7 資料流表項新增成功畫⾯面.……………………………………………………………47 . x.

(13) 圖4.8 資料流表新增TCP:80成功畫⾯面 ………………………………………………………49 圖4.9 資料流表新增SSH、︑FTP流量成功畫⾯面...……………………………………………49 圖4.10 資料流表新增drop規則畫⾯面…………………………………………………………50 圖4.11 ⾃自動防⽕火牆測試結果(ping Server1,Server2)...…………………………………….51 圖4.12 ⾃自動防⽕火牆測試結果(server1 TCP port 20,21)……………………………………51 圖4.13 ⾃自動防⽕火牆測試結果(server1 TCP port 80)…………………………………………51 圖4.14 Snort啟動畫⾯面...………………………………………………………………………52 圖4.15 Unix Domain Socket監聽程式.………………………………………………………52 圖4.16 產⽣生測試封包...………………………………………………………………………53. 政 治 大. 圖4.17 監聽到危險封包...……………………………………………………………………53. 立. 圖4.18 成功阻擋有害流量...…………………………………………………………………54. ‧ 國. 學. 圖4.19 使⽤用者登入畫⾯面...……………………………………………………………………55 圖4.20 初始資料流表...………………………………………………………………………56. ‧. 圖4.21 隨需調整後資料流表...………………………………………………………………56 圖4.22 成功存取Server1...……………………………………………………………………56. y. Nat. sit. 圖4.23 10%測試-平均頻寬使⽤用率..…………………………………………………………57. er. io. 圖4.24 10%測試-Packet loss rate.……………………………………………………………58. al. iv n C 圖4.26 20%測試-Packet loss rate.……………………………………………………………61 hengchi U n. 圖4.25 20%測試-平均頻寬使⽤用率..…………………………………………………………60 圖4.27 30%測試-平均頻寬使⽤用率..…………………………………………………………62 圖4.28 30%測試-Packet loss rate.……………………………………………………………63 圖4.29 40%測試-平均頻寬使⽤用率..…………………………………………………………65 圖4.30 40%測試-Packet loss rate.……………………………………………………………66 . xi.

(14) 第⼀一章 第⼀一章 前⾔言 1.1 研究背景 軟體定義網路SDN(Software Defined Networking),是⼀一種以軟體為基礎的網路架構及. 政 治 大 ⾏行分離。︒由於分離後的控制功能能集中統⼀一管理,並且其具有軟體設計的靈活性,因 立 技術,其最⼤大特點為將傳統⼆二、︑三層網絡設備的控制功能與設備本身數據轉發功能進. ‧ 國. 學. 此,網管⼈人員對底層設備的資源控制變得更加容易,進⽽而⼤大⼤大提升網路⾃自動化管理能 ⼒力,並有效解決⽬目前網路系統所⾯面臨如網路拓樸的靈活性差,規模擴充受限等問題。︒. ‧. 近年來伴隨各式各樣網路應⽤用程式、︑虛擬化技術等種種新技術及新業務的快速發. y. Nat. sit. 展,雖帶來愈來愈多便利,但也⼤大量增加防⽕火牆的負擔。︒然⽽而現今無論是軟體式或是. n. al. er. io. 硬體式防⽕火牆,其防⽕火牆規則還是依賴網路管理⼈人員逐⼀一設定,若是新增或修改服務,. i n U. v. 網管⼈人員都需要介入⼿手動調整防⽕火牆規則。︒在現今快速變動的網路環境下,傳統依賴. Ch. engchi. ⼈人⼯工逐⼀一設定的⽅方法已逐漸失去效率。︒然⽽而隨著軟體定義網路的興起,此⼀一問題有了 新的解決⽅方案。︒. 在⽬目前現有SDN防⽕火牆的研究中[6][34],⼤大部份是在討論如何達到集中式管理, 利⽤用SDN交換機取代現有防⽕火牆,並未有針對如何產⽣生防⽕火牆邏輯的相關研究︔;⽽而在 負載平衡的研究中[7][13],⼤大多是討論在資料中⼼心內如何利⽤用SDN交換機進⾏行負載平 衡,並未討論如何與防⽕火牆結合,取代現有多路頻寬負載平衡器。︒因此,本研究的重 點在於如何⾃自動產⽣生防⽕火牆邏輯並整合多路頻寬負載平衡器。︒本研究的實驗部分利⽤用 Linux Ubuntu[31]架設SDN網路環境,Open vSwitch[22]做為虛擬交換機,並安裝. 1.

(15) KVM[12]虛擬環境,將實驗中各主機掛載於KVM上,建⽴立⼩小型的 SDN網路環境以進⾏行 (1)⾃自動化防⽕火牆邏輯產⽣生、︑(2)隨需註冊、︑(3)入侵偵測系統、︑(4)多路寬頻負載平衡器等 四個部分的實驗。︒. 1.2 論⽂文架構 本⽂文在軟體定義網路環境下,結合入侵偵測系統與封包分析技術,並提出以隨需的概 念來達到⾃自動化調適性防⽕火牆的⽬目的,最後經由實驗驗證我們所提出之⽅方法的可⾏行性。︒. 治 政 大 本論⽂文共分為五章,第⼀一章為前⾔言,介紹論⽂文的研究背景及主要⼯工作︔;第⼆二章為 立 相關技術,包含SDN軟體定義網路、︑OpenFlow通訊協定、︑防⽕火牆技術、︑IDS入侵偵測 ‧ 國. 學. 系統等技術的背景說明︔;第三章為實驗架構與實驗⽅方法,說明整個實驗的⽬目的和實驗. ‧. 架構,並針對各個環節詳細說明實驗⽅方法︔;第四章為實驗結果及分析,針對本⽂文所提. Nat. n. al. er. io. sit. 有待改進之處,以及本⽂文未完成及展望未來的研究⽅方向。︒ . y. 出的⽅方法,以模擬環境的實驗數據進⾏行分析︔;第五章為結論,對全⽂文進⾏行總結,描述. Ch. engchi. 2. i n U. v.

(16) 第⼆二章 第⼆二章 背景技術與相關研究 2.1 SDN簡介. 政 治 大. 隨著雲端應⽤用服務、︑數據中⼼心、︑巨量資料、︑虛擬化技術的發展和成熟導致網路業務的. 立. 多樣化,網際網路的路由與拓撲越來越複雜。︒經過這些年的發展,⽬目前網路架構產⽣生. ‧ 國. 學. 許多問題,不夠靈活,導致愈來愈不敷使⽤用。︒此外,所有網路設備之設定與控制功 能,皆設置於設備本身,當網管⼈人員需要變更各種設定時,必須針對每台網路設備,. ‧. 逐⼀一登入,進⾏行設定之變更與修改,不但浪費時間,且極無效率。︒. sit. y. Nat. io. er. 軟體定義網路(SDN)是為了解決傳統網路的這些問題,所提出之新⼀一代的網路架 構,使軟體成為網路管理與控制的關鍵。︒SDN改良了傳統網路架構的控制模式,將網. al. n. iv n C 路分為控制平⾯面(control plane)與資料平⾯面(data h e n g c hplane),將網路管理交由控制器(controll i U er)負責,採⽤用中央管理⽅方式,所有設備皆經由控制器管理。︒控制器就像是中央指揮. 官,統⼀一下達指令給網路設備,網路設備則只專⾨門負責封包傳遞,不再具有任何管理 功能。︒. 2.1.1 SDN主要概念. SDN之主要概念在於將控制平⾯面與資料平⾯面分離,控制平⾯面負責管理資料平⾯面之轉發 路徑(forwarding path),例如封包的路由路徑。︒資料平⾯面則是封包實際轉送的實體,負 責封包解析、︑傳送,依據控制平⾯面所制定之邏輯進⾏行比對與轉發。︒傳統網路設備之控. 3.

(17) 制平⾯面的功能綁定在設備本身中,因此在執⾏行指令與控制資料傳輸時,皆由設備本身 控制,這使得在網路管理上造成極⼤大的負擔,若有任何變動,需對設備逐⼀一設定。︒再 者,使⽤用者只能使⽤用設備商所提供之功能,無法將⾃自⾏行開發軟體附加功能加到現有網 路設備上,使得網路管理變得複雜且沒有彈性。︒. SDN是⼀一種新興的網路架構,其核⼼心思想是將傳統網路裝置之⾼高相依性的網路架 構抽離並分成應⽤用、︑控制、︑實體等三層架構。︒如圖2.1所⽰示,SDN共分為應⽤用層(Applica tion layer)、︑控制層(Controller layer)和實體層(Infrastructure layer)。︒. 立. • 應⽤用層:. 政 治 大. ‧ 國. 學. 為SDN架構中的最上層,開發⼈人員可⾃自⾏行撰寫各種應⽤用軟體,例如:路徑選擇、︑ QoS等,透過API(ApplicationProgrammingInterface),和下層的控制層做雙向溝通,. ‧. 以完成指令下達或資料交換。︒也由於SDN開放的特性,⽬目前這些API並無統⼀一規. sit. er. io. • 控制層:. y. Nat. 範,開發⼈人員或企業可根據⾃自⼰己的需求進⾏行開發與客制化。︒. al. n. iv n C 控制層為傳統網路設備(交換機、︑路由器等)中之控制功能,在SDN架構中,將此控 hengchi U 制部份與原先硬體設備分離。︒所有網路中的控制功能、︑網路管理、︑路由機制、︑故 障恢復等所有功能都統⼀一由控制層完成,實現了控制平⾯面與資料平⾯面分離的核⼼心 概念。︒. • 實體層: 即為實體的網路設備,在SDN架構中,由於控制平⾯面已經被抽離,這些設備本身 並無控制管理的功能,所有經過設備的封包都由設備上的Flow Table進⾏行比對與處 理,若無法找到適合的規則,則會將該封包轉發給控制器。︒. 4.

(18) 除了上述三層外,各層間相通的介⾯面也是SDN架構中非常重要的部分。︒控制層與 實體層之間的介⾯面稱為南向介⾯面(south bound),為SDN控制器和網路實體設備之間的通 信介⾯面。︒控制層與應⽤用層之間的介⾯面稱為北向介⾯面(north bound),北向應⽤用程序介⾯面 (north bound API)為SDN控制器運⾏行在網絡上的應⽤用程序進⾏行通信。︒透過SDN網路可⾃自 ⾏行撰寫程式,北⾏行的API可配合不同應⽤用實現⾼高效能和網路⾃自動化。︒. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖2.1 SDN架構圖 [27]。︒. 傳統設備中無論是交換機或路由器,設備本身除了硬體外,不同廠商,也會依設 備不同,附加相對應的網管軟體或專屬的應⽤用軟體,然⽽而,這樣的做法產⽣生了許多問 題。︒不同設備存在不同管理介⾯面,不同廠商對相同設備也存在不同管理介⾯面,⼤大幅增 加管理上的困難,網路的靈活性與擴展性也受到限制。︒在新的SDN網路架構下,SDN 交換機只做封包轉發,傳統硬體上的網路管理或專屬的應⽤用軟體則抽離出來,由獨⽴立 的控制器統⼀一管理。︒因此,網路設備不再受限於特定廠商,可由控制器來做設備的集 中管控,控制器上的開放介⾯面,也可依需求開發頻寬管理,存取控制等相關應⽤用軟體,. 5.

(19) 如此可提⾼高開創性與靈活性。︒. 2.2 防⽕火牆簡介 防⽕火牆(Firewall)是⽤用以維護資訊安全的裝置,可由硬體或軟體來構成,根據所設定的 規則,允許或限制網路流量的通過,隔離內外部網路,將網路劃分成不同區域,並設 定不同區域間的存取規則,以控制區域間傳送的資料流向。︒防⽕火牆基本上是負責控制 網路設備間的存取權限,透過訂定存取規則,檢查來往的封包流,再依安全政策決定. 治 政 大 讓封包通過或是加以阻檔。︒若以使⽤用的TCP/IP堆疊(Stack)做區分,則分為網路層防⽕火 立 牆和應⽤用層防⽕火牆兩類。︒ ‧ 國. 學 ‧. 2.2.1 網路層防⽕火牆. Nat. sit. y. 網路層防⽕火牆是⼀一種IP (Internet Protocol)封包的過濾器,運作在底層TCP/IP的協定堆疊. n. al. er. io. 上,可透過列舉⽅方式,允許符合該規則的封包通過,其餘⼀一律不可穿越防⽕火牆。︒另⼀一. i n U. v. 種較寬鬆(反向)的設定⽅方式為若封包不符合任何「阻擋規則」即予以通⾏行。︒可以利⽤用封. Ch. engchi. 包的多個屬性進⾏行過濾,例如來源IP位址、︑埠號與服務類型(如FTP)等,亦可由通訊協 定、︑來源網域名稱等屬性進⾏行過濾。︒. 2.2.2 應⽤用層防⽕火牆. 應⽤用層防⽕火牆運作於TCP/IP堆疊的應⽤用層,例如瀏覽器所產⽣生的資料。︒應⽤用層防⽕火牆 可攔截應⽤用程式的所有封包,並丟棄不符合規則的封包。︒理論上,此類防⽕火牆可完全 阻擋外部資料進入受保護之主機。︒應⽤用層防⽕火牆可透過監測封包並找出不符規則的內. 6.

(20) 容,以防範電腦蠕蟲或⽊木⾺馬程式。︒但實務上因為⽅方法過於繁複(因軟體種類極多),少有 防⽕火牆以此⽅方法設計。︒. 2.2.3 代理服務 代理(Proxy)服務強調⽤用⼾戶端程式必需與代理伺服器接洽,再透過它來和⽬目的主機連 接,⽽而非直接讓⽤用⼾戶端連接真正的⽬目的主機。︒此⼀一過程可對⽤用⼾戶端的請求進⾏行評估, 並決定是否為⽤用⼾戶端的請求服務,若⽤用⼾戶端的請求是許可之⾏行為,代理伺服器會將其. 政 治 大. 請求轉傳到⽤用⼾戶端原先之⽬目的主機,並將收到的回應傳送給⽤用⼾戶端。︒. 立. ‧ 國. 學. 2.2.4 防⽕火牆架構. ‧. 防⽕火牆架構可分為以下五種:. y. Nat. io. sit. 1. 主機型防⽕火牆:如圖2.2所⽰示,此類防⽕火牆需要安裝兩張網路卡,分別連接網際網. n. al. er. 路和企業內部網路。︒所有進出的封包都需要透過此主機過濾,藉以阻擋不允許之網. Ch. 際網路流量進入企業內部網路。︒. engchi. i n U. v. 圖2.2 主機型防⽕火牆[38]。︒. 7.

(21) 2. 雙閘型防⽕火牆:此防⽕火牆類似主機型防⽕火牆,但除了主機上安裝的兩張網路卡外, 需額外安裝應⽤用服務轉送器(application service forwarder),並由該軟體檢查所有網 路封包,以過濾掉系統所不允許通過之封包。︒. 立. 政 治 大. ‧ 國. 學. Nat. y. ‧. 圖2.3 雙閘型防⽕火牆[38]。︒. io. sit. 3. 屏障單機型防⽕火牆:如圖2.4所⽰示,此架構結合了封包過濾器和代理伺服器,除了. n. al. er. 防⽕火牆主機外,需要⼀一台額外的路由器才可運作。︒當網際網路中的封包傳入此防⽕火. Ch. i n U. v. 牆時,會先由路由器進⾏行封包過濾,比對是否符合過濾規則表的條件,過濾後的封. engchi. 包再送給防⽕火牆主機,進⾏行網路服務層的檢查以及轉發。︒ . 8.

(22) 政 治 大. 圖2.4 屏障單機型防⽕火牆[38]. 立 ‧ 國. 學. 4. 屏障雙閘型防⽕火牆:與屏障單機型防⽕火牆的架構相似,差別在於將防⽕火牆主機更換 為雙閘型防⽕火牆主機,透過應⽤用服務轉送器(application service forwarder)檢查所有. ‧. 網路封包,以過濾掉系統不允許通過之封包。︒. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖2.5 屏障雙閘型防⽕火牆[38]。︒. 5. 屏障⼦子網域型防⽕火牆:此防⽕火牆由多個主機與兩個路由器組成,網域則分為屏障⼦子 網域與企業網路兩個區塊。︒封包經由第⼀一個路由器->屏障⼦子網域->第⼆二路由器->企 業網路。︒具有階段式的過濾功能,因此兩個路由器可以運⾏行不同過濾規則,提供更 嚴密的網路防護。︒. 9.

(23) 立. 政 治 大. ‧. ‧ 國. 學. 圖2.6 屏障⼦子網域型防⽕火牆[38]。︒. 2.3 入侵偵測系統簡介. sit. y. Nat. er. io. 入侵偵測系統起源於1980年代,⼀一開始由美國政府和軍⽅方單位開發,⽬目的是為了監控. al. n. 網路上不安全的⾏行為。︒是⼀一種監測封包進出、︑比對入侵型態,並能適時提出警告的偵. i n C hengchi U 測系統。︒依照其設計⽅方式及偵測⽅方式分類如下:. v. 2.3.1 入侵偵測系統設計⽅方式分類 入侵偵測統依其設計⽅方式分類,可分為以下三種:. 1. 網路式入侵偵測系統(Network Intrusion Detection System,NIDS):透過監控網路中 的封包,並加以分析,再與系統中內建的規則檔進⾏行模式比對。︒由於網路上封包眾 多,需要逐⼀一比對,因此系統主機需具備強⼤大的運算功能,⽬目前市⾯面上商⽤用之入侵 偵測系統,幾乎皆為硬體架構。︒此種系統的優點在於容易部署,每台主機依據運算. 10.

(24) 能⼒力可以監控⼀一定範圍內的網路,因此在⼤大範圍之網路環境中,僅需部署數台主機 即可,能有效降低成本。︒ 2. 主機式入侵偵測系統(Host Intrusion Detection System,HIDS):⽤用以監控單⼀一主機系 統,透過監控主機上的使⽤用者活動、︑系統活動、︑資料鑑識、︑存取控制等,判斷出攻 擊⾏行為。︒此系統由於成本考量,通常部署於特別重要的主機系統,提供更詳盡的管 理,監控該主機的系統紀錄,監控內容比網路式入侵偵測系統更加詳細,提供更佳 的效率以及安全性。︒. 立. 政 治 大. 3. 分散式入侵偵測系統(Distributed Intrusion Detection System,DIDS):運作⽅方式與網. ‧ 國. 學. 路式入侵偵測系統類似,唯⼀一差別在於網路中所監聽到的封包,並非由各⾃自主機處 理,⽽而是統⼀一交由後端主機統⼀一管理分析,以達集中控管的⽬目的,適合於⼤大型網路. ‧. 環境。︒. sit. y. Nat. er. io. 2.3.2 入侵偵測系統偵測⽅方式分類. n. al. i n C hengchi U 入侵偵測統依其偵測⽅方式,可分為三種,說明如下:. v. 1. 特徵型入侵偵測(Signature-based Intrusion Detection System):特徵值是指由⽬目前已 知之攻擊⾏行為中,經過分析後,所建⽴立出代表該攻擊⾏行為的特定值,其⼯工作原理是 利⽤用特徵值與收到的封包進⾏行比對,找出攻擊⾏行為。︒優點是能偵測已知的攻擊⾏行為, 達到較⾼高的偵測效率,以及較低的誤判警⽰示︔;缺點是無法偵測未知的攻擊,以及需 要時常更新特徵資料。︒. 2. 異常型入侵偵測(Anomaly-based Intrusion Detection System):利⽤用更⾼高階的演算法 以及資料分析技術,例如資料探勘、︑資料統計、︑類神經網路等,對所監控的環境訂. 11.

(25) 出⼀一個正常⾏行為標準,以及所可容忍的偏差值,若發現⾏行為超出此容忍標準,則判 斷為異常⾏行為,並採取相關回應動作。︒優點是可以偵測到未知的攻擊⼿手法︔;缺點是 效率較差以及誤判率較⾼高。︒. 3. 混合型入侵偵測 (Hybrid Intrusion Detection System):整合多種不同的入侵偵測技術 ,使其功能更為完善、︑入侵偵測⽅方式也更強⼤大,能讓不同技術互動及互補,使其缺 點降到最低,並將入侵偵測的能⼒力發揮到最⼤大。︒混合型入侵偵測系統為整合特徵型 及異常型⽽而成。︒. 立. 2.3.3 Snort 入侵偵測系統. 政 治 大. ‧ 國. 學. Snort[29]是⼀一套開放原始碼的網路型入侵偵測系統,由Marty Roesch在1998年開發,使. ‧. ⽤用特徵型入侵偵測和通訊協定的偵測⽅方法。︒⼀一開始定位成輕量級的入侵偵測系統,但. er. io. ⽤用。︒在運作上,Snort提供了三種運作模式,說明如下:. al. iv n C 偵測模式(Sniffer mode):監聽並截取網路上傳送的封包,並且將所監聽的結果顯現 hengchi U n. 1.. sit. y. Nat. 經過多年發展,已經成為⼀一套成熟且功能強⼤大的軟體,在入侵偵測的領域中被廣泛使. 在螢幕上。︒. 2. 封包記錄器模式(Packet logger mode):將所截取的封包資訊存入儲存媒體內,例如 硬碟上的檔案系統,或資料庫系統。︒. 3. 網路入侵偵測系統模式(NIDSmode):最主要的功能是可對所截取的封包進⾏行分析、︑ 內容搜尋,藉由特徵比對找出各種不同的網路攻擊,達到入侵偵測效果。︒. 12.

(26) Snort的運作過程是在網路中抓取封包,並將抓取到的封包送到解碼器進⾏行解 碼。︒網路中的封包可能有各種不同格式,例如⼄乙太網路封包、︑TCP/IP封包、︑IEEE802.11 封包等。︒在解碼過程,解碼器將各種不同格式統⼀一轉換成Snort所使⽤用之格式,轉換完 成後將封包傳送到預處理器進⾏行處理。︒預處理能將封包重新組裝,處理⼀一些明顯的錯 誤︔;預處理完後,進入偵測引擎︔;偵測引擎為Snort的核⼼心,從官⽅方網站下載所釋出的 特徵資料庫,搭配適當的設定, 可有效偵測網路攻擊,當系統將所擷取到的封包與特 徵規則比對符合者,將產⽣生攻擊警訊送至稽核⽇日誌。︒最後就是輸出模組,經過檢測後 的封包可使⽤用各種形式輸出,例如syslog、︑alert檔案、︑資料庫、︑UNIXDomainSocket等。︒. 立. 政 治 大. 2.4 Openflow相關概念. ‧ 國. 學. OpenFlow[23]是由史丹佛⼤大學的Nick McKeown教授於2008年四⽉月在ACM Communicati . ‧. ons Review所發表的⼀一篇論⽂文 “OpenFlow: Enabling innovation in campus networks”[19],. Nat. sit. y. 並且⾸首次詳細介紹OpenFlow的概念。︒OpenFlow起初是為校園內網路研究⼈人員提出的創. n. al. er. io. 新網路架構及協議,希望能在實際的網路上運作並進⾏行實驗,以得到更好的驗證效果. i n U. v. 或改善現⾏行的網路效能。︒但是傳統的設備都是由開發商制定規格,不論是網管⼈人員或. Ch. engchi. 研究⼈人員都無法修改其內容或加入新的元素。︒因此提出了控制平⾯面和資料平⾯面分離的 架構,將控制邏輯從網路設備中分離,研究者可以根據個⼈人需求撰寫程式,藉以實現 新的網路協定或架構,⽽而無需更改網路設備。︒. OpenFlow可視為SDN架構的⼀一種具體實現,其架構如圖2.7所⽰示,主要由OpenFlow 交換機(OpenFlow Switch)、︑OpenFlow控制器(OpenFlow Controller)以及OpenFlow協定 (OpenFlow Protocol)三個元件所組成。︒OpenFlow交換機使⽤用以SSL(Secure Sockets Layer) 為基礎的OpenFlow通訊協定與控制器互相通訊,負責傳遞控制器和交換機之間的管理 和控制資訊。︒OpenFlow路由表(Flow Table)則是OpenFlow交換機的關鍵,負責資料封包. 13.

(27) 的⾼高速查詢比對與轉發。︒. 政 治 大. 立圖2.7 OpenFlow網路架構[20]。︒ ‧ 國. 學. 2.4.1 OpenFlow交換機. ‧ sit. y. Nat. OpenFlow交換機為網路環境中實際處理封包的部分,與傳統交換機相比,最⼤大的差異. al. er. io. 在於控制平⾯面的抽離。︒每台交換機內都有OpenFlow路由表,相當於傳統交換機的邏輯. n. 處理部分,負責封包的比對與轉發。︒交換機和控制器使⽤用OpenFlow通訊協定對路由表 進⾏行查詢與管理。︒. Ch. engchi. i n U. v. 2.4.2 OpenFlow路由表. OpenFlow路由表是由路由表項(OpenFlow Entry)所構成,是交換機進⾏行資料轉發控制的 規則依據,交換機透過查詢路由表項,決定對收到的封包採取適當的動作。︒每個路由 表項包括比對區域(Match Field)、︑優先序(Priority)、︑計數器(Counters)、︑指令(Instructions )、︑逾時時間(Timeouts)以及暫存資料(Cookie)五個欄位,如圖2.8所⽰示。︒. 14.

(28) 圖2.8 OpenFlow路由表項結構[20]。︒. Match fields:⽤用來對封包進⾏行比對,例如封包進入的實體連接埠、︑來源的IP address等 Priority:路由表項的優先序,值越⼤大則代表優先序越⾼高。︒ Counters:當封包符合Match filed時更新此欄位。︒ Instructions:當封包符合Match fields時所需採取的動作。︒. 政 治 大. Timeouts:路由表項存活的時間。︒. 立. Cookie:Controller所使⽤用的選擇性欄位,可由開發⼈人員⾃自⾏行定義,幫助控制器處理封. ‧ 國. 學. 包,與Match fields不同,並未直接使⽤用在封包的比對上。︒. ‧. 2.4.3 OpenFlow Matching. sit. y. Nat. io. er. Matching為OpenFlow架構中處理封包的⼀一個重要概念,每個路由表項都會包含⼀一個特 定值,或使⽤用特殊字串“ANY”代表任意值。︒所有封包均會與此值進⾏行比對來決定如何. n. al. 處理該封包。︒. Ch. engchi. i n U. v. OpenFlow Switch內可包含多個OpenFlow路由表,當收到封包時,處理封包流程如 圖2.9所⽰示,會和交換機內所有OpenFlow路由表比對。︒⼀一旦比對成功,即封包內的資訊 符合路由表項標頭區內所定義的條件,則根據路由表項內的設定,進⾏行計數器欄位的 更新,接著根據路由表項所設定之規則處理資料,例如執⾏行設定好的動作,或是跳至 某個路由表繼續查找。︒若無法找到符合的路由表項記錄,則會依據路由表中是否有設 定例外處理,設定當路由表內無符合紀錄(table-miss flow entry)時該如何運作,若無則 將此封包丟棄。︒. 15.

(29) 立. 政 治 大. ‧ 國. 學. 圖2.9 OpenFlow封包比對流程[20]。︒. ‧. y. Nat. Table miss flow entry exists :當比對不到任何相符的路由表時,即為table-miss。︒並依據. n. al. er. io. 包丟棄。︒. sit. table-miss的專屬路由表項(table-miss flow entry)採取相關⾏行動,若無設置此表項則將封. Ch. engchi. i n U. v. 2.4.4 OpenFlow Counters. OpenFlow交換機中的計數器可對交換機中每個實體傳送埠、︑每個轉發佇列、︑每張路由 表、︑每條資料流進⾏行相關資訊的統計。︒例如以實體傳送埠⽽而⾔言,可統計接收及發送的 封包數,接收及發送的位元組數︔;以路由表⽽而⾔言,可統計⽬目前的路由表項的數⽬目,路 由表項的比對次數︔;以資料流⽽而⾔言,可統計接收到的資料封包數及位元組數,資料流 的存活時間等。︒ . 16.

(30) 2.4.5 OpenFlow Instruction 指令(Instruction)說明封包符合路由表項後應執⾏行的動作。︒傳統交換機只是將封包轉發 至某個通訊埠或捨棄處理,但在OpenFlow交換機中可進⾏行多個動作,同時也能⾃自訂各 個路由表項的優先順序。︒指令中主要的動作如下:. • Output:將封包轉發至指定的port(設備上的實體port或是虛擬的邏輯port)。︒ • Set-Queue:設置封包的queue ID。︒當封包轉發出去時,queue ID⽤用來決定封包的優先. 政 治 大. 序,可⽤用於QoS服務。︒. 立. • Drop:將收到的封包丟棄,不做任何處理。︒. ‧ 國. 學. • Push-Tag/Pop-Tag:增加或移除封包上的Tag,可⽤用於設定VLAN,MPLS等。︒. ‧. 2.4.6 安全通道. y. Nat. er. io. sit. 安全通道是每個OpenFlow交換機連接到控制器的介⾯面。︒通過此介⾯面,控制器可以設定 和管理交換機,也可從交換機接收回報的事件,並送出指令給交換機。︒資料平⾯面和安. n. al. Ch. i n U. v. 全通道各⾃自實現特定的介⾯面,以達到資料平⾯面和控制平⾯面分離的⽬目的。︒但是所有傳送. engchi. 的訊息都必須依照OpenFlow的protocol進⾏行格式化。︒安全通道通常使⽤用TLS (Transport Layer Security)進⾏行加密,但也可以不經過加密⽽而直接使⽤用TCP (Transmission Control Protocol)通訊協定。︒. 2.5 POX SDN網路控制器. POX[24]是⼀一個SDN網路環境中的控制器,前身是NOX控制器,後來基於開發便利性 與效能的考量,改為使⽤用Python語⾔言,打造出POX控制器。︒除了做為OpenFlow交換機 的控制器,POX也進⾏行許多⼯工作,幫助軟體定義網路的發展,例如網路虛擬化、︑SDN. 17.

(31) debugging、︑控制器的設計控制和程式的模組化,最終⽬目標是開發⼀一個經典的、︑現代化 的控制器。︒ POX有下列幾項特點: • Python化的OpenFlow介⾯面。︒ • 可重複利⽤用的模組元件,例如路徑選擇、︑拓樸發現等。︒ • 可在任何作業系統下運⾏行,⽬目前主要開發⽬目標為Linux,Mac OS和Windows等作業系 統。︒. 政 治 大. • ⽀支援和NOX相同的圖形界⾯面和視覺化⼯工具。︒. 立. • 與NOX相比,擁有更好的效能(如圖2.10所⽰示)。︒. ‧ 國. 學. • 配合PyPy[39]直譯器取代內建的CPython可達到更好的效能。︒. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖2.10 POX效能比較圖[24]。︒. 18.

(32) 2.6 Mininet 網路模擬器 Mininet[17]是⼀一個網路模擬器。︒可以模擬主機,交換機,路由器等各種網路設備。︒使 ⽤用輕量級虛擬化技術,使整個系統看起來像⼀一個完整的網絡。︒⼀一個Mininet主機的⾏行為 就像⼀一個真正的機器︔;你可以遠端連線到該主機,並執⾏行任意程序(包括安裝在底層 Linux系統上的任何程序)。︒Mininet具有下列優點和缺點:. 優點:. 政 治 大. • 執⾏行快速:啟動⼀一個簡單的網路只需要幾秒鐘,表⽰示可以快速運⾏行、︑編輯及測試. 立. • ⾃自定網路拓撲:可依個⼈人需要建⽴立網路拓墣。︒例如⼀一台交換機,網際網路般的拓. ‧ 國. 學. 撲結構,校園的骨幹網路,數據中⼼心,或任何所需的網路拓墣。︒ • 可執⾏行實際程式:例如Linux提供的程式(Ping,Netcat,Iperf...),或是Wireshark之. ‧. 類的程式。︒. Nat. sit. n. al. er. io. 境。︒. y. • ⽀支援OpenFlow:Mininet交換機使⽤用OpenFlow協定,可以很容易⽀支援SDN網路環. i n U. v. • 容易部署:可在任何機器上部署,例如筆記型電腦上,或是Server上,甚至在雲 端伺服器上。︒. Ch. engchi. 缺點: • 資源與實體主機共享:虛擬主機、︑虛擬交換機、︑實體主機之間資源共享。︒ • 只能運⾏行在Linux主機:Mininet使⽤用Linux核⼼心來虛擬化主機,這代表無法運⾏行在 其他作業系統上,例如:BSD,Windows或其他作業系統。︒(但可將Mininet安裝在 虛擬之Linux主機上). 19.

(33) 2.7 相關研究 ⽬目前國內外關於SDN與防⽕火牆的相關研究,⼤大多屬於利⽤用SDN交換機(switch)達到封包 過濾的效果,並同時監控內部網路的流量,以取代⽬目前軟/硬體式防⽕火牆。︒但設定防⽕火 牆規則時,需如何處理各種流量,仍需網管⼈人員決策與設定。︒⽽而關於SDN與負載平衡 的相關研究,則偏向如何在資料中⼼心(data center)的網路架構下,利⽤用交換機定期收集 網路相關資訊,藉以推測趨近即時的網路狀況,配合SDN動態改變路徑,以達到網路 使⽤用率之最佳化。︒我們擬研究利⽤用SDN網路架構,記錄⽬目前未規範的網路⾏行為(新產⽣生. 治 政 大 的服務),並透過分析相關資訊(如IP address、︑port等),⾃自動產⽣生防⽕火牆規則。︒並進⼀一步 立 將防⽕火牆結合負載平衡功能,透過資訊收集以及動態設定路由,有效提升廣域網路之 ‧. ‧ 國. 學. 頻寬使⽤用率。︒. 2.7.1 防⽕火牆相關研究. sit. y. Nat. al. er. io. 簡旭彤[34]主要介紹在SDN架構下,如何實作出防⽕火牆,其關鍵在於OpenFlow switch處. v. n. 理封包的流程。︒OpenFlow switch內有資料流表(flow table),記錄預先設置的規則及處. Ch. engchi. i n U. 理⽅方法(action)。︒當封包進入交換器時,會先比對資料流表,若有符合的規則,則執⾏行 其預先設定的動作,若沒有配對成功,則經由SSL(Secure Sockets Layer)送往控制器 (controller) ,由控制器決定該封包該如何處理。︒ 資料流表中資料流表項(flow entry)主要由match fields、︑counters及instructions三個 元素構成。︒Match fields提供多種參數設置規則,例如來源/⽬目的IP位置、︑來源/⽬目的port number以及通訊協定的基本參數。︒依各個不同廠商實作交換機的不同程度,會影響到 提供參數的多寡,進⽽而影響防⽕火牆功能。︒Counters是記錄該封包的狀態,包括收到的流 量等。︒Instructions則是設置封包動作的欄位,分為基本動作與選擇性實作的動作。︒基本. 20.

(34) 動作有DROP及FORWARD兩種,DROP為預設動作,⽽而FORWARD可設置為轉發到cont roller、︑⼀一個或多個switch、︑port、︑資料流表等。︒SDN防⽕火牆可使⽤用上述⽅方法搭配不同規 則,實做出不同功能的防⽕火牆。︒ ︎ Hu[6]研究指出在SDN的網路環境下,由於網路狀態和流量迅速變化,防⽕火牆的設 定成為⼀一種挑戰,因此提出⼀一適⽤用於SDN網路環境下的防⽕火牆FLOWGUARD。︒Hu[6] 指出傳統防⽕火牆與SDN防⽕火牆最⼤大的差別在於傳統防⽕火牆僅能防禦外部流量且完全信 任內部流量︔;⽽而SDN防⽕火牆不僅能防禦外部流量,亦可防禦內部流量。︒該作者提出不. 政 治 大. 同⽅方法針對dynamic packet modification及rule dependency做檢查及預防,以加強防⽕火牆. 立. 安全。︒Dynamic packet modification是因為在SDN網路環境下,能對封包進⾏行修改,作. ‧ 國. 學. 者利⽤用flow space analysis檢查dynamic packet modification,以避免利⽤用修改封包標頭來 躲避防⽕火牆規則。︒Rule denpendency是由於網路環境會快速變化,部分過時的防⽕火牆規. ‧. 則有可能阻擋其他正常的流量,故針對此部分進⾏行更新與修正。︒. sit. y. Nat. er. io. 2.7.2 負載平衡相關研究. al. n. iv n C Yu[13]指出在有多重路徑選擇的情況下,如何利⽤用OpenFlow為基礎的網路,進⾏行負載 hengchi U. 平衡,提⾼高網路使⽤用率。︒並以K=8的fat-tree topology模擬出80台交換機及128台host的資 料中⼼心網路,驗證該⽅方法的可⾏行性。︒Yu[13]指出在OpenFlow網路環境下實作負載平衡 的要點在於利⽤用OpenFlow交換機之counter,透過定期查詢實體傳送埠相關資訊,取得 傳送及接收位元數,並依據此資訊推斷出趨近即時的網路使⽤用狀況。︒得到網路實際使 ⽤用狀況後,在接收到每個請求時,即時依據⽬目前實際網路狀態,判斷出最佳路徑,以 達到負載平衡效果。︒在此架構下,查詢的時間區間,將成為影響效能的重⼤大因素,該 作者將其區間定義為五秒,但卻未對其原因加以說明。︒. 21.

(35) 第三章 第三章 實驗架構與實驗⽅方法 為達到⾃自動化SDN防⽕火牆的⽬目的,本實驗利⽤用Linux Ubuntu作業系統與KVM虛擬平台 實際架設實驗環境,使⽤用Open vSwitch、︑POX controller、︑Snort入侵偵測系統等共同構. 政 治 大. 成伺服器端。︒客⼾戶端同為Linux Ubuntu系統,並使⽤用Ping、︑Netcat、︑Iperf等網路⼯工具,. 立. 直接對服務主機送出封包進⾏行測試。︒實驗將分成規則學習、︑與入侵偵測系統的結合、︑. ‧ 國. ‧. 3.1 規則學習. 學. 隨需註冊機制、︑多路頻寬負載平衡器等四個部分進⾏行測試,將於以下詳細說明。︒. y. Nat. sit. 圖3.1為現⾏行防⽕火牆架構⽰示意圖,server farm中提供各式且多元的服務,各服務所需之. n. al. er. io. 防⽕火牆邏輯也並不相同。︒例如Web服務需要開放port 80、︑443,FTP服務需開放port21、︑. Ch. i n U. v. 22且不能互相套⽤用。︒若有新增服務時,也須同步調整,防⽕火牆邏輯如表3.1所⽰示。︒當防. engchi. ⽕火牆需應付各式各樣網路服務時,其設定的複雜繁瑣可⾒見⼀一斑。︒. 22.

(36) 政 治 大. 立 ‧ 國. 學 ‧. io. y Source. Destination IP. Port. n. al. sit. Source IP. C h*. 1. TCP. 140.192.37.2. 2. TCP. 140.192.37.1. *. 3. TCP. 140.192.37.*. 4. TCP. 5. Destination. er. Protocol. 表3.1 防⽕火牆邏輯⽰示意表。︒. Nat. Order. 圖3.1 現⾏行防⽕火牆架構⽰示意圖。︒. iv. n 161.120.33.* engchi U. Action. Port 1433. ACCEPT. 161.120.33.41. 22. DENY. *. 161.120.33.41. 22. ACCEPT. 140.192.37.4. *. 161.120.33.44. 1433. ACCEPT. TCP. 140.192.37.5. *. 161.120.33.44. 1433. ACCEPT. 6. TCP. 140.192.37.*. *. 161.120.33.44. 1433. DENY. 7. TCP. 140.192.38.3. *. 161.120.33.44. 22. DENY. 8. TCP. 140.192.38.8. *. 161.120.33.44. 22. DENY. 9. TCP. 140.192.38.*. *. 161.120.33.44. 22. ACCEPT. 10. TCP. 140.192.36.2. *. 161.120.34.45. 22. DENY. 23.

(37) 為解決上述所提之問題,本論⽂文提出規則學習之概念,使⽤用OpenFlow交換機代替 傳統交換機,透過分析封包,學習防⽕火牆規則,配合SDN控制器⾃自動⽣生成防⽕火牆邏 輯。︒在此架構下,能有效降低⼈人⼯工調整防⽕火牆之作業時間、︑降低⼈人為疏失,提供更好 的安全防護。︒ 規則學習分為主要觀測區間與次要觀測區間。︒主要觀測區間為規則學習的主軸, 當環境內有新的網路服務上線時,將觸發主要觀測區間。︒由於新上線的服務流量相對 乾淨且單純,因此在這段期間內,假設該服務之所有流量為正常⾏行為,並記錄流量之. 政 治 大. 特徵,加入資料流表,允許該流量通⾏行。︒主要觀測時間結束後,將觸發次要觀測區. 立. 間,持續觀察是否有需要學習之規則,對整體規則學習進⾏行補強。︒不同於主要區間放. ‧ 國. 學. ⾏行所有流量,次要區間學習的依據是將所觀察到的流量與相同類型服務進⾏行比對,若 該流量存在於其他相同類型服務所屬之資料流表中,則允許通⾏行,否則將其阻擋。︒待. ‧. 次要觀測時間結束後,阻擋不存在規則內的所有流量,並且加入其他參考因素(如⿊黑名. Nat. sit. y. 單、︑某些不被允許的通訊埠等預先設定規則),⽽而最終透過控制器向交換機下達命令,. n. al. er. io. 達到⾃自動產⽣生邏輯的⽬目的。︒. Ch. engchi. i n U. v. 在此實驗架構下,觀測時間佔了非常重要的因素,時間過長可能增加遭受攻擊⾏行 為的風險,時間過短又可能無法完整學習所需要的規則。︒⾸首先,我們將主要觀測區間 設定為24個⼩小時,這是由於24個⼩小時為完整的⼀一天,理論上該包含所有可能產⽣生的流 量,例如服務的主要流量、︑管理伺服器的流量、︑伺服器備份流量等。︒為減少遭受到攻 擊的可能性,我們根據所偵測到的攻擊數量將觀測時間遞減,開始以10分鐘為基礎, 每多遭受⼀一筆攻擊⾏行為則將時間倍增,直到主要觀測區間減少到零為⽌止,例如在觀測 區間剩餘23⼩小時的時候遭受第⼀一次攻擊,此時將觀測區間扣除10分鐘,剩餘22⼩小時50 分鐘︔;在觀測區間剩餘4⼩小時的時候遭受第⼆二次攻擊,此時將觀測區間扣除20分鐘,剩 餘3⼩小時40分鐘。︒其公式如下所⽰示,假設k為所遭受的攻擊次數,1440為24⼩小時轉換為. 24.

(38) 分鐘(24*60),Totaltime為最終所得到的觀測時間(單位為分鐘),並且此數值為⼀一非負整 數。︒. 次要觀測區間則是以主要觀測區間內資料流表收斂的時間為參考,收斂指的是學 習所有規則所花的時間,例如在24⼩小時內,最後8⼩小時都沒有學習到新規則,則收斂時 間為16⼩小時,若遭受攻擊⾏行為則比照主要觀測區間模式處理。︒. 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3.2 規則學習實驗架構圖。︒ 實驗架構如圖3.2所⽰示,主要分成四⼤大區塊:. • Server1、︑Server2:模擬server farm上的服務。︒ • Open vSwitch : 使⽤用Linux Ubuntu伺服器並安裝Open vSwitch,實作OpenFlow switch。︒. 25.

(39) • POX Controller : 使⽤用Linux Ubuntu伺服器並安裝POX controller,管理SDN網路環境。︒. 立. 政 治 大. ‧. ‧ 國. 學 er. io. sit. y. Nat. al. n. iv n C hengchi U • Client : 直接向服務端送出需求,產⽣生網路流量,藉此驗證防⽕火牆邏輯是否正確產⽣生。︒ 圖3.3 規則學習實驗流程圖。︒ 主要觀測區間實驗流程如圖3.3所⽰示,⾸首先我們假設server1、︑server2上新增了相關 服務,在此實驗中server1提供Web服務,server2提供FTP和SSH服務。︒當新服務上線時 無需做任何⼈人⼯工設定,交換機收到不屬於⽬目前路由表項的資料,會將此封包轉發給控 制器,⽽而在控制器上我們實作了第三層學習交換機(Level 3 learning switch)的功能,維 護⼀一個IP address、︑Mac address、︑以及交換機上實體埠號對照表。︒根據所收到封包的⽬目 的地位置來查找對照表中的實體埠號,以決定封包的轉送位置。︒若⽬目的位置不存在表 內,則利⽤用ARP進⾏行查找。︒決定封包傳送路徑後,控制器將向交換機新增⼀一條路由表. 26.

(40) 項,允許該類型流量通⾏行。︒我們利⽤用POX controller中的 _handle_PacketIn事件來處理所 收到的封包,當收到封包並確定傳送位置後,向交換機送出訊息,允許相同類型的封 包通⾏行,程式指令與說明如下:. # 訊息類別為open flow的修改訊息。︒. msg = of.ofp_flow_mod(. # 指令為新增資料流表項。︒. command=of.OFPFC_ADD,. idle_timeout=FLOW_IDLE_TIMEOUT, # 設定閒置的time out時間,在閒置時間. 治 內若無流量通過,移除該表項。︒ 政 hard_timeout=of.OFP_FLOW_PERMANENT,大 # 設定固定的time out時間,固定 立 時間到達後,移除該表項。︒ ‧ 國. 學. actions=of.ofp_action_output(port = prt), # 設定動作為output至指定的埠號。︒. ‧. match=of.ofp_match.from_packet(packet, inport)) # 設定封包的符合條件與收到 的封包完全相符。︒. y. Nat. # 向交換機送出訊息,寫入資料流表。︒. n. er. io. al. sit. event.connection.send(msg.pack()). Ch. engchi. i n U. v. 向交換機送出訊息後,會判斷此IP address是否為新增服務(第⼀一次新增規則)。︒若為 新增服務,則啟動觀測時間之計時器,在觀測時間內所收到不存在路由表項之封包均 會依照上述邏輯與程式處理,新增至交換機內。︒攻擊⾏行為的偵測與時間調整將於下個 章節討論。︒ 在次要觀測區間內,當控制器收到封包後,依據該封包的主要流量與其他相同類 型服務進⾏行查詢,查詢相同類型服務是否也有此資料流表項,若有該表項則允許新 增,若無則封鎖該類型封包。︒觀測時間到達後則向交換機新增丟棄封包規則,阻擋所. 27.

(41) 有未學習之規則(例如未出現過的通訊埠、︑未出現過的通訊協定等)通⾏行,達到防⽕火牆⾃自 動⽣生成的⽬目的。︒ . 立. 政 治 大. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. 28. i n U. v.

(42) 3.2 入侵偵測系統的⾃自動防護功能 在3.1節規則學習中,所⾯面臨最⼤大的挑戰是如何辨識有害的流量,系統在觀測時間內會 放⾏行所有封包,即有可能是有害封包。︒為解決這個問題,我們在本架構中導入IDS入侵 偵測系統(Intrusion Detection System),透過IDS監控網路上所有流量,並與本身所設定 的規則檔案(Rule file)進⾏行比對,辨別有害的流量。︒有問題的封包,將透過Unix Domain Socket送給IDS主機上的監聽程式,監聽程式再透過Json-RPC呼叫控制器,將問題封包 加入防⽕火牆規則,達到即時拒絕危險流量,避免危害網路⾏行為發⽣生。︒Unix Domain. 政 治 大. Socket是基於socket架構上,應⽤用在同⼀一台主機上的程序間通訊(IPC,Inter-Process. 立. Communication),不需使⽤用網路底層協議通信,使⽤用系統⽂文件位置做為身份識別,所. ‧ 國. 學. 以兩個程序可透過打開同⼀一個系統⽂文件進⾏行通信。︒. ‧. 實驗架構如圖3.4所⽰示,各主機說明如下:. sit. y. Nat. io. er. • Server1:內部主機。︒. • IDS server:入侵偵測伺服器,安裝兩張網路卡,其中之⼀一監聽網路上所有流量,進. n. al. Ch. i n U. v. ⾏行比對並找出有危害之封包,進⼀一步提交需求給控制器,阻擋該危險流量︔;另⼀一張 則做為正常網路通訊使⽤用。︒. engchi. • Open vSwitch : 使⽤用Linux Ubuntu伺服器並安裝Open vSwitch來實作OpenFlow switch。︒ • POX Controller : 使⽤用Linux Ubuntu伺服器並安裝POX controller,管理SDN網路環境。︒ • Client : 測試主機,向server1產⽣生測試封包,藉此驗證是否達到入侵偵測系統的⾃自動 功能。︒. 29.

(43) 立. 政 治 大. ‧ 國. 學. 圖3.4 入侵偵測系統的⾃自動防護功能實驗架構圖。︒. ‧. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3.5 入侵偵測系統的⾃自動防護功能實驗流程圖。︒ . 30.

(44) 實驗時我們採取下列步驟,實驗流程如圖3.5所⽰示:. 1. 建⽴立交換機中的路由表,以利後續測試。︒ 2. IDS server執⾏行入侵偵測服務,監控網路上所有流量。︒ 3. Client端利⽤用測試軟體IDSwakeup[10],向Server1送出測試封包進⾏行測試。︒ 4. IDS監聽Client所送出的封包,經比對後判斷為有危害的封包,將此封包資料轉換為 防⽕火牆規則並透過HTTP送出Json-RPC至控制器將規則套⽤用到交換機上。︒ 5. 由Client對Server1再次送出相同封包流量,驗證是否已經成功被阻擋。︒. 立. 政 治 大. IDSwakeup為專⾨門測試入侵偵測系統的軟體,由⼀一系列⼯工具所組成(Hping2,Libnet. ‧ 國. 學. 1.x),能夠產⽣生TCP 、︑UDP、︑ICMP等各種通訊協定,並且產⽣生封包模擬攻擊⾏行為,例 如DoS攻擊,Web Application攻擊等。︒本⽂文將使⽤用此軟體進⾏行測試,產⽣生共88筆攻擊⾏行. ‧. 為,詳細如表3.2所列。︒並且依據Snort偵測所判定之危害程度進⾏行處理,優先序為1的. y. sit. n. al. er. io. 其做封鎖。︒ . Nat. 封包將直接封鎖該封包來源位置,其他優先序的封包由於較無直接危害影響,故未對. Ch. engchi. 31. i n U. v.

(45) 表3.2 IDS測試規則。︒ Attack type. Priority. Description. Number of attacks. Protocol. Attempted Denial of Service. 2. Attempted Denial of Service. 10. TCP/UDP. Attempted Information Leak. 2. Attempted Information Leak. 18. TCP/UDP. Access to a Potentially Vulnerable Web Application. 2. WEB-CGI phf access WEB-IIS ISAPI .ida access WEB-FRONTPAGE administrators.pwd access WEB-MISC handler access WEB-IIS newdsn.exe access WEB-IIS search97.vts access. 6. TCP. WEB-IIS cmd.exe access WEB-IIS iisadmin access WEB-IIS Alternate Data streams ASP file access attempt. 4. TCP. ICMP Destination Unreachable Port/Network/Host/Protocol Unreachable ICMP Echo Reply. 36. ICMP. 學. 2. io. n. al. FTP SITE EXEC attempt FTP CWD ~root attempt ICMP Source Quench ICMP redirect net/host loopback traffic. Ch. engchi. sit. y. ‧. Nat. Potentially Bad Traffic. 3. 8. TCP/ICMP. er. Misc activity. 立. 1. ‧ 國. Web Application Attack. 政 治 大. i n U. v. A Suspicious String was Detected. 3. FTP format string attempt. 1. TCP. Attempted Administrator Privilege Gain. 1. TELNET resolv_host_con SMTP rcpt to command attempt. 2. TCP/ TELNET/ SMTP. Detection of a Denial of Service Attack. 2. FTP CWD ~ attempt. 1. TCP. Misc Attack. 2. FTP PORT bounce attempt. 2. TCP. 32.

(46) 由於IDS與控制器為不同系統,無法直接溝通。︒我們在進⾏行整合時,控制器必須提 供開放的程式介⾯面(Application Programming Interface, API)供其他服務使⽤用。︒⽽而POX控 制器已經實作Json格式的遠端程序呼叫(Remote Procedure Call, RPC)並且可透過HTTP通 訊協定呼叫(Json-RPC via HTTP),我們在此基礎下,實作防⽕火牆邏輯的新增程序,達 到動態調整防⽕火牆規則的⽬目的。︒本論⽂文中所使⽤用之Json-RPC所提交的參數主要有⼆二 個,如下範例: 1. Method:呼叫遠端程序之名稱,格式為字串,此範例為呼叫遠端之add_flow程序。︒. 治 政 大 定。︒在此範例中包含dpid字串,為交換機ID,及flows陣列。︒flows陣列中包含actios 立 陣列,內容存放新增路由表項之動作actions陣列,以及資料流表項比對規則match. 2. Params:所需傳入之參數,格式為Object,內容格式為⾃自訂,依各⼈人實作需求訂. y. Nat. {. ‧. ‧ 國. 學. 物件。︒. n. al. er. io. "params":{"dpid":"00-1c-42-6b-67-ec",. sit. “method”:"add_flow",. i n U. v. "flows":[{ "actions":[{"type":"OFPAT_OUTPUT","port":"OFPP_ALL"}],. Ch. engchi. "match":{"tcp","nw_src":"10.211.55.4","nw_dst":"10.211.55.7","tp_dst":80} }] } }. 3.3 隨需註冊機制 考量到企業實際應⽤用上常有某些服務需要⼈人⼯工開啟防⽕火牆,允許特定資料通⾏行,例如 與客⼾戶端進⾏行電⼦子資料交換,需⼿手動設定可通⾏行之流量到特定伺服器,又例如訪客須 使⽤用公司網路等。︒因此,我們基於隨需(on demand)的概念,當有服務需要通過防⽕火牆. 33.

(47) 時,使⽤用者可向網路中的特定伺服器註冊相關服務及需求(在本實驗中我們使⽤用控制 器),此時控制器將動態調整防⽕火牆規則,允許該特定資料流通⾏行,並且持續觀察,當 使⽤用完畢後則封鎖該流量,不再允許通⾏行,以確保網路安全。︒. 政 治 大. 立. ‧. ‧ 國. 學. n. er. io. sit. y. Nat. al. Ch. engchi. i n U. v. 圖3.6 隨需註冊機制實驗架構圖。︒. 本實驗架構如圖3.6所⽰示,各主機任務說明如下:. • Server1:內部系統主機。︒ • Open vSwitch : 使⽤用Linux Ubuntu伺服器並安裝Open vSwitch來實作OpenFlow switch。︒ • POX Controller : 使⽤用Linux Ubuntu伺服器並安裝POX controller,管理SDN網路環境, 並同時擔任隨需伺服器角⾊色。︒. 34.

參考文獻

相關文件

(2)選修 C.學習領導模組者,請以「有效學習策略」為主題,規劃 1 份教學 活化與課程創新之教學方案(請以整個單元撰寫為原則)

科技融入教學社群 PLC 老師持續研討科技融入教學的課程,而在今年 學校基於此良好基礎,爭取參與教育部「行動學習專案」與信望愛基金會 所提供之「Flyer

紅外線發光二極體的發射強度因發射方向而異

Krajcik, Czerniak, & Berger (1999) 大力倡導以「專題」為基礎,教導學生學習科 學探究的方法,這種稱之為專題導向的科學學習(Project-Based Science,

Zhang, “Novel Microstrip Triangular Resonator Bandpass Filter with Transmission Zeros and Wide Bands Using Fractal-Shaped Defection,” Progress In Electromagnetics Research, PIER

設定只阻擋 port 8080 不能通過. 不過

若為磚牆,則該層柱所負擔之牆壁重量為上一層樓之牆壁之重量如上圖

Eric, B., Georges-Louis B., Computer-Based Concept Mapping : a Review of a Cognitive Tool for Students, in Benzie David & Passey Don (eds.), Proceedings of Conference