DNS服务器
表 4.13: 设置
“DNS服务器”服务解析用户的DNS(域名系统)查询,并且处理对DNS名称的更新请求。对于在 Active Directory 中用DNS名称和域控制器进行身份识别的设备,“DNS服务器” 是定位这些设备的关键服务。
Active Directory 的可靠性和可用性强烈依赖于“DNS服务器”服务的正确操作。没有DNS,域控制器之间将无法互相定位对方以复制目录信息,客户机也无法访问域控制器进行身份验证。
使用组策略,将服务的开始模式设置配置为仅仅允许服务器管理员进行访问,,从而防止服务被未经授权或恶意的用户所配置或操作。该组策略还可防止管理员无意禁用该服务。因此,在本指南所定义的三种环境下,该服务在DCBP中配置为自动开始。
文件复制
表4.14: 设置
“文件复制”服务允许文件被自动拷贝到多台服务器上,并且同时获得维护。文件复制服务(FRS)是Windows 2000以及 Windows Server?家族中的自动文件服务。该服务将SYSVOL复制到所有的域控制器上,并且可以被配置为在与容错DFS相关联的其他目标上复制文件。SYSVOL复制同样依赖于 “文件复制服务”的正确操作。
您可以通过组策略,将服务的开始模式设置配置为仅仅允许服务器管理员进行访问,,从而防止服务被未经授权或恶意的用户所配置或操作。该组策略还可防止管理员无意禁用该服务。因此,在本指南所定义的三种环境下,该服务在DCBP中配置为自动开始。
站点间消息
表 4.15:设置
“站点间消息”(Intersite Messaging,ISM)使得消息能够在运行Windows Server站点的计算机之间进行交换。站点之间使用该服务进行基于邮件的复制操作。 Active Directory 能够使用简单邮件传输协议(SMTP)在站点之间进行复制。对SMTP的支持由SMTP服务提供,该服务是Microsoft Internet信息服务(IIS)的一个组件。
在站点间进行通信的传输集合必须是可扩展的;因此,每个传输在一个单独的附加动态链接库(DLL)中定义。这些附加的DLL被装载到ISM服务中,该服务运行在可能执行站点间通信的所有域控制器上。ISM服务将消息的收发请求定向到一个相应的传输附加DLL,然后将消息发送到目的计算机的ISM服务上。 Active Directory 的复制依赖于正确运行的“站点间消息”服务。
您可以通过组策略,将服务的开始模式设置配置为仅仅允许服务器管理员进行访问,,从而防止服务被未经授权或恶意的用户所配置或操作。该组策略还可防止管理员无意禁用该服务。因此,在本指南所定义的三种环境下,该服务在DCBP中配置为自动开始。
Kerberos密钥分配中心
表 4.16: 设置
“Kerberos密钥分配中心”(Kerberos Key Distribution Center ,KDC)服务让用户可以通过Kerberos v5身份验证协议登录到网络。
KDC服务是用户登录到网络所必需的服务。禁用该服务将阻止用户登录到网络。
使用组策略,将服务的开始模式设置配置为仅仅允许服务器管理员进行访问,从而防止服务被未经授权或恶意的用户所配置或操作。该组策略还可防止管理员无意禁用该服务。因此,在本指南所定义的三种环境下,该服务在DCBP中配置为自动开始。
远程过程调用(RPC)定位器
表4.17: 设置
“远程过程调用(RPC)定位器”(Remote Procedure Call Locator)服务使得使用RpcNs* 应用程序编程接口(API)的RPC客户机能够定位RPC服务器,并且对RPC名称服务数据库进行管理。
停止和禁用该服务可以防止使用RpcNs* API的RPC客户机定位服务器或无法启动。同样,来自同一计算机、依赖RpcNs* API的RPC客户可能找不到支持相应接口的RPC服务器。如果在您的域控制器上停止或禁用该服务,可能导致在定位客户机时,使用RpcNs* API和域控制器的RPC客户机出现服务中断。
您可以使用组策略,将服务的开始模式设置配置为仅仅允许服务器管理员进行访问,,从而防止服务被未经授权或恶意的用户所配置或操作。该组策略还可防止管理员无意禁用该服务。因此,在本指南所定义的三种环境下,该服务在DCBP中配置为自动开始。
其他安全性设置
该部分描述必须对DCBP进行的手动修改,以及其他不能通过组策略完成的设置和对策。
向用户权限分配手动添加唯一的安全组
大多数通过DCBP应用的用户权限分配都已经在本指南附带的安全性模板中进行了适当的指定。但是,有些账户和安全组不能被包含在模板中,因为它们的安全标识(SID)对于单个的Windows 2003域是特定的。下面介绍了必须手动配置的用户权限。
警告:下表包含了内置的Administrator账户。不要将该账户与内置的Administrators安全组混淆。如果Administrators安全组被添加了以下任何一个拒绝访问用户权限,为了更正该错误,您必须从本地登录。
此外,基于第3章“创建成员服务器基线”中的某些推荐,内置管理员账户可能已经被重命名。当添加Administrator账户时,请确信添加的是经过了重命名的账户。
表 4.18: 手动分配用户权限
警告:所有非操作系统服务账户包括整个企业范围内用于特定应用程序的服务账户。这不包括操作系统使用的内置账户:本地系统(LOCAL SYSTEM),本地服务(LOCAL SERVICE)或网络服务(NETWORK SERVICE)账户。
目录服务
运行Windows Server 2003的域控制器存储目录数据并且管理用户和域之间的交互过程,包括用户登录过程,身份验证以及目录搜索。
重新部署数据 ? Active Directory 数据库和日志文件
保护 Active Directory 数据库和日志文件的安全对于维护目录集成和系统可靠性非常重要。
如果一台域控制器被破坏,将ntds.dit、edb.log和temp.edb等文件从缺省位置移动到其它位置将有助于防止它们遭受攻击。而且,将这些文件从系统卷中转移到一个独立的物理磁盘卷可提高域控制器的性能。
因此,本指南建议:在本指南定义的三种环境下,将域控制器的 Active Directory 和日志文件从系统卷的缺省位置转移到一个非系统卷的条带或条带/镜像磁盘卷。
改变 Active Directory 日志文件大小
您应该确保环境中有足够的域控制器信息被记录和维护,这对于有效监视和维持 Active Directory 的完整性、可靠性和可用性非常重要。
您可以提高日志文件大小的上限,以便在遭受电脑黑客攻击时,为管理员提供充足的必要信息来完成审核。
因此,本指南建议:在本指南定义的三种环境下,将域控制器上目录服务(Directory Service)和文件复制服务(File Replication Service)的日志文件大小的最大值从缺省的512KB增加到16MB。
使用Syskey
在域控制器上,密码信息被存储在目录服务中,他人可以针对安全账户管理(SAM)数据库或目录服务使用密码破解软件以获取用户账户的密码,这种情况经常出现。
Syskey的使用为抵御离线密码破解软件提供了一道附加防线。Syskey使用了高级加密技术来保护存储在目录服务中的密码信息的安全。
表4.19: Syskey模式
在模式1(模糊密钥)中的所有Windows Server 2003服务器上,Syskey被启用。对于暴露于物理安全威胁之下的任何域控制器,我们有充分的理由推荐您使用模式2(控制台密码)或模式3(软盘存储Syskey密码)中的Syskey。
从安全的角度而言,首先这样似乎更明智,因为如果攻击者能够以物理方式访问到计算机,那么域控制器很容易被重新启动。模式1的Syskey使得攻击者能够读取和改变目录的内容。
然而,Syskey的模式 2 和模式 3 难以支持通过重新启动让域控制器恢复正常运行的操作要求。为了利用这些Syskey 模式提供的额外保护,必须在您的环境中执行适当的操作过程,以满足域控制器的特定可用性需求。
Syskey密码或软盘管理的后勤工作可能会十分复杂,尤其是在分支办公室。例如,要求一位部门经理或本地管理职员凌晨三点来到办公室输入密码,或者插入软盘以便让其他用户能够访问系统,这显然很费事,而且使得旨在实现高可用性的服务水平协议(SLA)的实施变得十分困难。
作为可选方案,要让您处于中央位置的IT操作人员远程提供Syskey 密码则需要附加的硬件 设备―― 有些硬件厂商可以为远程访问服务器控制台提供加载项解决方案。
最后,Syskey 密码或软盘的丢失将使得您的域控制器无法重新启动。如果Syskey 密码或软盘丢失,将没有任何能够恢复域控制器的方法。如果出现这种情况,您必须重新安装域控制器。
但是,通过使用适当的操作步骤,Syskey可提供一种高级的安全性,以便保护在域控制器中发现的敏感目录信息。
因此,如果域控制器所处的位置在物理访问方面没有安全性问题,我们建议您使用Syskey的模式 2 或模式 3。对于本指南所定义的任何三种环境下的域控制器,该建议同样适用。
创建或更新系统密钥:
1.点击“开始”菜单,点击“运行”,输入“syskey”,然后点击“确定”。
2.点击“启用加密”(Encryption Enabled),然后点击“更新”(Update)。
3.选择希望的选项,然后点击“确定”。
与DNS集成的 Active Directory
Microsoft 建议您在本指南定义的三种环境下,使用与DNS集成的 Active Directory ,部分原因在于:将这些区域集成到 Active Directory中可以简化保护DNS基础结构安全的过程。
保护 DNS 服务器
保护DNS服务器的安全对于包含 Active Directory 的任何环境都很重要。下面提供了一些有关保护DNS安全的建议和解释。
当DNS服务器遭受攻击时,攻击者的一个可能的目标就是控制对DNS客户查询做出响应的DNS返回信息。这样,客户信息便有可能会被误导到未经授权的计算机。IP欺骗和DNS缓存破坏就是这种攻击方式的一些例子。
对于IP欺骗,它利用一个授权用户的IP地址以获得对计算机或网络的访问。缓存破坏是指一台未经授权的主机将有关另一台主机的错误信息发送到DNS服务器的缓存中。攻击结果将导致客户机信息被错误地发送到未经授权的计算机。
一旦客户机无意中与未经授权的计算机开始通信,这些计算机便可能企图访问存储在客户计算机上的信息。
不是所有的攻击都集中在对DNS服务器的欺骗上。有些DoS攻击可能会改变合法DNS服务器上的记录,使其提供无效地址作为对客户查询的回应。由于服务器提供的地址是无效的,客户机和服务器便不能定位它们需要的资源,例如域控制器、Web服务器或者文件共享。
因此,本指南建议您对在这三种环境下使用的路由器进行配置,截取欺骗性质的IP数据包以确保DNS服务器的IP地址不被其他计算机所蒙骗。
配置安全的动态更新
Windows Server 2003 DNS客户机服务支持动态的DNS更新,这使得客户系统能够直接向数据库中添加DNS记录。如果服务器被配置为可接收不安全的更新信息,而攻击者使用了一台支持DDNS协议的客户机,动态DNS服务器便有可能从这台客户机接收恶意或未经授权的更新信息。
至少,攻击者可能向DNS数据库中增加伪造的项目;在最坏的情形下,攻击者可能覆盖或删除DNS服务器的合法项目。这种攻击可能导致下述情形:
将客户机引向未经授权的域控制器:当一台客户机提交一个DNS查询,请求查找域控制器地址时,一台被愚骗的DNS服务器可能会返回一台未经授权服务器的地址。然后,通过使用其它和DNS无关的攻击手段,客户机可能被错误地向一台虚假的服务器发送安全信息。
以无效地址响应DNS查询:这使得客户机和服务器互相不能定位。如果客户机不能定位服务器,它们将无法访问目录。当域控制器无法定位其他域控制器时,目录复制将终止,从而产生一种能够通过森林影响用户的DoS情形。
导致一种DoS攻击,服务器磁盘空间可能被一个填满虚假记录的巨大区域文件耗尽,或者由于增加了大量的记录项目而降低复制速度。
使用安全的DDNS更新可以保证:只有当注册请求来自于 Active Directory 森林中的有效客户机时,请求才会获得处理。这大大限制了攻击者破坏DNS服务器完整性的机会。
因此,本指南推荐在其定义的三种环境下,将DNS服务器配置为仅接受安全的动态更新。
限制到授权系统的区域传送
由于区域(zone)在DNS中的重要角色,应当可以从网络中多台DNS服务器中访问它们,以便在解析名称查询时能够提供足够的可用性和容错能力。否则,如果名称查询被发送给区域中仅有的一台服务器并且该服务器没有响应,解析过程将失败。如果希望使用更多的服务器来托管一个区域,需要使用区域传输对配置为该区域宿主的每一台服务器上的区域副本进行复制和同步。
而且,如果没有在DNS服务器上对谁可以请求区域传输进行配置,则很容易将整个DNS区域传输给任何请求者。这一目的可以很容易地通过使用诸如nslookup.exe这样的工具来实现。这些工具可以暴露整个域的DNS数据集,其中包括以下信息:哪些主机被用作域控制器、目录集成的Web服务器、或者Microsoft SQL Server? 2000数据库。
因此,本指南推荐,在其定义的三种环境下,将集成DNS服务器的 Active Directory 配置为允许区域传输,但是将其限制在可以发出传输请求的系统中。
改变事件日志和DNS服务日志的大小
您应该确保环境中有足够的域控制器信息被记录和维护,这对于有效监视DNS服务至关重要。
您可以增大DNS服务日志文件大小的最大值,以便在遭受攻击时,为管理员提供充足的必要信息来完成审核。
因此,本指南推荐在其定义的三种环境下,将域控制器中DNS服务日志文件的最大值至少配置为16MB,并且确保DNS服务中“必要时覆盖事件”(Overwrite events as needed)选项被选中,以便尽可能多地保存日志信息。
保护众所周知账户的安全
Windows Server 2003拥有许多内置的用户账户,这些账户不能被删除,但可以重命名。Windows Server 2003中两个最常见的内置账户是 Guest 和 Administrator。
缺省情况下,在成员服务器和域控制器上的 Guest 账户被禁用。请不要改变该设置。内置的 Administrator 账户应当被重命名,而且改变描述以帮助防止攻击者使用该账户破坏远程服务器。
许多恶意代码的变种企图使用内置的管理员账户来破坏一台服务器。在近几年来,进行上述重命名配置的意义已经大大降低了,因为出现了很多新的攻击工具,这些工具企图通过指定内置 Administrator 账户的安全标识(SID)来确定该帐户的真实姓名,从而侵占服务器。SID是唯一能确定网络中每个用户、组、计算机账户以及登录会话的值。改变内置账户的SID是不可能的。您可以将本地管理员账户改变为唯一的名称,以方便您的操作人员监视对该账户的攻击企图。
完成以下步骤以保护域和服务器中众所周知账户的安全:
1. 重命名Administrator和Guest账户,并且将每个域和服务器上的密码更改为长而复杂的值。
2. 在每个服务器上使用不同的名称和密码。如果在所有的域和服务器上使用相同的账户名和密码,攻击者只须获得对一台成员服务器的访问,就能够访问所有其他具有相同账户名和密码的服务器。
3. 改变缺省的账户描述,以帮助防止账户被轻易识别。
4. 将这些变化记录一个安全的位置。
注意:内置的管理员账户可以通过组策略重命名。该设置没有在DCBP中配置,因为您必须为您的环境选择一个唯一的名字。在本指南定义的三种环境下,“账户:重命名管理员账户”可以被配置为重命名管理员账户。该设置是GPO安全选项设置的一部分。
保护服务账户的安全
除非绝对必要,否则不要将一种服务配置为在域账户的安全上下文中运行。如果服务器的物理安全受到破坏,域账户密码可以很容易通过转储本地安全性授权(LSA)秘文而获得。
终端服务设置
表 4.20:设置
“设置客户机连接加密等级”用来确定在您的环境中终端服务客户机连接的加密等级。您可以使用128位加密的“高等级”(High Level)设置防止攻击者利用数据包分析器窃听终端服务的会话。有些终端客户机的旧版本不支持这种高等级加密。如果您的网络包含这种服务,请将连接的加密等级设置为:使用客户机所支持的最高加密等级来发送和接收数据。
在组策略对象编辑器(Group Policy Object Editor)中配置该设置的路径为:
Computer Configuration\Administrative Templates\Windows Components\Terminal Services\Encryption and Security.
我们提供了三种加密等级
表4.21: 终端服务加密等级
错误报告
表4.22: 设置
“错误报告”服务可以帮助Microsoft 跟踪和查找错误。您可以将该服务配置为给操作系统错误、Windows组件错误或程序错误生成报告。“错误报告”服务将这些错误通过Internet报告给Microsoft,或者报告给内部企业文件共享。
只有在Microsoft Windows? XP Professional和Windows Server 2003上可获得该设置。在组策略对象编辑器中配置该设置的路径为:
Computer Configuration\Administrative Templates\System\Error Reporting
错误报告可能包含敏感的(甚至是保密的)企业数据。Microsoft 关于错误报告的隐私政策保证 Microsoft 不会不适当地使用这些数据。但是,由于这些数据使用明文形式的超级文本传输协议(HTTP)传送,它有可能被因特网上的第三方截获或者查看。因此,本指南建议在指南定义的三种安全环境下,在DCBP中将“ 错误报告 ”设置配置为“禁用”。
用IPSec过滤器阻断端口
Internet协议安全性(IPSec)过滤器可为增强服务器所需要的安全级别提供有效的方法。本指南推荐在其定义的高安全性环境中使用该选项,以便进一步减少服务器的攻击表面。
要了解关于IPSec过滤器使用的更多信息,请参看“威胁与对策:Windows Server 2003和Windows XP中的安全性设置 ”的第11章 “其它服务器的强化程序”。
下表列举了在本指南定义的高安全性环境下,可以在域控制器上创建的IPSec过滤器。
下表列举了在本指南定义的高安全性环境下,应该在域控制器上创建的IPSec过滤器。
表4.23: 域控制器IPSec过滤器网络流量图
在执行时上表所列举的规则时,应当对其进行镜像处理。这样可以保证任何进入服务器的网络流量也可以返回到源服务器。
上表表明了服务器要完成特定角色的功能所应打开的基本端口。如果服务器拥有一个静态IP地址,这些端口已经足够。如果要提供附加功能,则可能需要打开附加端口。打开附加端口将使您的环境下的域控制器更容易管理,但是这也可能大大降低服务器的安全性。
您应当在域控制器上使用编号为Q224196的知识库文章“将Active Directory复制流量限制在特定端口上”(http://support.microsoft.com/default.aspx?scid=224196)所建议的数值。这确保了在特定端口上进行域的复制。这里再次需要从超过50 000个端口中任意选择一个用于该目的。在上例中,端口57952被选中。您可以根据需要使用一个不同的端口,但是应当在所有将执行本指南的域控制器上均进行本修改。在知识库文章所介绍的步骤被执行之后,服务器必须重新启动以便让其生效。
正如上表所示,如果环境中运行了Microsoft Operations Manager (MOM),那么在执行了IPSec过滤器的服务器和MOM服务器之间,您应该允许传输所有的网络通信。这是必需的,因为在MOM服务器和OnePoint 客户端――向MOM控制台提供报告的客户应用程序――之间存在大量的交互过程。其他管理软件也可能具有类似的需求。如果希望获得更高级别的安全性,可将OnePoint 客户的过滤动作配置就IPSec与MOM服务器进行协商。
该IPSec策略将有效地阻止通过任意高端口的通信,因此不允许远程过程调用(RPC)进行通信。这可能使得服务器的管理变得很困难。由于许多端口已经被有效关闭,您可以启用终端服务。以便管理员可以实现远程管理。
上面的网络流量图假设环境中包含启用了Active Directory 的DNS服务器。如果使用了独立的DNS服务器,您可能需要使用附加规则。
IPSec策略的执行将不会对服务器的性能带来明显影响。但是,您应该在执行这些过滤器之前进行测试,以核实服务器保持了必要的功能和性能。您可能还需要添加一些附加规则以支持其他应用程序。
注意:域控制器是一个极端动态的环境,在其上执行IPSec过滤器时应仔细评估,并且应在一个实验室环境下进行彻底测试。由于在域控制器之间存在大量的交互过程,您需要添加IPSec过滤器以允许相互复制信息的域控制器之间的所有通信。在存在许多域控制器的复杂环境下,这要求创建数十个附加的过滤器。这样,过滤器才能有效地保护域控制器。但这将使得执行和管理IPSeC策略十分困难。但是,只拥有很少域控制器的环境可以有效利用IPSec过滤器并从中获益。
本指南包括一个.cmd 文件,它简化了依照指南要求为域控制器创建IPSec过滤器的过程。PacketFilters-DC.cmd 文件使用NETSH命令来创建相应过滤器。您应当修改该.cmd 文件,让其中包含您所在环境中的域控制器的IP地址。脚本中包含两个占位符,这是为将被增加的两个域控制器IP地址所预留的。如果需要,您可以添加其它域控制器。这些域控制器的IP地址列表应当是最新的。
如果环境中有MOM,应当在脚本中指定相应 MOM 服务器的IP地址。该脚本不会创建永久性的过滤器。因此,直到IPSec Policy Agent(IPSec策略代理)被启动时,服务器才会获得保护。要了解关于建立永久过滤器或创建更高级IPSec过滤器脚本的信息,请参看本指南的姐妹篇“威胁与对策:Windows Server 2003和Windows XP中的安全性设置”中的第11章“其它成员服务器的强化程序”。最后,该脚本被配置为不分配其创建的IPSec策略。IP安全性策略管理单元可用来检查所创建的IPSec过滤器,并且分配IPSec策略以便让其生效。
总结
本章解释了在本指南定义的三种环境下保护域控制器安全所必需的服务器强化设置。这里讨论的大多数设置通过组策略加以配置和应用。您可以将对缺省域控制器策略(Default Domain Controller Policy)起到补充作用的组策略对象(Group Policy object ,GPO)链接到Domain Controllers OU(域控制器组织单元)。包括在域控制器基线策略(DCBP)中的设置可强化任何环境下的所有域控制器的总体安全性。通过使用两个GPO来确保域控制器的安全性,您可以保护缺省环境并且简化故障排除工作。
有些服务器强化设置不能通过组策略来应用。对于这种情形,本章提供了关于手动配置这些设置的详细方法。在介绍了如何保护域控制器的安全性后,本指南下面的章节将关注其它几种专用服务器角色的安全性强化措施。