搭建Windows RDS到網(wǎng)絡(luò)的橋梁:設(shè)計DMZ
大部分Windows服務(wù)器管理員有時候要用到遠(yuǎn)程桌面服務(wù)(Remote Desktop Service,RDS)。這是因為Windows RDS在遠(yuǎn)程交付應(yīng)用和桌面給用戶時是一個價格實惠的解決方案。它還很容易獲得:只需點擊幾次鼠標(biāo),任一臺Windows Server都能變成RDS服務(wù)器。
盡管遠(yuǎn)程桌面會話主機(jī)(Remote Desktop Session Host,RDSH)是RDS的核心,遠(yuǎn)程桌面網(wǎng)關(guān)(Remote Desktop Gateway,RDG)是一個相同效力的角色服務(wù),它實現(xiàn)了不受信網(wǎng)絡(luò)和互聯(lián)網(wǎng)上的安全用戶會話。
所以,如果RDG是互聯(lián)網(wǎng)啟用Windows RDS應(yīng)用的實用工具,為什么沒有更多的IT工作站使用它呢?一個障礙在于對RDG整合到DMZ或內(nèi)部LAN的不同方式缺少了解。復(fù)雜的事情是一系列誤解讓RDG看上去比本身更不安全。
不同之處在你的設(shè)計中。
將RDG整合到現(xiàn)有DMZ有四種不同的設(shè)計,擁有四種中的一種代表著當(dāng)前行業(yè)的最佳實踐。在每一種設(shè)計中,你都可以假設(shè)RDG角色服務(wù)安裝在一臺獨立的服務(wù)器上,這臺服務(wù)器單獨用于RDG服務(wù)。另外,雖然“互聯(lián)網(wǎng)”這個詞用來形容LAN外部的網(wǎng)絡(luò),但是這個詞也代表所有外部不受信任的網(wǎng)絡(luò)(例如外網(wǎng))。
設(shè)計一:沒有DMZ。LAN里的RDG。
最常見的RDG設(shè)計也是最簡單的。這種設(shè)計中不需要DMZ,因為RDG放置在內(nèi)部LAN里且擁有到RDSH的完全網(wǎng)絡(luò)連接。在這種設(shè)計中,防火墻端口TCP/443在互聯(lián)網(wǎng)和RDG間打開,DNS記錄正確地更新,因此RDG的完全限定域名(FQDN)可以從LAN或互聯(lián)網(wǎng)上解析。
雖然這個設(shè)計足夠簡單,它并不提供大部分安全策略需要的網(wǎng)絡(luò)隔離和保護(hù)的類別。例如,大部分安全策略需要來自于互聯(lián)網(wǎng)的網(wǎng)絡(luò)流量來在進(jìn)入一個內(nèi)部LAN前通過一個DMZ服務(wù)器代理。這種設(shè)計不支持這樣的要求。
設(shè)計二:DMZ中的RDG。不曝光內(nèi)部活動目錄。
為了支持大部分企業(yè)網(wǎng)絡(luò)上強(qiáng)制執(zhí)行的代理要求,第二種設(shè)計將RDG遷移到DMZ中。由于它的位置,端口TCP/443首先必須在互聯(lián)網(wǎng)和RDG間打開,接著是端口TCP/3389要在RGB和內(nèi)部LAN間打開。
雖然該設(shè)計將RDG從內(nèi)部LAN上隔離,但它這么做是出于內(nèi)部活動目錄曝光的成本考慮。因為只有遠(yuǎn)程桌面協(xié)議端口(TCP/3389)在DMZ和內(nèi)部LAN間打開,運(yùn)行RDG的服務(wù)器必須以工作組模式運(yùn)作。
注意,只有在Windows Server 2008 R2上才能這樣使用工作組模式。2008 R2之前的操作系統(tǒng)版本需要RDG作為一臺加入域的服務(wù)器。還要注意,這種設(shè)計,連接的用戶將需要兩組不同的用戶名和密碼。第一組由本地用戶在RDG上管理,而第二組則是他們的內(nèi)部域證書。
設(shè)計三:DMZ中的RDG,曝光內(nèi)部活動目錄。
要求用戶保存兩組不同的用戶名和密碼是個沉重的負(fù)擔(dān),在RDG服務(wù)器上維護(hù)它們的管理工作本身也是個沉重的負(fù)擔(dān)。因此,大部分環(huán)境需要遍及整個連接的單點登錄體驗,從遠(yuǎn)程設(shè)備,貫穿RDG,最終到達(dá)RDSH應(yīng)用。
提供單點登錄體驗的一種方法是使用加入域的RDG服務(wù)器。這里的問題是需要將一個Windows域擴(kuò)展到DMZ的網(wǎng)絡(luò)端口范圍太廣。所需的端口數(shù)量太大通常是執(zhí)行每三種設(shè)計的的限制因素。RDS團(tuán)隊博客記錄了這些端口。
創(chuàng)建這種設(shè)計的過程非常復(fù)雜,因此這篇文章讀起來可能有些讓人困惑。但是要知道,下面三種高級選項的任一種都可用來執(zhí)行第三種設(shè)計:
第一種選項在RDG與內(nèi)部域控制器間打開了足夠的網(wǎng)絡(luò)端口來維護(hù)其域成員。
為了進(jìn)一步保證這種配置的安全性,第二種選項取代了DMZ中只讀域控制器(Read-Only Domain Controller)的位置。為了維護(hù)其域成員,該RODC通過足夠的網(wǎng)絡(luò)端口連接到一個內(nèi)部DC,RDG使用RODC來認(rèn)證。
第三種選項企圖通過在DMZ中使用獨立的域和域控制器進(jìn)行進(jìn)一步隔離,該DMZ參與到與內(nèi)部域建立信任關(guān)系的林中。然后足夠的端口在DMZ DC和一個內(nèi)部DC間打開,用來支持通過該林信任關(guān)系的認(rèn)證。
設(shè)計四:DMZ中的反向代理。LAN中的RDG。
如果第三種選擇看上去像是白費(fèi)力氣,那么它確實是。它還打開了大部門安全人員會關(guān)閉的防火墻端口。這也是為什么第四種選擇對于那些承擔(dān)的起的人來說可能是當(dāng)前行業(yè)中的最佳解決方案的原因。
第四種選擇是在第一種選擇的網(wǎng)絡(luò)設(shè)計中添加了一個額外組件。這個額外組件是DMZ中反向代理服務(wù)器的定位,還有在路由到LAN內(nèi)部的RDG之前通過代理的網(wǎng)絡(luò)流量。這個反向代理服務(wù)器可以是微軟的Forefront安全威脅管理網(wǎng)關(guān)或者統(tǒng)一訪問網(wǎng)關(guān),或者支持RDG整合的任意第三方反向代理解決方案排列。
作為反向代理,這些解決方案中的任一種都能作為SSL橋接設(shè)備運(yùn)作,用來在互聯(lián)網(wǎng)和內(nèi)部LAN間的HTTPS請求上接收和傳遞。網(wǎng)絡(luò)數(shù)據(jù)包在反向代理上終止,檢查惡意代碼,并在發(fā)送到內(nèi)部服務(wù)器之前重建。這個過程啟用了內(nèi)部LAN里加入域的RDG來認(rèn)證并進(jìn)一步代理使用內(nèi)部域證書的用戶會話。這就是SSO。
一個沒那么復(fù)雜的RDG
當(dāng)應(yīng)用程序需要互聯(lián)網(wǎng)曝光時,RDG的確是非常有用。一個穩(wěn)固的解決方案只執(zhí)行一個簡單的功能且大獲成功,這個內(nèi)置于Windows Server 2008 R2中的小角色服務(wù)可能會是一個聰明的方法。
你所需要的是正確的設(shè)計。
【編輯推薦】