Windows Server 的安全基线配置从来不是“装个杀毒软件再开个防火墙”就能交差的。很多服务器被入侵的起点,往往是一两个看似不起眼的默认配置:Administrator 账户没改名、远程桌面裸奔在公网、日志策略从未调整过、共享目录权限给得过于宽松。安全基线要解决的是“系统装完后,第一步该关掉什么、改掉什么、限制什么”的问题。下面直接按模块拆解可落地的配置项,每一条都对应真实攻击面。
账户与认证策略:先把默认入口堵死Windows Server 安装完成后,内置 Administrator 账户是攻击者爆破的首选目标。第一件事不是创建新管理员,而是先禁用或重命名内置 Administrator。在“本地安全策略 → 安全设置 → 本地策略 → 安全选项”中,将“账户:重命名系统管理员账户”改为一个无规律名称,例如“srv_op_7x”。同时新建一个低权限运维账户,仅授予必要的本地管理员组权限,日常操作使用该账户,避免直接使用重命名后的管理员账户登录。
账户锁定策略必须开启。建议设置为:账户锁定阈值 5 次无效登录,锁定时间 30 分钟,重置计数器 30 分钟。这个配置能有效阻断在线密码爆破,同时对正常用户误输密码的影响可控。密码策略方面,生产环境建议密码长度至少 12 位,启用复杂度要求,密码最长使用期限 90 天,强制密码历史 5 个。不要使用“密码永不过期”选项,除非该账户仅用于服务且无法交互登录。
Guest 账户默认必须禁用。检查所有用户账户,删除或禁用测试账户、临时账户和不再使用的服务账户。对于服务账户,应设置为“拒绝本地登录”和“拒绝通过远程桌面服务登录”,仅允许以服务方式运行。
远程访问控制:RDP 不能裸奔远程桌面(RDP)是 Windows Server 管理的主要入口,也是攻击者扫描 3389 端口后重点爆破的目标。如果业务允许,优先通过 VPN 或堡垒机访问 RDP,而不是将 3389 直接暴露在公网。如果必须公网可达,至少完成以下配置:修改默认 RDP 端口、启用网络级别身份验证(NLA)、限制允许登录的用户组、配置账户锁定策略。
修改 RDP 端口需要在注册表中调整两处:
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\PortNumber
将值改为 10000 以上的非常用端口,修改后重启 Remote Desktop Services 服务并同步调整防火墙规则。注意:仅改端口不能替代其他安全措施,但能过滤掉大量自动化扫描。
网络级别身份验证(NLA)要求客户端在建立 RDP 会话前先完成身份验证,能有效降低暴力破解和拒绝服务攻击的风险。在“系统属性 → 远程”选项卡中勾选“仅允许运行使用网络级别身份验证的远程桌面的计算机连接”。同时,在“本地安全策略 → 用户权限分配”中,将“允许通过远程桌面服务登录”仅保留给指定的运维用户组,移除 Everyone 和 Users 组。
防火墙与网络策略:默认拒绝,按需放行Windows 防火墙必须保持开启状态,三个配置文件(域、专用、公用)都应启用。入站规则采用“默认阻止,按需放行”原则。只放行业务必需的端口,例如 80/443 用于 Web 服务、1433 用于 SQL Server(如果必须远程访问)、修改后的 RDP 端口等。每条入站规则应限制源 IP 地址范围,而不是对所有 IP 开放。
出站规则同样需要关注。很多恶意程序在获取权限后会主动连接外部 C2 服务器。建议默认允许出站,但对关键服务器可配置更严格的出站限制,例如仅允许 DNS、NTP、系统更新和业务必需的出站连接。至少应监控异常出站流量。
对于 IIS 服务器,只开放 80 和 443 端口,关闭其他所有不必要的端口。SQL Server 服务器不应将 1433 直接暴露在公网,应通过应用层访问数据库,或使用 Windows 防火墙限制仅允许应用服务器 IP 访问数据库端口。
审计与日志策略:没有日志等于裸奔安全基线中审计策略经常被忽略,但日志是事后溯源和发现入侵行为的核心依据。建议启用以下审计策略:
审核账户登录事件:成功、失败 审核账户管理:成功、失败 审核登录事件:成功、失败 审核对象访问:失败 审核策略更改:成功、失败 审核特权使用:成功、失败 审核进程跟踪:失败 审核系统事件:成功、失败
这些策略可通过“本地安全策略 → 安全设置 → 本地策略 → 审核策略”配置,也可通过组策略统一部署。日志大小需要调整,默认的日志容量太小,容易被刷满后停止记录。建议将安全日志大小设置为 1GB 以上,覆盖策略设置为“按需覆盖事件”或“覆盖早于 30 天的日志”。
对于关键文件和数据目录,应启用对象访问审计。例如对 Web 目录、数据库文件、配置文件设置 SACL,记录删除、写入、修改权限等操作。这样在发生篡改或勒索加密时,能追溯到具体账户和进程。
用户权限分配:收紧高风险权限用户权限分配中的很多默认设置过于宽松。需要重点检查以下几项:
“作为服务登录”权限应仅授予明确需要的服务账户,移除不必要的账户。“允许本地登录”权限应限制为管理员组和特定运维账户,普通用户不应有本地登录权限。“关闭系统”权限应仅保留管理员组。“从网络访问此计算机”权限应移除 Everyone 和 Guests 组,仅保留 Authenticated Users 和必要的服务账户。“拒绝从网络访问这台计算机”应添加 Guests 组和所有不需要网络访问的本地账户。
“调试程序”权限默认仅授予管理员,但需要确认没有普通用户被授予此权限。该权限可被利用来窃取系统进程内存中的敏感信息。“加载和卸载设备驱动程序”权限同样应仅限管理员。
服务与组件加固:减少攻击面Windows Server 默认启用了一些不必要的服务。建议禁用或停止以下服务(根据业务需求确认):Print Spooler(除非需要打印功能)、Remote Registry、Server(如果服务器不作为文件共享服务器)、Workstation(如果不需要访问网络共享)、Windows Search、Xbox 相关服务、蓝牙支持服务等。禁用 Remote Registry 服务尤其重要,它能阻止远程修改注册表的攻击行为。
对于 IIS 服务器,应移除不必要的 IIS 组件和模块,仅保留业务所需的功能。关闭目录浏览,禁用 WebDAV,限制上传目录的执行权限。应用程序池应使用独立账户运行,并设置最小权限。对于 .NET 应用,应定期更新框架版本,关闭调试模式和详细错误信息输出。
对于 SQL Server,应使用专用服务账户运行,不授予该账户本地管理员权限。删除或禁用 sa 账户,使用 Windows 身份验证模式或强密码的 SQL 账户。限制 xp_cmdshell 等扩展存储过程的权限,默认关闭。
文件系统与共享权限:最小权限原则文件系统权限配置错误是数据泄露和篡改的常见原因。系统盘根目录、Windows 目录、Program Files 目录的权限应保持默认,不要随意添加 Users 组的写入权限。业务数据目录应单独分区,按需授予权限。例如 Web 站点目录应仅授予 IIS 应用程序池账户读取和执行权限,上传目录单独设置写入权限,且禁止脚本执行。
共享文件夹应关闭默认共享(C$、ADMIN$、IPC$ 等)。这些管理共享默认开启,虽然需要管理员权限才能访问,但仍是攻击者横向移动的利用点。可通过注册表关闭:
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\AutoShareServer = 0 HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\AutoShareWks = 0
对于必须保留的共享,应明确设置共享权限和 NTFS 权限,两者取交集生效。共享权限建议仅授予特定组,NTFS 权限按最小权限原则配置。定期检查共享文件夹,删除不再使用的共享。
补丁与更新管理:漏洞修复的底线安全基线配置得再完善,如果系统不打补丁,一个远程代码执行漏洞就能全部击穿。生产环境应建立补丁管理流程:每月微软补丁日后的测试窗口内,先在测试环境验证补丁兼容性,再推送到生产环境。对于紧急高危漏洞,应启动应急补丁流程,缩短测试周期。
Windows Update 应配置为自动下载并通知安装,或通过 WSUS 集中管理。不要完全关闭自动更新,否则容易遗漏关键安全补丁。对于无法立即打补丁的系统,应通过防火墙规则、禁用相关服务或部署虚拟补丁等方式进行临时缓解。
安全基线验证与持续监控配置完成后,需要进行验证。可使用 Microsoft Security Compliance Toolkit 中的基线分析工具,对比当前配置与推荐基线的差异。也可使用脚本定期检查关键配置项,例如账户锁定策略、防火墙状态、审计策略、服务状态等,输出报告。
持续监控比一次性配置更重要。建议部署日志集中收集方案,将安全日志、系统日志、应用程序日志集中存储和分析。设置关键事件的告警规则,例如多次登录失败、账户被锁定、安全策略被修改、服务异常停止等。定期复查基线配置,防止配置漂移。
