史建燾, 李秀坤, 張兆心
(哈爾濱工業大學 計算機科學與技術學院, 哈爾濱 150001)
·專題研討——虛擬仿真實驗(45)·
基于CloudStack的網絡攻防虛擬實驗云平臺
史建燾, 李秀坤, 張兆心
(哈爾濱工業大學 計算機科學與技術學院, 哈爾濱 150001)

網絡安全實驗通常需要復雜的實驗環境,網絡攻防本身具有一定破壞性和不可逆性,為教學而在系統中設置安全漏洞會產生巨大風險,環境搭建和維護具有較高成本。因此,使用虛擬化和SDN手段搭建虛擬實驗教學平臺具有重要意義。基于CloudStack開源云架構和XEN虛擬化技術,以IAAS為服務模式所搭建的網絡攻防虛擬實驗云平臺,能夠解決當前網絡安全實驗教學環境存在的問題。通過對snort與Iptables聯動搭建防護墻實驗的介紹和分析,實驗表明,實驗云平臺在提升實驗教學質量,培養學生工程實踐能力和工程創新能力方面已經起到了效果,云平臺本身具有廣闊的發展和應用前景。
CloudStack; 云計算; 虛擬仿真; 網絡攻防實驗
目前,計算機網絡與信息安全專業的實驗課,主要還是以傳統的單機編程方式來模擬實現,致使一些需要復雜環境的實驗無法開展,如大規模組網實驗、網絡協議開發實驗、網絡安全攻防實驗等。由于網絡攻防技術本身具有破壞性,為教學而在系統中設置網絡安全漏洞會造成巨大風險,而在真實環境中進行網絡攻擊和病毒注入等實驗還會產生不可逆的災難性后果,因此需要借助虛擬仿真技術和手段開展該類實驗。除此之外,攻防實驗對實驗環境的要求也具有特殊性,如網絡攻防實戰實驗涉及網絡搭建、環境配置、攻擊目標定制、數據處理、防護及綜合滲透測試等過程,實驗環境的搭建和維護成本很高。因此,構建基于云計算技術的虛擬仿真實驗平臺具有重要意義[1-3],可較好地克服大規模網絡環境缺乏、實驗對現有網絡環境的破壞、多種實驗不能實施等問題。通過XEN虛擬化技術[4-5]提供底層虛擬機通過CloudStack[6-8]搭建系統架構提供基礎設施即服務(簡稱IaaS)模式的實驗教學平臺。基于云平臺設置Snort[10]與Iptables[11]聯動構建防火墻的典型實驗,根據云平臺提供的環境模板構建虛擬機和網絡環境,然后學生可用SSH 或遠程桌面連接到虛擬機上進行相關掃描攻擊,驗證防火墻效果。本文介紹的云平臺既滿足學生進行復雜和有破壞性網絡攻防實驗的需求,又簡化了實驗環境的搭建過程,具有重要的現實意義。
(1) IaaS。云計算具有3種典型的服務模式,分別是基礎設施即服務(IaaS)、軟件即服務[12](SaaS)和平臺即服務[13](PaaS)。其中,IaaS是其他兩種服務模型的基礎,通過對資源的最終抽象,為他們提供虛擬的硬件資源服務。該環境下用戶可以通過服務直接請求硬件設備資源,如同直接使用裸機和外存設備一樣,可以完成任何物理主機能夠完成的事。IaaS的資源是公用的,使用效率會很高,因此在Iaas中需要考慮的問題就是如何使多臺機器協同工作。目前市場上存在的開源云平臺,如CloudStack就是用來搭建云環境并提供IaaS云服務的。
(2) CloudStack。CloudStack是一個開源的云計算項目,可用來搭建公有云和私有云,具有高效和高伸縮性優勢。CloudStack由Apache基金會資助,符合Apache2.0協議,用JAVA開發,支持目前主流的虛擬化技術,包括Xen、KVM和VMvare。CloudStack可用來整合現有數據中心的大部分硬件資源,并將資源以池化的方式進行管理,包括海量的網絡、存儲和計算資源,并在此基礎之上來搭建云平臺,提供云服務。在部署上,CloudStack具有便捷的資源管理方式,對虛擬資源的管理更接近現實環境,通過從大到小的樹形結構進行劃分,而且對數據進行獨立存儲,包括主存儲(Primary Storage)和輔助存儲(Second Storage)兩種數據存儲模式。CloudStack作為一種很好的區域架構模式,在管理云平臺上具有結構清晰,管理方便的優勢。
(3) Xen。Xen是一個基于X86架構的開源虛擬化技術,由一個劍橋大學的研究項目逐漸發展成一個開源驅動項目,具有性能穩定、發展迅速、資源占用少的優勢。Xen通過半虛擬化技術來獲得高性能,其占用的計算和存儲資源只占系統總資源的2%到8%,與其他虛擬化產品相比具有明顯的優勢,可以通過一臺普通的4 GB內存、4 核CPU的主機,也可以構建20臺以上的虛擬機。
2.1 系統拓撲結構
網絡攻防虛擬實驗云平臺的拓撲結構如圖1所示,平臺實現基于CloudStack的高級網絡架構,配備有一個CloudStack管理節點并配置了MySQL數據庫、XenServer群集、群集中配置有若干可擴展的計算節點;另外還有2臺存儲服務器節點來提供NFS存儲,配置目錄供二級存儲和群集的主存儲使用。

