在Windows Server 2008的終端服務(Terminal Services)中最大的亮點就是整體安全性的提高,作為管理員和用戶最常使用的遠程訪問服務器之一,這種安全性的提高也並不讓人意外,並且非常受到大家的歡迎。在本文中我們將討論怎樣做才能確保你的終端服務器(Terminal Server)環境更加安全。
使用雙重因素驗證
當我們在考慮網絡安全時,我們有必要進行雙重因素驗證。
目前主要有集中不同形式的雙重因素驗證方式,不過最常用的是終端服務所支持的智能卡(Smart Card)。在使用智能卡時,用戶不僅需要提供有效的登錄憑證,而且他們必須能夠提供智能卡連接到他們用於作為遠程終端的設備。
為了獲取智能卡驗證,你必須創建一個能夠運用到終端服務器的組策略對象(Group Policy Object)。在組策略對象中,浏覽Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesSecurity Options,並啟用Interactive Logon: Require Smart Card設置。此外,你將需要啟用智能卡重新定位到終端服務器,可以通過在用戶工作組上的遠程桌面連接客戶端的本地資源選項中,勾選智能卡選項。
為所有客戶端執行網絡級別的身份驗證
在過去,在服務器上部署終端服務驗證是通過連接服務器上的會話(session)然後在Windows Server登錄屏幕中輸入登錄憑證。這聽起來似乎非常麻煩,但是從安全的角度來看,能夠啟動session登錄屏幕可能會暴露關於網絡的信息(域名,計算機名稱等)或者可能讓服務器受到拒絕服務攻擊,這種攻擊主要來自擁有服務器公用IP地址的人。
網絡級身份驗證(NLA)是遠程桌面連接客戶端(Remote Desktop Connection Client)6.0版本中新加的功能,該功能可以在向用戶顯示Windows Server登錄界面之前允許用戶輸入他們的登錄憑證。Windows Server 2008使我們能夠利用這項功能並要求所有連接客戶端使用該功能。
要想使用NLA,你必須使用Windows 2008 Server,並且你的連接客戶端必須能夠支持CredSSP(Windows XP SP3、Windows Vista、 Windows 7)以及運行Remote Desktop Connection 6.0或者更高版本的遠程桌面連接。你同樣也可以配置終端服務器,要求其客戶端在幾個不同位置使用NLA:
在最初的終端服務角色安裝過程中,當終端服務器屏幕顯示出指定驗證方法時,選擇Allow connections only from computers running Remote Desktop with Network Level Authentication(僅允許運行網絡級身份驗證的遠程桌面的計算機發送的連接)選項。
在終端服務配置MMC管理單元中,右鍵單擊你的客戶端使用的終端服務器連接,然後選擇屬性,選擇Allow connections only from computers running Remote Desktop with Network Level Authentication選項
創建一個組策略對象,查看Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesTerminal ServerSecurity位置,啟用Require user authentication for remote connections by using Network Level Authentication(要求使用網絡級別的身份驗證進行遠程連接的用戶驗證)設置。
內容導航
更改默認RDP端口
默認情況下,終端服務器使用的是端口3389來進行RDP通信。而通常情況下,世界上的所有黑客都知道終端服務器使用的是端口3389進行RDP通信。在這種情況下,提高終端服務器環境安全以及抵御黑客攻擊的最快方法就是更改這種默認端口分配設置。
要想更改終端服務器的默認RDP端口設置,打開注冊表,浏覽:HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp,找到PortNumber密鑰並將十六進位值00000D3D(相當於端口3389)取代為其他適當的十六進位值。
另外,你也可以更改終端服務器使用的端口號碼(基於每次連接),同樣使用注冊表,浏覽HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsconnection name,再次找到PortNumber密鑰然後將十六進位取代為你想要的適當的值。
請記住,當對服務器的這些設置進行更改時,所有的連接客戶端必須確保使用標記到服務器IP地址上的新端口擴展來連接到終端服務。舉例來說,使用內部IP地址(192.168.0.1)連接到終端服務器,而現在使用的是非標准端口8888的話,將要求用戶輸入192.168.0.1:8888到遠程桌面連接客戶端。
內容導航
使用Easy Print和限制重新定向的打印機
從本地連接到客戶端工作組的設備中進行打印,一直都是Windows Server2008之前版本中的終端設備的缺點,為了做到這一點,你必須確保在客戶端和服務器安全了版本完全相同的打印機驅動程序,而且即使如此,也不一定總是能正常打印。從安全的角度來看,我們從來都不想在我們的系統上安裝更多的驅動程序,除非必要情況。安裝在服務器上的每個驅動程序都有可能擴大潛在攻擊范圍。
Windows Server2008中新增了被稱為Easy Print(簡易打印)的功能,這從根本上改變了本地連接打印機的處理方式。從本質上來說,TS Easy Print是一個驅動程序,能夠作為代理將所有通過的數據進行重新定向。當客戶端使用簡易打印驅動程序從設備打印時,數據和打印設置都將轉換為常用格式發送給終端服務器進行處理。在這個過程中,點擊打印後,打印對話框是從客戶端彈出的,而不是從終端會話中彈出的,這意味著不需要在終端服務器上安裝驅動程序來處理本地打印設備的打印工作。
為了配置簡易打印,你需要確保所有的本地連接打印設備都有邏輯打印機,並在客戶端工作組配置為使用簡易打印驅動程序。所有運行遠程桌面連接6.1或更高版本以及.NET Framework 3 SP1的所有Windows XP SP3、Vista和Windows 7都支持簡易打印功能。
只要你已經在工作組級別配置好本地連接設備,最好就是確保只有使用TS Easy Print的打印機才能夠被重新定向到終端服務器,並應設置為默認打印機。想要實現這一點,可以創建一個組策略對象並浏覽到Computer Configuration Administrative TemplatesWindows ComponentsTerminal ServicesTerminal ServerPrinter Redirection,啟用Redirect only the default client printer(僅對默認客戶端打印機進行重新定向)選項。
內容導航
限制用戶帳戶
當你雇傭一個人為你耕地時,你只需要把拖拉機的鑰匙給這個人即可,而不是給他所有的鑰匙,避免發生物品丟失事故。同樣的道理,我們必須記住,當用戶連接到服務器或者直接在服務器工作時,他們有可能接觸他們並不需要的資源,為了提高終端服務器環境的安全性,我們必須限制這種現象。這不僅可以防止用戶的身份憑證被破壞,還可以防止合法用戶的非法意圖,我們可以做的事情包括以下:
對終端用戶使用特定的帳戶
用戶在本地使用某些應用程序,然後進入終端服務器以訪問其他應用程序,這種現象並不少見。從管理角度來看,用戶使用相同的用戶帳戶登錄本地和終端設備是很便於管理,但是從安全角度來看,這也很容易讓盜取了訪問多個應用程序憑證的攻擊者繼續攻擊其他應用程序。因此,必須為終端服務器訪問創建單獨的用戶帳戶,並限制為僅能訪問必要的應用程序,這樣將大大減小攻擊者大范圍攻擊的威脅。
使用軟件限制政策
軟件限制政策(Software Restriction Policies)毫無疑問的屬於新的發展趨勢,但是其中卻存在很大不足,軟件現在政策可以配置為允許或者拒絕使用某些應用程序,這在公共計算機或者kiosk環境很常用,在終端服務器環境中也很多。
檢測用戶對終端服務器的訪問
默認情況下,只有終端服務器遠程桌面用戶組(和域/本地管理員)的成員才能夠登錄到終端服務器,我們強烈建議你定期對這些組成員進行記錄和審計,如果用戶不再需要登錄到終端服務器,那麼就可以將其從遠程桌面用戶組除名。
內容導航
使用組策略配置其他安裝政策
可以通過組策略為終端服務器環境配置很多安全增強功能,以下是幾個常見的:
1. 將終端服務用戶限制到單個遠程會話
在大多數情況下,單個用戶沒有必要啟動終端服務器上的多個會話,如果允許他們啟用多個會話可能會使終端服務器環境受到拒絕服務攻擊(當用戶身份憑證被攻擊者盜取時)。可以對組策略對象內的Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesTerminal ServerConnections進行配置。
2. 不允許驅動器重新定向
除非有特殊需要,允許用戶訪問來自終端服務器會話的本地驅動器都可能帶來非常不安全的通信渠道。有了這種功能,用戶不僅能夠復制數據到終端服務器,而且數據很可能包含惡意代碼,並有可能被終端服務器執行。
可以對組策略對象內的Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesTerminal ServerDevice and Resource Redirection進行配置。
3. 為斷開會話設置時間限制
總的來說,讓用戶在沒有完全注銷的情況下退出對話並不是件好事,攻擊者可能能夠控制這個會話,然後獲取某些敏感信息,或者獲得身份驗證到另一個網絡應用程序。制止這種情況發生的方法就是,為斷開會話設定非常短的時間限制,當時間一到會話就會自動關閉。
可以對組策略對象內的Computer ConfigurationAdministrative TemplatesWindows ComponentsTerminal ServicesTerminal ServerSession Time Limits進行配置。
4. 禁用 Microsoft Windows Installer
簡而言之,只有系統管理員才能夠在終端服務器安裝應用程序,在大多數情況下,由於用戶不能以管理員身份登錄,他們就不能自己安裝應用程序。但是,如果某些用戶需要這種特權,管理員可以通過禁用Microsoft Windows Installer來限制他們安裝某些程序的權限。
可以對組策略對象內的Computer ConfigurationAdministrative TemplatesWindows ComponentsWindows Installer進行配置。 重要的是,配置此設置為啟用,而不是總是允許,這樣做能夠確保你仍然可以通過組策略向終端服務器發布應用程序,而使用總是允許選項將阻止這種情況發生。
5. 文件夾重新定向
如果我每次登錄終端服務器都能在用戶本地桌面發現敏感數據或者關鍵數據,並因此獲得1美元的話,那肯定成大富翁了。雖然網絡管理員為用戶提供了多個公共和個人數據存儲位置,有些用戶仍然習慣將數據存在他們的桌面上。管理員可以通過將用戶桌面重新定向到文件服務器上的合適位置來防止數據丟失事故的發生。
可以對組策略對象內的User ConfigurationWindows SettingsFolder Redirection 來進行配置,用戶桌面絕對不是唯一可以重新定向的文件夾,建議查看所有可用的文件夾並將某些文件夾重新定向到服務器。
6. 禁止訪問控制面板
將像使用Microsoft Installer一樣,用戶不應該擁有防止控制面板的權限,但是,某些用戶有管理員權限的話,管理員也可以通過配置設置來限制他們對系統控制面板的訪問。
可以對組策略對象內的User ConfigurationAdministrative TemplatesControl Panel 來進行配置。