使 用RDS(Remote Desktop Service,遠程桌面服務(wù))服務(wù),可以實現(xiàn)最基本的遠程控制操作,讓網(wǎng)管員可以輕松實現(xiàn)遠控操作。RDS可以為每個遠控用戶提供獨立的操作進。實際上,在Windows Server 2012中,RDS服務(wù)屬于微軟桌面虛擬化的基礎(chǔ)技術(shù),并由此實現(xiàn)了桌面虛擬化和應(yīng)用程序虛擬化,因此,RDS和RemoteAPP以及VDI是存在緊密聯(lián)系的。RDS服務(wù)可以在工作組或者域環(huán)境下運作,但是在兩種環(huán)境中,證書的配置是存在很大不同的。
為了更好地使用RDS服務(wù),這里先簡單介紹一下RDS服務(wù)的相關(guān)組件。在Windows Server 2012中,RDS服務(wù)是由RD Web訪問、RD網(wǎng)關(guān)、RD授權(quán)、RD連接代理、RD虛擬化主機、RD會話主機等組件構(gòu)成,其中的RD會話主機指的是承載應(yīng)用程序或者遠程桌面程序的服務(wù)器,RD連接代理可以記錄客戶端的連接信息,RD Web訪問組件可以提供一個訪問接口,RD網(wǎng)關(guān)其實是一個反向代理。
在多臺RD會話主機的場景中,當(dāng)客戶端訪問某臺RD會話主機上的程序時,如果出現(xiàn)中途異常斷開的情況,該用戶再次連接時,RD代理服務(wù)器會從自身的數(shù)據(jù)庫中查找該用戶上次的連接信息,將其自動導(dǎo)向之前連接的RD會話主機。這樣,可以保證該客戶端可以繼續(xù)操作RemoteAPP程序。在Windows Server 2012中已經(jīng)取消了直接讓客戶端連接到RD會話主機的模式,只允許用戶通過RD Web訪問這一接口,來訪問RemoteAPP程序或者VDI遠程桌面。
在默認情況下,客戶端通過TCP 3389端口來訪問遠程桌面。存在多臺會話主機的情況下,客戶端會先訪問RD Web節(jié)后,之后再轉(zhuǎn)向目標(biāo)RD會話主機。這就出現(xiàn)了一個問題,即單個3389端口處理多個Remote APP程序的映射比較繁瑣。RD網(wǎng)關(guān)的出現(xiàn),有效解決了該問題,當(dāng)客戶端訪問RemoteAPP程序時。首先連接RD網(wǎng)關(guān),之后由其引導(dǎo)用戶連接到合適的RD會話主機,讓用戶順利訪問RemoteAPP程序,并由其處理客戶端和RD 會話主機的映射關(guān)系。當(dāng)然,這會使用到TCP 443等端口。
在RDS服務(wù)中,證書是一個非常重要的對象。使用證書有兩個目的,不僅可以對用戶的遠程登錄進行認證,而且可以對數(shù)據(jù)的傳輸進行加密。對于RDS服務(wù)器來說,希望客戶端執(zhí)行的是安全的連接。在工作組環(huán)境中,即RDS服務(wù)器和客戶端是獨立的,當(dāng)客戶端執(zhí)行“mstsc.exe”程序,輸入RDS服務(wù)器地址,連接完成后,在遠程桌面連接窗口中會顯示“無法驗證此遠程計算機的身份,是否仍要連接?”的提示,說明證書來自不信任的證書驗證機構(gòu)。
以上情況說明,RDS服務(wù)器會創(chuàng)建自簽名證書,但自簽名證書默認是不受信任的,即在工作組環(huán)境中,證書的安全實際上沒有得到有效保證。但在域環(huán)境中情況則截然不同。例如,在域環(huán)境中,當(dāng)客戶端登錄RDS服務(wù)器時,卻不會出現(xiàn)無法驗證連接者身份的警告窗口,在遠程桌面窗口頂部點擊鎖型按鈕,在彈出窗口中顯示“已使用Kerberos驗證遠程計算機的身份”信息。Kerberos是Windows活動目錄架構(gòu)中用于身份驗證的加密協(xié)議,這說明該RDS連接是安全的。
如何在工作組環(huán)境中也能實現(xiàn)安全連接呢?在域中某服務(wù)器(例如名為“CAsrv“”)上打開服務(wù)器管理器,點擊“添加角色和功能”項,在向?qū)Ы缑嬷械慕巧斜碇羞x擇“Active Directory證書服務(wù)”項,在下一步窗口中選擇“證書頒發(fā)機構(gòu)”和“證書頒發(fā)機構(gòu)Web注冊”項,當(dāng)安裝該角色后,按照向?qū)崾具M行AD證書服務(wù)的配置操作,例如,修改CA的公用名稱等,一般來說采取默認值即可。打開證書頒發(fā)機構(gòu)窗口,在左側(cè)選擇CA公用名稱,在其屬性窗口中的“擴展”面板中選擇以“https://”起始的一行,選擇“包括在CRL中。客戶端用它來尋找增量的位置”,“包含在頒發(fā)的證書的CDP擴展中”,“包含在已發(fā)布的CRL的IDP擴展中”項,點擊應(yīng)用按鈕,重啟AD證書服務(wù)。
在左側(cè)的“吊銷的證書”項的右鍵菜單上點擊“所有任務(wù)→吊銷發(fā)布”項,點擊確定按鈕。在RDS服務(wù)器上打開瀏覽器,訪問“http://CAsrv.xxx.com/certsrv”,輸入合適的域賬戶名和密碼,在歡迎頁面中點擊“下載CA證書,證書鏈或CRL”鏈接,在打開頁面中點擊“下載證書鏈”鏈接,將后綴為“.p7b”的文件保存到本地,假設(shè)為名“xinren.p7b”,這是一張信任證書。
打開MMC控制臺,點擊“Ctrl+M”鍵,在打開窗口左側(cè)選擇“證書”項,點擊添加按鈕,選擇“計算機賬戶”項,在控制臺左側(cè)選擇“證書→受信任的證書頒發(fā)機構(gòu)→證書”項,在右鍵菜單上點擊“所有任務(wù)→導(dǎo)入”項,在向?qū)Ы缑嬷羞x擇上述“xinren.p7b”文件,依次點擊“下一步”和“完成”按鈕,將其添加到收信人的根證書頒發(fā)機構(gòu)列表中。在客戶端執(zhí)行同樣的操作,使其信任根證書頒發(fā)機構(gòu)。當(dāng)信任了證書頒發(fā)機構(gòu)后,接下來需要申請證書。
在RDS服務(wù)器安裝好IIS之后,在IIS管理器中打開服務(wù)器證書窗口,因為是在工作組環(huán)境中申請證書,所以點擊“創(chuàng)建證書申請”鏈接,在操作向?qū)Вㄈ鐖D1)中輸入證書的通用名稱(輸入 RDS主機名)、組織、組織單元、城市/地點、省/市/自治區(qū)、國家/地區(qū)等信息,點擊“下一步”按鈕,選擇加密服務(wù)提供程序和位長信息,一般來說保持默認即可。在下一步窗口中點擊瀏覽按鈕,選擇申請文件保存路徑,點擊“完成”按鈕,就得到了所需的申請文件。這其實是一個文本文件,使用記事本可以查看其內(nèi)容,并將其內(nèi)容完整復(fù)制到剪切板中。
之后打開瀏覽器,訪問“http://CAsrv.xxx.com/certsrv”,在彈出頁面中點擊“申請證書”鏈接,之后點擊“高級證書申請”鏈接,在打開頁面中點擊“使用Base64編碼的CMC或PKCS#10文件提交 一個證書,或使用Base64編碼的PKCS#7續(xù)訂證書申請”鏈接,在打開頁面中的“保存的申請”欄中粘貼申請文件內(nèi)容,在“證書模板”列表中選擇“Web服務(wù)器”。點擊“提交”按鈕,在證書已頒發(fā)頁面中點擊“下載證書”鏈接,將證書文件下載到本地。之后,在IIS管理器中的“服務(wù)器證書”窗口右側(cè)點擊“完成證書申請”鏈接,在彈出窗口中的“包含證書頒發(fā)機構(gòu)相應(yīng)的文件名”欄點擊“瀏覽”按鈕,選擇上述證書文件,設(shè)置易于記憶的名稱,選擇證書存儲位置,點擊“確定”按鈕,就完成了該證書的創(chuàng)建操作。
圖1 申請證書
圖2 查看證書的指紋信息
如何將該證書綁定到RDS服務(wù)上呢?這需要使用命令行實現(xiàn)。打開申請到的證書的屬性窗口,在“詳細信息”面板(如圖2)中點擊“指紋”項,可以看到指紋信息。在CMD窗口中執(zhí)行“wmic /namespace:\rootcimv2TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="xxxxxxxxx"”命令,當(dāng)出現(xiàn)“屬性更細成功”的提示,說明完成證書的綁定操作。其中的“xxxxxxxxx”表示證書的指紋信息。這樣,在工作組環(huán)境中,當(dāng)客戶端連接RDS服務(wù)器時,就可以利用該證書實現(xiàn)安全連接了。
客戶端需要使用RDS服務(wù)器名進行連接,才可以依靠證書實現(xiàn)安全連接??梢栽诳蛻舳舜蜷_“C:WindowsSystem32DriversEtc”目錄,編輯其中的“hosts”文件,在其中添加RDS名稱和IP對應(yīng)關(guān)系,實現(xiàn)簡單的DNS解析功能,就可以使用RDS名稱連接RDS服務(wù)器了。但是,如果使用RDS服務(wù)器的IP進行連接,就會出現(xiàn)上述無法信任的問題。因為證書是和RDS主機名綁定的,這是證書的特點之一。應(yīng)該說同域環(huán)境相比,在工作組中環(huán)境中配置和管理證書是比較繁瑣的。