圖1 網絡攻防實驗云平臺拓撲結構
XenServer群集中配置了計算節點,用來產生平臺所需的Xen虛擬機,平臺使用Xen自身的管理機制來維護計算節點的物理可用性。主存儲服務器用來保存虛擬機實例的卷,供虛擬機運行時使用,可被群集中所有節點訪問,并支持存儲分級功能。二級存儲用來保存模板和快照等,具有一次寫和多次讀特點的數據,存儲的數據量更大,需要配備較大存儲容量的設備。全部的計算節點和存儲節點僅通過內網訪問,與外網完全物理隔離。平臺管理服務器既是CloudStack管理節點,同時也要負責云平臺的主要業務處理,因此通過雙網卡接入了內部網絡和外部網絡。通過CloudStack管理節點,對主服務器及二級存儲進行綜合管理和配置使用,并為前端的業務邏輯層提供API調用接口。
網絡攻防虛擬實驗云平臺主體位于學校內部網絡,通過網絡中心核心路由器連接到ISP,外部對虛擬機節點的訪問需要通過管理服務器提供的端口映射機制,① 防止了外部攻擊,② 保證實驗平臺上的攻防流量不會對外部網絡造成影響。在業務層還實現了用戶權限管理,將平臺用戶分為學生、老師和管理員等不同權限級別,各個權限級別的用戶須進行認證后方可進行登錄及相關操作。管理員用戶僅能通過內部網絡登錄,用來管理平臺的參數設置,維護平臺及物理主機的運行;教師和學生用戶可以從外部網絡登錄平臺前端頁面,正常訪問攻防實驗用到的虛擬機;而對于非認證用戶或非正常的訪問,為保證平臺正常運行會進行訪問者來源記錄。對于虛擬機自身的安全性,平臺在保證不同用戶的實驗環境互相隔離的同時,還采用基于沙盒的設計,保證用戶數據在沙盒內運行,實驗結束即自動銷毀。
2.2 系統框架
網絡攻防虛擬實驗云平臺的系統架構如圖2所示,包括:基礎設施、后端服務和前端應用。

