1.引言
云計算是當前計算機領域最為熱門的問題之一,可以通過計算資源的虛擬化技術,打破數據中心服務器的物理限制,實現彈性的資源提供,以及按需的平臺和軟件服務。云計算的發展符合計算技術基礎架構化的大趨勢,是繼網格計算、服務計算之后興起的又一輪技術創新和產業化熱潮。
云計算的一個重要應用場景就是桌面云。遠程桌面的技術由來已久,而桌面云是近年來興起的將遠程桌面與云計算技術相結合的產物。IBM對其做出的定義為:“可以通過瘦客戶端或者其他任何與網絡相連的設備來訪問跨平臺的應用程序,以及整個客戶桌面”。通過云計算平臺來托管多個用戶或應用的虛擬機,不同平臺下的用戶主機或者應用服務器可以進一步共享云平臺的資源,同時支持用戶通過遠程桌面在線訪問。
隨著網絡的不斷發展,人們有條件采用圖形化的方式來訪問遠程的資源,因此瘦客戶端的模式,剛很早就引起了研究者的關注。在目前大量的遠程圖形化訪問協議中,微軟的RDP,開源的VNC,Citrix的ICA協議是目前應用比較廣泛的。RDP協議僅能用于windows系統之間的遠程連接,但1inux系統上有開源的rdesktop實現,可以作為RDP的客戶端。VNC協議則是開源的,在各種系統上均能夠使用,但由于傳送的數據量比較大,在網絡和終端處理能力有限的情況下表現不佳。
本文實現了一個桌面云的安全訪問和共享管理系統。相比于傳統的遠程桌面訪問軟件,本系統更加注重用戶之間的關系,采用虛擬組織的方式對所有的用戶及資源進行組織管理。同時通過VPN等技術與RDP遠程訪問相結合,確保訪問的安全性。虛擬組織,是通過虛擬的信息來組織人或其他資源之間的關系。在云計算中,離不開各個用戶之間的關系,也離不開人對資源的占有和共享。因此在云計算中采用虛擬組織的形式來組織用戶關系是一種有效的嘗試。
本文第2節開始介紹虛擬組織的認證與管理,第3章為基于虛擬組織的桌面云中虛擬機的管理和共享機制研究,第4章闡述虛擬機的安全訪問機制,第5章是系統的實現以及使用案例。
2.虛擬組織認證與管理
虛擬組織(Virual Organization),又稱虛擬社區(Virtual Community),可以定義為一群主要藉由計算機網絡彼此溝通的人們,他們彼此有某種程度的認識、分享某種程度的知識和信息、在很大程度上如同對待朋友般彼此關懷,從而所形成的團體。
虛擬組織擁有不同于現實社區的獨特屬性:
超時空性:虛擬組織不受物理上距離的限制,地球兩端的兩個人也可以通過虛擬組織進行交流。時間上也同樣不受限制,你所發表的一句話或是一個操作,可能會在幾天后被其他人看到并作出回應。
匿名性:在虛擬組織中每個人都只有一個符號。你可以隨意選取你的名字,由于不能看到對方的真面目,傳統的性別,年齡,相貌,都在虛擬組織里不再重要。
群體流動頻繁:在虛擬組織中,人際關系較為松散,群體流動頻繁,大家可能會被某個組織的人氣所吸引而加入一個組織。
2.1 成員身份認證
虛擬組織的管理基于用戶身份認證和數據庫的查詢與更新。對此我們采用了相對比較成熟的認證機制和數據庫管理軟件,以保證系統的安全性和可靠性。
身份認證基于數字證書PKI機制。PKI(PubliCKey Infrastructure)即“公鑰基礎設施”,“是一種遵循既定標準的密鑰管理平臺,它能夠為所有網絡應用提供加密和數字簽名等密碼服務及所必需的密鑰和證書管理體系,簡單來說,PKI就是利用公鑰理論和技術建立的提供安全服務的基礎設施。”
PKI允許用戶相互驗證各自使用的、由認證中心頒發的數字證書,從而確認對方身份并建立加密可信的連接。
2.2 組織管理
虛擬組織的管理主要通過虛擬組織的中心服務器實現。中心服務器在整個系統中起了核心的作用,負責了所有用戶和資源信息的存儲,以及用戶問,用戶與資源問的信息交互。它主要由兩部分程序組成:一是等待用戶傳送信息并處理,二是發送請求到服務提供商。在我們的虛擬機遠程訪問的應用中,服務提供商就是虛擬機的管理端。
接受用戶的信息端,服務器接受到客戶端發送的請求后,仍然是分為兩種情況,一種是虛擬組織操作命令,另一種是虛擬機相關操作命令。
對于虛擬組織操作命令,主要包括創建虛擬組織,刪除虛擬組織,申請加入,批準成員加入,從組織中刪除成員等。這部分命令和邏輯是基于虛擬組織的服務通用的。
3.虛擬機管理與共享機制
基于虛擬組織的成員認證和管理,可以實現桌面云中虛擬機的管理與共享。下面分別介紹桌面云應用中用戶的幾種主要請求情況。
3.1 新建虛擬機
在我們的系統中,同一個虛擬組織內部可以深度共享資源,因此虛擬機在虛擬組織內是可以共享的。而一個用戶可以加入多個虛擬組織,并使用這幾個虛擬組織中的虛擬機。因此用戶在要求新建虛擬機的時候必須指定將該虛擬機共享于哪一個虛擬組織內。在客戶端的設計中,用戶此時發送的信息包括:
事件:CreateVM(創建虛擬機)虛擬組織名稱:VoName設計虛擬機名稱:VmName。
創建虛擬機的流程包括:(1)檢查用戶身份;(2)檢查虛擬組織即確認權限;(3)查找可用的虛擬機提供端:(4)向虛擬機提供端提交請求;(5)向數據庫中添加記錄。
3.2開啟虛擬機
在客戶端的設計中,開啟虛擬機發送的信息包括:
事件:OpenVm虛擬機名稱:VmName
在創建虛擬機的時候,虛擬機名稱就已經確定了,而且是唯一的,因此用戶只需要指定虛擬機的名稱就可以了。
服務器在接收到指令之后,進行以下步驟。
(1)檢查用戶身份;(2)在數據庫中查詢用戶所在的虛擬組織;(3)找到用戶所請求的虛擬機,未授權的虛擬機則無法查詢到:(4)向虛擬機提供端提交請求;(5)將虛擬機訪問信息返回給用戶。
3.3 關閉(休眠)虛擬機
關閉虛擬機是比較簡單的一個步驟,基本與開啟虛擬機相同。只不過發送的指令是:
事件:CloseVm(SleepVm) 虛擬機名稱:VmName其后的操作與開啟虛擬機基本對應。
4.虛擬機安全遠程訪問
我們使用VirtualBox提供虛擬機支持,同時VirtualBox虛擬機本身支持開啟RDP遠程桌面的功能,我們正是利用這個特性進行虛擬機的遠程訪問。在服務端,開啟虛擬機時使用VBoxHeadless命令,就可以讓虛擬機在后臺打開,并且在宿主機中的某一個端口開啟基于TCP協議的RDPnE務。
在客戶端可以使用rdesktop。命令來遠程訪問該虛擬機。然而,VirtualBox中的RDP協議僅有不進行認證和進行簡單認證兩種方式來控制終端的連接,從安全訪問的角度來講這是遠遠不夠的。因此,我們使用了VPN來保證訪問的安全性和唯一性。
VPN(Virtual Private Network),即虛擬專用網絡。目前組建VPN虛擬專用網主要依靠四項技術來保證安全:隧道技術、加解密技術、密鑰管理技術和身份認證技術。在本工作中,我們用OpenVPN對證書的驗證功能。
整個系統分為客戶端和服務器端,效果如圖1所示。在圖1中,客戶端指的是遠程訪問使用的顯示終端,服務器端指的是虛擬機提供桌面云端。服務器在云計算中可以是提供虛擬資源的服務器集群,在虛擬組織內每位提供虛擬機共享的成員都可以作為服務器。由于VirtualBox的訪問模式是主機的域名(或IP)加上被訪問虛擬機占用的主機端口,虛擬機訪問權限的控制就可以簡化為對服務器端口訪問的控制。
圖1 防火墻和授權遠程訪問實現
防火墻開啟后,所有虛擬機所占用的端口都被保護,不能被訪問。如何開啟某端口的訪問權限,這需要OpenVPN的配合。
首先在服務器上安裝OpenVPN,使用OpenVPN進行身份驗證需要CA的公鑰和CA頒發給用戶的證書,在配置文件中設置公鑰證書的訪問路徑。OpenVPN配置完畢后開啟OpenVPN服務,客戶端就可以與服務器端建立安全連接。
需要注意的是,并不是所有的證書驗證通過就能獲得端口訪問權限,證書驗證通過只能說明對方與自己來自同一個組織,這里需要增加用戶訪問端口的權限。讀取證書后獲得證書CN(Common Name),使用CN=PORT的格式添加使用權限,如授權成員A1ice端口3399的訪問權限,就可以在/etc/openvpn/clients.rc添加A1ice=3399。
圖2 云服務器端流程圖
5.系統實現與使用案例
5.1 虛擬機管理與共享
客戶端目前采用命令行的方式與虛擬組織服務器交互。看一下多個用戶在虛擬組織的管理之下的一些特性。
如圖3所示,用戶alice首先使用setupVO創建一個虛擬組織,名稱為V01,并且為其添加了一個虛擬機alice_1。
圖3 用戶alice創建虛擬組織與虛擬機
用戶alice就可以成功訪問虛擬機alice_1并且打開遠程桌面進行使用。
我們保留alice建立的虛擬組織,然后使用另一個用戶bob登陸客戶端,首先他嘗試打開alice建立的虛擬機,系統將會返回錯誤信息,因為bob不屬于alice建立的那個虛擬組織,無法使用該虛擬機。系統錯誤信息指出用戶bob和alice創建的虛擬機alice-l不屬于同一個V0,因此訪問不成功。虛擬組織的管理起到了資源和用戶之間的全局權限管理的作用。
Bob此時申請加入V01,提交申請后使用alice登錄批準該申請(因為alice是V01的管理員),再次用bob登錄,此時bob已經是VOl組織中的正式成員,再次嘗試開啟虛擬機則可以成功,如圖4。
圖4 用戶bob加入V01后成功訪問虛擬機alice_1并且打開遠程桌面
上述實驗說明,在虛擬組織的管理下,用戶可以創建,開啟虛擬機,并選擇在什么情況下共享該虛擬機。實現了在用戶間資源的深度共享。
5.2 虛擬機安全訪問
由于VirtualBox中的身份認證十分簡單,而其官方文檔也建議將此認證僅僅作為試用的認證方式。因此我們設置在VirtualBox中對用戶身份不認證,而如何確保安全訪問由VPN來控制。
我們在服務器端開啟兩臺虛擬機,操作系統分別為Windows XP和Ubuntu,占用主機端口分別為3389和3391。然后開啟防火墻SHOpenVPN服務,等待客戶端的連接。
圖5 使用授權證書訪問虛擬機
客戶端使用CA服務器頒發的證書去連接虛擬組織服務器,如果服務器的端口訪問控制策略里授權該用戶使用某端口,則可以訪問該端口,即可以遠程控制該端口的虛擬機。
本例中服務器為證書grrrcert.pem授權了端口3389和93391,所以可以使用rdesktop連接10.8.0.1的3389端口。客戶端與服務器主機之間建立的安全通道,服務器端被定義為10.8.0.1這一虛擬IP,使用服務器真實IP連接則被防火墻拒絕。
如圖6所示,服務器為alicecert.pem授予3389端口的使用權限,alicecert.pem可以正常訪問該端口的虛擬機,但是對于未授權的3391端口則會被服務器拒絕,盡管此時3391端口已經為用戶grrrcert.pem開放。
圖6 使用證書訪問未授權的虛擬機不成功
至此可以發現,使用防火墻和OpenVPN使虛擬機的共享安全和可靠,即控制了訪問權限,又保證了數據傳送的安全。
6.總結
本工作選取了遠程虛擬機訪問這一云計算中的關鍵問題來進行研究。虛擬組織是在虛擬環境下對用戶關系的一種模擬,可以很好的建立用戶之間數據,資源共享機制,并且具有良好的可擴展性。在虛擬組織的基礎上,我們實現了虛擬機的遠程申請、訪問、關閉、共享等功能,是針對虛擬組織應用的一個擴展,也是未來云計算虛擬化管理的重要方向。在虛擬機遠程訪問中,安全性是一個重要的問題,我們采用VPN這樣一種成熟的協議來確保訪問的安全,具有更好的可靠性和可移植性。
本工作未來具有廣闊的應用前景,比如云制造是未來面向服務的網絡化制造新模式,在云制造應用中,制造業的仿真和設計需要特殊的軟件和海量的計算資源做支持,云計算是理想的模式。未來工作將主要集中在與具體制造業應用的集成。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.vmgcyvh.cn/