远程桌面是管理员对Windows系统实施远程管理和维护的首先工具,当然也是攻击者窥视和企图接管的对象。因此,一个有经验的系统管理员在客户端或者服务器上开启远程桌面后定会进行一定的安全部署。对于Windows Server 2008来说,远程桌面是终端服务的一个功能,Windows Server 2008的安全特性和相关细节,为用户进行远程桌面管理以及提升其安全性提供了更多选项。本文将和大家一道挖掘Windows Server 2008远程桌面管理中的相关技术细节。 1、启用远程桌面时应注意的细节
在
Windows Server 2008
中开启远程桌面的操作是非常简单的,但不同于此前的系统它提供了更多的安全选项,这些选项是我们应用注意的。另外,因为
Windows Server 2008
的安全特性,大家在开启远程桌面前或者开启之后还应用注意有关事项。
(1).
慎重选择限制远程连接系统的版本
依次点击 “ 控制面板 ”→“ 系统和维护 ”→“ 系统 ” 进入系统管理页面,单击左窗格中的 “ 远程设置 ” 链接打开 “ 系统属性 ” 对话框,点击 “ 远程 ” 选项卡来到启用远程桌面窗口。对于启用远程桌面大家可谓轻车熟路,但该页面中启用 Windows Server 2008 远程桌面的两个选项希望引起大家的注意。首先是 “ 允许运行任意版本远程桌面的计算机连接 ( 较不安全 ) ” 选项,如果选择该项那么任意版本的 Windows 都可以通过远程桌面连接到该主机,毫无疑问,这是不安全的。在此,管理员应该做考量是否限制远程连接的系统版本以提升远程桌面的安全,一般情况下管理员应该以自己平时使用的系统版本为依据进行选择。另外一个选项是 “ 只允许运行带网络身份验证的远程桌面的计算机连接 ( 更安全 ) ” ,如果选择该项,那么将只允许安装了 Windows Vista 、 Windows Server 2008 、 Windows 7 的计算机进行远程连接。如果条件允许,笔者当然建议大家选择该项,毕竟安全第一嘛。 ( 图 1)
(2).
账户和防火墙相关的注意事项
在
Windows Server 2008
上开启远程桌面时还需注意,所有远程连接必须使用带有密码的账户创建,如果系统中的某个本地账户没有密码,那么就无法使用该账户进行远程连接。这是一些个人用户经常遇到的问题,明明开启了远程桌面但就是无法通过账户登录。
另外,考虑到 Windows Server 2008 的防火墙非常强大一般用户会选择时系统防火墙,此时如果开启远程桌面的话,系统防火墙会自动创建一个例外,允许远程桌面协议 (RDP) 连接穿透防火墙。默认情况下,该协议使用 TCP 3389 端口,同时在注册表的 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\\WinStations\\RDP-Tcp\\PortNumber 键值中记录了该端口号。出于安全考虑,希望大家将该端口号更改为一个陌生的端口,更改的方法就是修改该注册表键值的值。如果计算机系统使用了其他第三方防火墙,则不行要在该防火墙中打开该端口,以允许建立传入的远程桌面协议 (RDP) 连接。在此提醒的是,允许连接的端口是你更改后的端口而不是此前的 TCP 3389 端口。 ( 图 2)
2
、对远程登录用户可采用的授权方法
默认情况下,
Administrators
组中的所有成员都可以远程登录,同时
Windows Server 2008 Active Directory
中的
Remote Desktop Users
组的成员也可以进行远程管理。处于安全考虑,我们必须更改默认授权而实施对特定的用户或者组授权。
(1).
在远程桌面控制台中授权
在 Windows Server 2008 的 “ 系统属性 ” 对话框中,单击 “ 远程 ” 选项卡进入远程桌面设置窗口。在开启远程桌面后,单击其中的 “ 选择用户 ” 按钮,随后打开 “ 远程桌面用户 ” 对话框,同时所有 Remote Desktop Users 组的成员都会被列在这里。要添加新的用户或者组到该列表,单击 “ 添加 ” 按钮打开 “ 选择用户或组 ” 对话框。在该对话框中输入所选或默认域中用户或组的名称,然后单击 “ 检查名称 ” 。如果找到了多个匹配项目,则需要选择要使用的名称,然后单击 “ 确定 ” 。当然也可以单击 “ 查找范围 ” 按钮,选择其他位置通过查找功能添加相应的用户。如果还希望添加其他用户或者组,注意在它们直接输入分号 (;) 作为间隔。再次,笔者的建议是:删除对于组的授权,而只授予特定的用户远程连接权限。这样就会增加攻击者猜解用户账户的难度,从而提升了远程桌面的安全。作为一个安全技巧,大家可以取消 administrator 账户的远程连接权限,而赋予其他对于攻击者来说比较陌生的账户的远程连接权限。 ( 图 3)
(2).
通过组策略限制远程登录
在组策略中, Administrators 和 Remote Desktop Users 组的成员默认具有 “ 允许通过终端服务登录 ” 的用户权限。如果修改过组策略,可能需要复查,以确保这个用户权限依然被分配给这些组。一般来说,可以针对具体的计算机复查设置,但也可以通过站点、域已经组织单元策略进行复查。打开相应的组策略对象,然后依次展开 “ 计算机配置 ”→“ Windows 设置 ”→“ 安全设置 ”→“ 本地策略 ”→“ 用权限指派 ” ,双击 “ 通过终端服务允许登录 ” 策略,查看要使用的用户和组是否在列。 ( 图 4) 如果希望限制用户对服务器进行远程登录,可以打开相应的组策略对象,展开 “ 计算机配置 ”→“ Windows 设置 ”→“ 安全设置 ”→“ 本地策略 ”→“ 用权限指派 ” 节点,双击 “ 通过终端服务拒绝登录 ” 策略。在该策略的属性对话框中,选择 “ 拒绝这些策略设置 ” ,然后单击 “ 添加用户或组 ” ,在添加用户或组对话框中,单击 “ 浏览 ” ,并使用选择用户、计算机或组对话框输入希望拒绝通过终端服务进行本地登录的用户或组的名称,然后单击 “ 确定 ” 即可。另外,也可以在终端服务配置工具中修改组的默认权限。例如,可以将对终端访问对象具有完全控制权限的 Administrators 组删除。 ( 图 5)
3
、在组策略中配置远程桌面管理
远程桌面管理是终端服务的一部分,当然也可使用组策略配置远程桌面。其实,微软也建议首先使用组策略作为终端服务和远程桌面管理功能的首选工具。在实战中,我们可以针对特定的计算机配置本地策略,或在域中的组织单元 (OU) 上设置。我们可以使用组策略对象编辑器进行修改,定位到 “ 计算机配置 ”→“ 管理模板 ”→“ Windows 组件 ”→“ 终端服务 ” 节点以及 “ 用户配置 ”→“ 管理模板 ”→“ Windows 组件 ”→“ 终端服务 ” 节点下进行设置。该节点下有 6 个配置项目,大家可以根据需要进行配置。一般来说,远程桌面管理都用于对企业内部的服务器进行管理,但终端服务服务器通常都会使用独立的 OU 被隔离在特定的组中。因此如果打算在企业内部使用终端服务服务器,则应该考虑为终端服务服务器创建独立的 OU ,这样就可以通过远程桌面单独管理终端服务服务器。 ( 图 6) 4、远程桌面连接客户端设置技巧
Windows Server 2008
使用的远程桌面连接客户端
(mstsc)
是最新的第
6
版本,这个版本的连接客户端相比以前的版本有了较大的改进,增加了许多有趣而实用的功能。下面和大家共享几个使用
mstsc
进程远程桌面连接中的相关技巧。
(1).
自定义显示分辨率
Windows Server 2008 中的 mstsc 支持高达 1680 × 1920 或 1920 × 1200 或更高的分辨率。除了可以在 mstsc 的图形界面中设置分辨率外,当然最快捷的是直接通过命令设置。比如我们运行 “ mstsc /w:1920 /h:1200 ” 即将客户端的分辨率设置为 1920 × 1200 ,其中 /h 、 /w 是参数分别表示屏幕的高和宽。如果大家将某次桌面连接配置保存为 RDP 文件,我们可以打开该文件然后修改其中的 desktopwidth 和 desktopheigh 后面数值以改变屏幕大小。例如 desktopwidth:i:1920 或 desktopheigh:i:1200 。 ( 图 7)
(2).
在远程桌面中使用多显示器
Windows Server 2008
中的
mstsc
支持多显示器,这样就能够显示远程会话的所有内容。需要说明的是:要使用多显示器,那么这些显示器必须水平对齐,并使用同样的分辨率。要使用远程桌面的多显示器跨越功能,需要在
mstsc
中添加
/span
参数,例如
“
mstsc /span
”
。当然,我们也可以通过修改
RDP
文件中的特定数值实现显示器跨越,比如
“
Span:i:1
”
(3).
调整传输数据的优先级
Windows Server 2008
中的
mstsc
在显示远程系统的数据方面是有一定的优先级的。我们希望的优先级是:显示器、键盘和鼠标的相关数据比其他类型的数据,比如打印机或文件传输更优先处理。默认情况下,显示器和输入数据将占可以带宽的
70%
,而其他通信只占可以带宽的
30%
。在某些特殊情况下,我们需要调整这个默认的优先级以符合我们的特殊需求。要修改这个优先级就需要在
Windows Server 2008
的注册表中进行修改,其注册表项是
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Servers\\TermDD
。需要条的子键是
(
如果没有这些键值可以自己创建,这些键值都是
32
位的
DWORD
值
)
:
FlowControlDisable
将其值设置为
“
1
”
就会禁止显示数据的优先级,反之,所有不同的数据就请求都会被同等对待,其他是注册表值就会被忽略。
FlowControlDisplayBandWidth
该键值设置相对带宽优先级的比例,其默认值是
70
,最大允许的数值是
255
。
FlowControlChannelBandWidth
该键值设置其他数据比如打印机、文件传输等占用的可以带宽比例,其默认值是
30
,最大可以设置为
255
。
FlowControlChargePostCompression 该键值决定是否要根据演示前和压缩后的数据大小决定带宽的分配,默认值是 “ 0 ” ,意味着比例的计算是根据压缩前数据的大小进行的。大多数情况下,我们希望以这种方式进行,因为这样确保了客户端不要在发送数据前等待数据压缩完毕,节省了时间。 ( 图 8)
(4).
选择连接客户端启动的方式
Windows Server 2008
中启动远程桌面连接客户端可采用两种方式,即管理模式和虚拟会话模式。相比虚拟会话模式,管理模式能够极大地改善管理员成功执行程序、应用程序和进程的成功率。因此,作为管理员建议采用管理模式启动远程连接客户端。下面笔者分别说说这两种连接方式如何启动。
运行于虚拟会话模式
虚拟会话模式可被管理员和其他用户用于在远程系统上启动虚拟会话。要运行虚拟会话模式可执行下面的操作:在命令行或者运行对话框中运行命令
“
mstsc
”
,或者单击
“
开始
”→“
所有程序
”→“
附件
”
,然后选择
“
远程桌面连接
”
选项即可启动虚拟模式的远程桌面连接客户端。
运行于管理模式
管理模式可被管理员用于与远程系统的控制台进行完全的交互。要运行管理模式的客户端,必须根据客户端的类型进行下列操作:在命令行或者运行对话框中执行 “ mstsc /admin ” 或者 “ mstsc /console ” 。 ( 图 9)
5
、远程登录用户的监视
Windows Server 2008
是允许有多个用户同时通过远程桌面连接的,因此管理员一定要做好远程登录用户的监控,以甄别是否有可疑或者非法的远程连接。除了可以使用终端服务管理器查看登录会话外,我们还可以通过两种方法来监控远程登录的用户。
首先的使用 quser 命令,通过 telnet 连接到该服务器或在本地命令行先执行命令 quser 命令即可看到谁已经登录当前系统。或者我们也可以运行命令 “ quser /server:ServerName ” 来查看登录到远程服务器上的用户,其中 ServerName 的服务器的名称。如图所示,该服务器上有两个活动的会话,其中 ctocio 登录到了一个活动的 RDP 会话,会话 ID 是 2 ,意味着是会话 2 。 administrator 登录到了本地控制台,会话 ID 是 2 ,即会话 1 。 ( 图 10) 在此,笔者和大家共享一个技巧。有时候当有多个用户通过远程桌面登录到服务器,但并没有有效注销,此时当有其他的用户要通过远程桌面登录到服务器时会因为用户连接超过授权数而无法登录。此时,我们就可远程 telnet 到服务器或者在服务器的命令提示符中执行命令 “ logoff ID ” 来注销某个用户,其中 ID 就是会话序号,比如执行 “ logoff 2 ” 就将强迫 ctocio 用户从系统注销。这样,其他的用户就可以通过远程桌面登录系统了。 ( 图 11) 除了命令外,我们还可以通过 “ 任务管理器 ” 查看用户会话。单击任务栏选择 “ 任务管理 ” 即可打开任务管理器窗口,点击 “ 用户 ” 选项卡可以看到当前登录服务器的用户。在此,我们可以对特定用户执行 “ 断开 ” 、 “ 注销 ” 操作,当然也可以 “ 发送消息 ” 。 ( 图 12)
笔者这里要强调一下,注销用户和断开用户是是完全不同的。如果断开一个会话,这会话将处于断开状态,但依然会在进程中执行。如果注销用户,则会结束该用户的会话,同时关闭该用户运行的所有应用程序,同时还会结束该用户运行的所有前台进程。笔者建议,管理员在远程维护完成后最好以
“
注销
”
的方式断开和服务器的连接。这样不仅会释放服务器资源,而且方便下一次的登录。往往有不少用户在远程登录完成后会直接关闭远程桌面客户端窗口,这样的操作就类似
“
断开
”
操作,它还占用着服务器会话通道,当达到服务器的用户授权上限时其他用户就不能够远程登录到服务器。
6
、解惑远程登录验证证书无效或者过期
有时候当我们通过远程桌面客户端连接服务器时,会收到 “ 从远程计算机获得的验证证书无效或过期 ” 的错误提示,这时什么原因呢 ? 其实,在默认情况下在建立 RDP 连接之前,计算机还需要验证远程计算机的身份。如果远程计算机的验证证书无效或者过期,将无法连接,同时还会受到类似的警告信息。对此,我们首先应该检查一下两台计算机的日期和时间设置是否正确。因为如果两台计算机之间的时间和日期有偏差,则可能会导致验证证书无效。当然,如果不希望计算机验证远程计算机的身份,我们可以禁用该功能。其具体设置方法是:在远程桌面连接器窗口中单击 “ 选项 ” 打开额外配置选项卡,进入高级选项卡,然后设置服务器验证选项为 “ 连接并且不向我发送警告 ” 即可。 ( 图 13) 总结:本文和大家共享了Windows Server 2008远程桌面管理中容易被忽略某些技术细节,同时也和朋友们分享了笔者的一些经验。最后希望这些细节和经验能够对大家有所帮助。 |