圖2 云平臺系統架構圖
平臺系統最下層的基礎設施由一組高性能服務器基于Xen虛擬化技術構建,管理員可以通過XenCenter工具,來管理和配置集群節點的物理設備和網絡連接。并且可以檢測所有虛擬機的運行狀態。
云虛擬實驗平臺的其它服務基于CloudStack提供的基礎架構和API進行二次開發實現,具體功能模塊包括:虛擬機管理模塊、賬戶管理模塊、存儲模塊和網絡管理模塊。虛擬機管理模塊作為云服務的核心,負責虛擬機整個生存周期的管理,包括生成、運行、遷移和銷毀。模塊可以根據當前CPU、內存、帶寬等因素進行綜合評定,選擇合適的宿主機分配虛擬機實例,避免物理節點的負載不均衡,保證了平臺的服務質量。系統賬戶的管理由賬戶管理模塊負責,通過權限設置和訪問控制策略,控制不同用戶對虛擬機資源、網絡資源和存儲資源的訪問,保證了平臺的安全性。存儲模塊采用基于兩級存儲模式分別管理虛擬機實例所需的靜態主機模板和運行時所需的鏡像文件,這種層次性的存儲能夠更好的維護存儲資源,確保平臺運行效率。網絡管理模塊采用Cloudstack的高級網絡模式,基于虛擬VLAN技術構建實驗網絡環境,使得虛擬機物理隔離。每個用戶創建的實驗環境可能包含多個虛擬機節點,會被分配一個統一的VLAN ID,構成了該用戶的私有虛擬網絡。為了給私有網絡提供遠程訪問等公有網絡服務,為每個虛擬網絡配置了基于系統虛擬機的虛擬路由器,作為不同網絡間的公共接口,提供了包括NAT、源NAT、DHCP、DNS、數據轉發和防火墻等功能。
CloudStack平臺本身為外部調用和二次開發提供了API調用,可以實現對云數據庫和服務功能的訪問、對虛擬機資源和存儲資源的操作等等。在系統后端,云平臺通過實現一個守護進程,調用CloudStack的API接口,為前端業務邏輯模塊提供服務。
2.3 系統功能模塊
實驗平臺通過圖3所示的前端頁面功能提供服務。

圖3 云平臺前端功能
與傳統的實驗室相比,云平臺對幾乎所有系統資源進行了虛擬化,包括操作系統、網絡資源等。可以對實驗內容、實驗環境以及網絡拓撲進行定制,并且提供了對復雜攻防實驗的支持。界面分別提供了教學實驗入口和攻防演練入口,配置虛擬實驗環境所需的模板包括主機模板,環境模板,實驗模板和課程模板。
主機模板包括不同的操作系統版本和實驗所需的基礎軟件,并針對攻防演練的需求定制了多種系統和軟件漏洞。模板可以由管理員通過配置的虛擬機實例的鏡像制作,也可通過外部導入。環境模板根據實驗要求設定主機數量和主機模板類型,并定制靜態或動態登錄密碼,配置網絡環境。實驗模板中設置了實驗指導書和需要的環境模板,實驗指導書包括實驗準備、實驗步驟、實驗預期結果等。課程模板根據實際課程教學需要,定制課程所需實驗,選擇實驗模板,設定實驗學時,制定考核標準等。
實驗平臺分別提供了應用平臺和管理平臺,應用平臺主要為教師用戶和學生用戶提供實驗規劃、實驗部署、實驗操作和實驗考核的入口,支持課程管理、實驗管理、個人賬號管理、遠程管理、遠程終端連接和定制實驗的功能。管理平臺主要是為了方便管理員維護基本的平臺環境和平臺資源,包括用戶管理、模板管理、虛擬機快照管理、實驗環境和系統管理等功能。
實驗的具體流程。管理員分配教師和學生賬號,并為不同賬號設置訪問權限;教師用戶用自己的賬號登錄系統后,可對自己的課程進行設置,選擇課程所需的實驗項目,上傳實驗指導書和實驗報告模板,配置主機模板和環境模板,選擇選課學生;實驗開始前點擊構建實驗環境按鍵,系統會根據目前選課人數創建相應的虛擬實驗環境。學生登錄后,根據對應的實驗項目獲得環境中所有可見虛擬機的IP/端口、登錄密碼(靜態或動態),通過Telnet、SSH或者遠程桌面的方式進入自己的實驗環境。
實驗過程中,教師可以隨時查看學生的實驗情況,進行實驗指導。平臺的實驗過程具有可視化優點。實驗數據也可多次回放,實驗環境可以隨時恢復。通過這樣統一集中管理方式,所有實驗資源能夠集中恢復和一鍵銷毀。對于一些不可逆的攻防實驗,學生也可在實驗過程中重置實驗環境,反復體驗某些實驗步驟。實驗平臺由于具有高度的擴展性,因此能夠支持復雜的大規模網絡實驗,保證多層次學生的實驗需求。
3.1 實驗準備
現以“信息安全概論”課中一個具體實驗為例,實驗是通過Snort與防火墻進行聯動來構建一個輕量級的入侵檢測系統。其中,Snort入侵檢測系統,可將網絡上的惡意行為和惡意代碼制成規則庫,與實際數據源進行匹配,從而判斷入侵行為。但Snort只能發現入侵,并不能阻斷攻擊,而Iptables規則是常用的阻斷網絡數據包的方式,因此本實驗通過Snort與Iptables的聯動,綜合二者優點,互補對方的缺點,達到檢測攻擊并切斷攻擊的目的。實驗利用一個簡單的腳本實時讀取告警日志,根據記錄的IP和端口,創建對應的Iptables規則,加入遠程或對應主機的防火墻規則中。
在傳統環境中由于大量用戶同時進行掃描等攻擊行為,會造成局域網的流量阻塞,影響網絡正常使用。因此,本實驗選擇在虛擬實驗云平臺下進行,實驗的環境模板配置如圖4所示。

