2011年6月26日 星期日

Linux KVM - 建立 Windows 遠端桌面系統

在公司內部建置虛擬系統平台,除了運用在大部分的應用服務平台之外,另外一個重點,就是為前端的使用者,提供一個可工作的作業平台,簡單來說,就是提供一個 可遠端連線作業的桌面系統,如 Windows 桌面或是 Linux 桌面 ,以強化前端使用者電腦的功能,例如,可以讓前端使用者,連線到虛擬電腦上來使用 ERP 系統,不需要額外再對前端電腦進行套件安裝或另外設定,而這樣的作法,可以完完全全的將個人電腦系統與公司資訊應用系統給區分開來,除了減少 IT人員的負擔外,最重要的,就是可以強化公司內部資源的安全性,這樣的概念, 就是所謂的〝桌面雲〞。

一般傳統公司的作法,大多是一位使用者就配置一台個人電腦,且不同時期採購的電腦,硬體規格與作業系統,也往往都會有所差異,加上使用者不好的使用習慣,Client 端的電腦就常常都會出狀況,令 MIS 或系統管理員在硬體或系統軟體維護上的困擾,而〝桌面雲〞的概念,就是要打破一般個人電腦軟硬體上的差異與維護上的困擾,利用虛擬系統平台與桌面雲,為不同的使用者提供合適的遠端作業環境,如一般行政人員與程式開發人員,其對於硬體與應用軟體的需求就有所差異,善用虛擬電腦,就可以為不同的使用者,預先打造合適的虛擬電腦與系統環境,讓使用者可以透過遠端桌面連線的方式,登入到虛擬電腦內來作業,這樣的方式有以下的優點:
  • 前端使用者的電腦,基本條件只要可以上網就可以,不需要太高檔的硬體設備,可以減少採購上的支出

  • 由虛擬系統平台控管的虛擬電腦,可以隨時產生新的虛擬電腦,來應對不同的應用服務與作業需求,也可以針對虛擬電腦進行備份、監控與維護,減輕系統管理員的負擔,並提高管理效能
除了特殊需求之外,大部分的使用者,所使用的個人電腦作業系統都是 Windows ,而一般要遠端連線到 Windows 作業系統之內,有兩種遠端桌面的連線方式,一種是 Windows 自定的遠端連線模式,RDP,而另一種遠端連線的選擇,則是 VNC 遠端桌面連線。


RDP 遠端桌面連線

RDP 遠端桌面連線,是微軟自定的遠端桌面連線模式,只能利用在連線到遠端 Windows 作業系統之內,不過,對遠端桌面連線對象是 Windows 作業系統來說,卻也是最簡單,也是效能較好的一種遠端桌面連線模式。

Linux KVM 要執行 RDP 遠端桌面連線,依照網路連線方式的不同,有兩種方式:


第一、Bridge 連線模式(外部網路)

基本上,只要符合以下條件,幾乎都可以連線到遠端的 Windows 系統之內:
  • 開啟虛擬電腦詳細資訊頁面,選擇〝NIC....〞的網路卡設定選項,在右方資訊頁面上,確認網路連線方式為〝Bridge:


  • 開啟遠端 Windows 作業系統內允許遠端桌面連線的選項


  • 遠端 Windows 電腦擁有可直接連線的 IP 位址(也就是指 Bridge ,且若外網要連線,則此 Windows 電腦也必須是外網可以直接辨識與連線的 IP ,如實體 IP,若在內網不同網段之上,除了要可以連線到此電腦之外,還需要開啟特定的連接埠)

  • 不同網對要連線時,必須開啟特定的連接埠(預設是 3389

設定完成,就可以利用微軟的遠端桌面程式:



或是 Ubuntu Desktop 的遠端桌面連線程式(應用程式網際網路終端伺服器客戶端):



輸入適當的資訊(虛擬電腦 IP、登入帳號與密碼),就可以遠端開啟虛擬電腦內的 Windows 桌面系統了。一般來說外部網路,只要虛擬電腦擁有實體 IP ,在 Windows 遠端桌面的連線上,幾乎是沒有任何問題的,而內部網路,則需要與網管人員溝通與協商,除了開放連接埠之外,也需要將網路安全性列入考量,以提供安全的連線環境。


第二、KVM 網路

就資訊安全的角度來說,若只是為了降低網路連線設定上的難度,而把公司應用資訊系統放到外部網路上,實在是非常危險的一件事,所以應該放置在公司內部網路,才能有效管控資訊安全。

不過,若在 Linux KVM 的虛擬電腦之內,架設公司的應用服務系統,要以 RDP 的方式,遠端連線到虛擬電腦之內作業,現階段來說,沒辦法在 virt-manager 之內,以直接設定的方式,開啟實體電腦與虛擬電腦之間連接埠(3389 port)的連線,而必須利用以下的方式,來達到 RDP 遠端桌面連線:
  • 啟動虛擬電腦,開啟遠端 Windows 作業系統內允許遠端桌面連線的選項,啟用完成,將虛擬電腦關機

  • 利用以下指令,啟動虛擬電腦,並連接實體電腦與虛擬電腦間 3389 port 的連接(port redirection):

    $ kvm -m 512 -hda winxp.img -redir tcp:3389::3389 &

    備註1VMware 的虛擬系統平台,已具備了 port redirection 的功能


VNC 遠端桌面連線

RDP 的遠端桌面連線方式,對 Windows 作業系統來說,是連線效能較佳的選擇,除此之外,另一種遠端連線桌面,則是 VNC 的遠端桌面連線,與 RDP 連線模式一樣,也是需要針對此連線服務開啟特定的連接埠(預設是由 5900 開始)。

不過,即使需要用到 VNC 遠端桌面連線,卻不需要在虛擬電腦之內,再額外安裝 VNC Server 端的軟體,原因是因為 libvirt 本身就為虛擬電腦提供了 VNC 的連線模式,且 virt-manager 就是利用 VNC 的連線方式,來管理與運作虛擬電腦,設定就在於虛擬電腦的詳細資訊頁面之內:



這也就表示,在 virt-manager 內開啟的虛擬電腦的視窗,其實就是 VNC 遠端桌面連線。

不過, virt-managet 內部的 VNC 連線模式,預設只能本機連線(127.0.0.1),所以其他外部的電腦,則無法利用 VNC 遠端桌面連線,來登入 Linix KVM 之內的任一台虛擬電腦,若需樣開放外部電腦可以連線,則必須修改 VNC 原本的設定值。

設定前,需要先將虛擬電腦關機,而關機後,再開啟詳細系統資訊頁面,將原本的〝顯示 VNC〞整個刪除:



刪除後,要來新增一組新的 VNC 連線,按下下方的「Add Hardware」後,會跳出新增硬體的設定頁面,並點選「Graphics」,而右方的設定頁面,將「Type」欄位的選項,選為 〝 VNC〞,並勾選「Address」的選項,將「Automatically allocated」的選項取消,在這邊為了就是要為虛擬電腦紙定一組連接埠(Port:



按下「完成(F)」,就完成了 VNC 的設定,這時在資訊頁面就可看到 VNC 遠端桌面連線已經可以接受任何 IP 的連線了:



找一台 Ubuntu Desktop 系統來測試,開啟遠端桌面檢視器(應用程式網際網路遠端桌面檢視器):



按下「連線」,就會開啟連線設定視窗,只要在「通訊協定(P)」選擇〝 VNC〞,並在「主機(H)」欄位內填入虛擬電腦的 IP 與連接埠之後,按下「連線(O)」,就可以連線到虛擬電腦的 Windows 作業系統之內了:

沒有留言:

張貼留言