在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(仅对默认客户端打印机进行重新定向)选项。