圖4 實驗主機及網絡配置
實驗環境有3臺虛擬機構成,其中snort-host主機只可在環境內部登錄,不提供遠程登錄接口。另2臺主機可通過遠程桌面連接,host主機為實驗操作機,用來遠程登錄、安裝和配置snort主機,test主機則用來遠程探測。通過實驗平臺可以按實驗人數,載入對應數量的實驗環境,由于采用了CloudStack的高級網絡模式,不同實驗環境的主機之間被物理隔離,實驗結果不受外界影響。環境搭建成功,學生登錄后看到的實驗平臺的界面。
3.2 實驗步驟
(1) 通過host主機登錄snort-host,安裝并配置snort環境,包括snort依賴包、Snort規則庫、DAQ 、libdnet、guardian等。Guardian是一個開源的perl程序。通過讀取和分析Snort日志,自動執行自己的shell腳本來配置Iptables下的規則,將惡意IP地址加入Filter表中的INPUT鏈下,并將其數據包丟棄。
對Snort的配置文件snort.conf修改如下:
#實驗環境配置的子網段
ipvar HOME_NET 10.1.1.0/24
ipvar EXTERNAL_NET any
#配置snort規則
varRULE_PATH /etc/snort1/rules
varSO_RULE_PATH /etc/snort1/so_rules
varPREPROC_RULE_PATH /etc/snort1/preproc_rules
varWHITE_LIST_PATH /etc/snort1/rules
varBLACK_LIST_PATH /etc/snort1/rules
#檢測端口掃描,不去注釋也可以,去掉注釋用nmap掃描即可看到掃描日志
preprocessor sfportscan: proto { all } memcap { 10000000 }sense_level { low }include PREPROC_RULE_PATH/preprocessor.rules
include PREPROC_RULE_PATH/decoder.rules
include PREPROC_RULE_PATH/sensitive-data.rules
對guardian的配置文件guardian.conf進行如下修改:
Interface eth0
LogFile /var/log/snort/guardian.log
AlertFile /var/log/snort/alert //alert文件的位置
IgnoreFile /etc/snort/guardian.ignore //白名單
targetFile /etc/snort/guardian.target //黑名單
TimeLimit 120 //阻斷時間,以秒為單位
用如下命令啟動guardian:

(2) 聯動測試。登錄host主機,打開x-scan掃描軟件,將掃描參數中指定IP搜索范圍設置成snort主機的IP地址:10.1.1.12。全局設置選項卡中的掃描模塊選則“全選”,插件設置選項卡下的所有設置均全部選中。
點擊開始按鈕,開始掃描;登陸snort-host觀察日志文件/var/log/snort,發現產生多條類似如下形式的告警日志,表示檢測到外界掃描。

在snort主機上啟動guardian,并與iptables聯動,之后在日志文件中,可以發現block腳本已經被執行。

