Windows服务器安全域控制器(Domain Controller,简称DC)是企业Active Directory环境的核心,一旦被攻破,整个域内所有用户、计算机、数据都将面临失控风险。安全基线与组策略(Group Policy)是加固域控制器最直接、最有效的两大手段——安全基线解决"应该配成什么样"的问题,组策略解决"怎么批量强制执行"的问题。本文直接给你一套可落地的配置方案,涵盖账户策略、审核策略、网络策略、服务管理、注册表加固等维度,全部基于微软官方安全基线和行业最佳实践。
一、为什么域控制器必须单独做安全基线
普通Windows服务器和域控制器的安全要求完全不同。域控制器存储着所有用户哈希、Kerberos票据、组策略对象,攻击者拿到域管权限就等于拿到整个企业的钥匙。微软在Security Compliance Toolkit中提供了专门针对域控制器的基线模板(Domain Controller Security Baseline),建议直接下载导入使用。不要用通用服务器基线套用在DC上,那样会遗漏大量域特有的风险点,比如NTLM认证、LDAP签名、SYSVOL共享权限等。
二、账户策略:锁死暴力破解的入口
账户策略是第一道防线,通过组策略路径"计算机配置→Windows设置→安全设置→账户策略"进行配置,核心参数如下:
密码策略:最小密码长度设为14位,密码必须符合复杂性要求(大写、小写、数字、特殊字符),密码最长使用期限不超过90天,密码最短使用期限设为1天(防止用户立刻改回旧密码),强制密码历史记录24次。这些值在域级别统一生效,不要在个别OU上放松。
账户锁定策略:账户锁定阈值设为5次无效登录,账户锁定时间设为30分钟,复位账户锁定计数器设为30分钟。这三个值配合起来,能有效遏制在线暴力破解。注意:域管理员账户建议单独设更严格的锁定策略,或者直接禁用在线登录,只允许控制台登录。
Kerberos策略:最大票据年龄设为10小时,最大可续订年龄设为7天,服务票据最大年龄设为600分钟。这些值控制Kerberos票据的生命周期,越短越安全,但要兼顾业务可用性。
三、审核策略:让每一次异常都有迹可循
审核策略配置路径同样在"安全设置→本地策略→审核策略"。域控制器上必须开启的审核项包括:审核登录事件(成功和失败都要)、审核账户登录事件、审核账户管理、审核策略更改、审核对象访问(针对SYSVOL和NTDS.dit)、审核特权使用、审核系统事件。特别要强调的是,审核"特权使用"和"策略更改"能帮你第一时间发现横向移动和权限提升行为。
审核日志大小也要注意,默认的日志大小在高负载DC上很快就会被覆盖。建议通过组策略将安全日志最大值设为1GB以上,路径为"计算机配置→Windows设置→安全设置→本地策略→安全选项"中的"审核:安全日志的最大大小"。
四、网络与服务层面的硬核加固
域控制器上不应该运行任何非必要的服务。通过"服务"控制台或PowerShell逐一排查,关闭以下服务:Print Spooler(除非这台DC兼做打印服务器)、Remote Registry、Xbox相关服务、Fax服务、Bluetooth支持服务等。每个多余的服务都是一个潜在攻击面。
网络层面,域控制器不应启用NetBIOS over TCP/IP,SMBv1必须禁用(这是WannaCry等勒索病毒的传播通道)。LDAP签名和LDAP通道绑定(Channel Binding Token)必须强制开启,防止中继攻击。具体操作:在注册表中设置LDAPServerIntegrity为2,LDAPChannelBindingTokenRequired为1。
reg add "HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" /v LDAPServerIntegrity /t REG_DWORD /d 2 /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" /v LDAPChannelBindingTokenRequired /t REG_DWORD /d 1 /f
五、组策略对象(GPO)的部署与管理规范
域控制器的安全策略不要直接在本地编辑,而是创建专用的GPO链接到Domain Controllers OU。推荐至少创建三个层级的GPO:第一层是"DC基础安全基线",覆盖账户、审核、网络;第二层是"DC高级加固",覆盖注册表、服务、防火墙规则;第三层是"DC监控与响应",部署日志转发、实时告警等。
GPO的应用顺序很重要,使用"组策略管理控制台(GPMC)"查看链接顺序,确保没有冲突。如果某个策略被多个GPO覆盖,遵循"后应用的覆盖先应用的"原则。建议使用GPMC的"建模"功能提前模拟策略效果,避免上线后出现意外。
另外,必须限制谁能修改域控制器相关的GPO。默认只有Domain Admins和Enterprise Admins有权限,建议通过委派将GPO编辑权限进一步收窄,只给专门的安全运维团队。路径在GPMC中右键GPO→委派→高级→添加特定安全组。
六、注册表层面的关键加固项
除了前面提到的LDAP相关设置,还有几个关键注册表项需要配置:禁用匿名SID枚举(RestrictAnonymousSAM设为1)、禁用匿名枚举共享(RestrictAnonymous设为1)、启用SMB签名(RequireSecuritySignature设为1)、关闭WDigest认证(UseLogonCredential设为0,防止明文密码驻留内存)。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v RestrictAnonymousSAM /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v RestrictAnonymous /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" /v RequireSecuritySignature /t REG_DWORD /d 1 /f reg add "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest" /v UseLogonCredential /t REG_DWORD /d 0 /f
七、SYSVOL和NTDS.dit的权限保护
SYSVOL是组策略文件的共享存储,NTDS.dit是Active Directory数据库文件,这两个目录的权限一旦被篡改,后果极其严重。SYSVOL共享权限应只允许Domain Computers和Domain Admins读取,NTDS.dit文件只允许SYSTEM和Administrators完全控制。通过组策略中的"文件系统"策略可以强制这些权限,也可以用icacls命令手动加固。
icacls "C:\Windows\SYSVOL\sysvol" /inheritance:r /grant "DOMAIN\Domain Computers:(RX)" /grant "DOMAIN\Domain Admins:(F)" icacls "C:\Windows\NTDS\NTDS.dit" /inheritance:r /grant "NT AUTHORITY\SYSTEM:(F)" /grant "BUILTIN\Administrators:(F)"
八、持续监控与基线漂移检测
安全基线不是一次性配置,必须持续监控。推荐使用微软的Microsoft Defender for Identity(原ATP)对域控制器进行行为分析,它能检测Pass-the-Hash、Golden Ticket、DCShadow等高级攻击。同时,使用PowerShell脚本定期对比当前配置与基线模板的差异,发现漂移立即告警。
可以写一个简单的检测脚本定期运行:
$baseline = Import-Clixml "DC_Baseline_Export.xml" $current = Get-GPResultantSetOfPolicy -ReportType XML -Path "C:\temp\current_gpo.xml" Compare-Object -ReferenceObject $baseline -DifferenceObject $current -Property Name, Value
九、常见误区与实战建议
很多企业犯的错误是:把域控制器当普通服务器管理,装了各种业务软件;或者为了方便,把域管账户日常登录使用。正确做法是:域控制器专机专用,域管账户只在跳板机上使用,日常运维用受限权限账户。另外,至少部署两台域控制器做冗余,主DC出问题时辅DC能接管,但两台都要同等加固。
还有一个容易忽略的点:时间同步。域控制器之间时间偏差超过5分钟会导致Kerberos认证失败,攻击者可以利用这一点绕过认证。确保所有DC都指向可靠的NTP源,并通过组策略强制时间同步。
总结来说,Windows域控制器的安全加固是一个系统工程,安全基线定标准,组策略做执行,注册表补细节,监控体系保持续。不要指望单一措施就能防住所有威胁,必须分层防御、纵深防护,把每一个可能的攻击面都堵上。