執行iptables-L,觀察是否有新規則被插入,如果有則證明實驗驗證成功。插入的Iptables規則格式如下:
Target port opt source destination
DROP all --192.168.101.103 anywhere
至此,單臺防火墻聯動已成功實現,有效驗證了通過虛擬仿真云實驗平臺進行網絡攻防實驗的可行性。
針對當前網絡安全實驗教學環境的問題,介紹了基于CloudStack架構的網絡攻防虛擬實驗云平臺,平臺既可滿足日常實驗教學的需要,也為網絡安全技術愛好者提供了攻防演練的場所。平臺具有的現實意義:① 大大節省了實驗設備空間;② 能夠快速搭建復雜網絡,支持具有破壞性和不可逆性的網絡攻防實驗;③ 可以同時構建大量相同實驗環境,實驗環境物理隔離;④ 有利于實驗內容的開放和共享;⑤ 大大減少了實驗教師和管理者的勞動強度。目前,實驗平臺的XenServer集群包括8臺雙路4核、128 GB內存的高性能服務器,可以同時建立300臺以上的虛擬機。已經通過平臺成功的開展了信息安全基礎、信息內容安全等信息安全專業本科實驗教學,取得了較好效果。今后可通過擴展底層的服務器,提升系統承載能力,將平臺向外推廣,讓其具有更廣闊的前景。
[1] 張朝昆,崔 勇,唐翯祎,等. 軟件定義網絡(SDN)研究進展[J]. 軟件學報,2015,26(1):62-81.
[2] 宋 平,劉 軼,劉 馳,等. 一種支持細粒度并行的SDN虛擬化編程框架[J]. 軟件學報,2014,25(10):2220-2234.
[3] 龍艷軍,歐陽建權,俞佳曦. 基于GNS3和VMware的虛擬網絡集成[J]. 實驗技術與管理,2013,30(2):90-93.
[4] 石 磊,鄒德清,金 海. Xen虛擬化技術[M].武漢:華中科技大學出版社,2009.
[5] 吳 迪,薛 政,潘 嶸.基于XEN云平臺的網絡安全實驗教學[J].實驗室研究與探索,2013,32(7):62-66.
[6] 吳常清,王慧敏,薛 濤. 基于CloudStack的私有云平臺的構建與實現[J]. 西安工程大學學報,2014,28(2):220-224.
[7] 彭 紅. 基于CloudStack云管理平臺的關鍵技術研究與應用[D].上海:華東理工大學,2013.
[8] 余志濤.基于CloudStack云平臺的研究與自動系統的實現[D].大連:大連理工大學,2014.
[9] 董健康,王洪波,李陽陽,等. IaaS環境下改進能源效率和網絡性能的虛擬機放置方法[J]. 通信學報,2014,35(1):72-81.
[10] 孫 偉. Snort輕量級入侵檢測系統全攻略[M].北京:北京郵電大學出版社,2009.
[11] Gregor N P.Linux iptables Pocket Reference[M].California:O’Reilly Media,2004.
[12] 李曉娜,李慶忠,孔蘭菊,等. 基于共享模式的SaaS多租戶數據劃分機制研究[J]. 通信學報,2012,33(S1):110-120.
[13] 徐 鵬,陳 思,蘇 森. 互聯網應用PaaS平臺體系結構[J]. 北京郵電大學學報,2012,35(1):120-124.
CloudStack Based Virtual Simulation Cloud Platform for Network Attack and Defense Experiment
SHIJiantao,LIXiukun,ZHANGZhaoxin
(School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China)
Network security experiments often require complex experimental environment. The network attack and defense technology is destructive and irreversible. Setting network security vulnerabilities for teaching will produce huge risk. The setup and maintenance costs for experimental environment are very expensive. Therefore, it is of great significance to use virtualization and SDN technology to build the simulation platform. The virtual experiment platform of network attack and defense is constructed based on CloudStack, open source cloud architecture, and XEN virtualization technology. The platform solves the problems in the network security experiment teaching and can provide IaaS cloud services. The introduction and analysis of a specific experiment show that the cloud experiment platform can effectively improve the quality of experiment teaching and cultivate students' engineering practice ability and innovation ability. The cloud platform itself has broad prospects for development and application.
CloudStack;cloud computing;virtualized simulation;network attack and defense experiment
2016-08-15
國家自然科學基金項目(61402137)
史建燾(1980-),男、黑龍江哈爾濱人、博士、工程師,主要從事計算機網絡,云計算,信息安全等方面的研究。
Tel.: 13009877883, 0451-86413844; E-mail:shijiantao@hit.edu.cn
TP 393.08
A
1006-7167(2017)05-0075-04