Windows服务器安全组策略配置的薄弱环节往往集中在默认规则未收紧、入站端口过度开放、以及管理员账户暴露面过大这三个方面。很多运维人员装完系统后直接放行全部入站连接,或者只关闭了135、139、445等几个常见高危端口,却忽略了远程桌面、WinRM、以及本地安全策略中对账户锁定和审计策略的同步配置。安全组策略不是单一防火墙规则,而是网络层过滤、本地安全策略、账户策略、审计策略四层联动的结果。下面直接按实际加固顺序展开。
先收紧网络层入站规则,只保留明确需要的端口
Windows防火墙的入站默认行为应当设置为“阻止所有连接”,然后按业务需求逐条放行。不要使用“允许所有”作为基础规则,否则后续添加的阻止规则很容易被绕过。具体操作可以通过高级安全Windows防火墙控制台,或者直接用PowerShell批量配置。以下命令将默认入站策略改为阻止,并保留出站允许:
Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultInboundAction Block Set-NetFirewallProfile -Profile Domain,Public,Private -DefaultOutboundAction Allow
放行远程桌面时,不要直接对0.0.0.0/0开放3389。如果管理端IP固定,应将远程地址限制为指定IP段。若管理端IP不固定,至少应通过跳板机或堡垒机中转,服务器安全组只放行跳板机IP。对于Web服务器,仅放行80和443;对于数据库服务器,仅放行内网应用服务器IP访问1433或3306。禁止在公网安全组中放行数据库端口,这是最常见也最危险的配置错误。
用安全组规则替代本地防火墙的重复配置
云环境中的安全组和Windows防火墙功能有重叠,但不应互相替代。安全组工作在虚拟网络边缘,Windows防火墙工作在操作系统内部。正确的做法是:安全组负责粗粒度网络隔离,例如只允许负载均衡器IP访问Web端口;Windows防火墙负责细粒度控制,例如限制特定服务账户的网络访问。两者叠加后,即使安全组被误操作放行,Windows防火墙仍能提供第二层防护。配置时要注意,安全组规则过多会导致管理混乱,建议按“服务-来源-端口”命名规则统一管理,例如“Web-公网-443”、“DB-内网应用-1433”。
锁定本地管理员账户与远程登录权限
Administrator账户默认拥有最高权限,且无法被锁定,是暴力破解的首选目标。加固的第一步是重命名Administrator账户,并创建一个低权限的日常管理账户。重命名操作可以在本地安全策略的“本地策略-安全选项”中找到“账户:重命名系统管理员账户”,也可以直接用PowerShell执行:
Rename-LocalUser -Name "Administrator" -NewName "SysAdmin"
同时,应禁用Guest账户,并检查是否存在其他具有管理员权限的本地账户。对于远程桌面登录,建议通过“允许通过远程桌面服务登录”用户权限分配,仅授予指定的管理组或专用跳板账户,而不是默认的Administrators组全员可登录。这样即使某个管理员账户泄露,攻击者也未必能直接远程登录。
配置账户锁定策略,阻断在线暴力破解
账户锁定策略是防止RDP和SMB暴力破解最直接有效的手段。很多服务器没有配置账户锁定,攻击者可以无限次尝试密码。建议在本地安全策略的“账户策略-账户锁定策略”中设置:账户锁定阈值为5次无效登录,锁定时间为30分钟,重置计数器时间为30分钟。这样连续5次密码错误后账户自动锁定,暴力破解基本无法继续。配置命令如下:
net accounts /lockoutthreshold:5 /lockoutduration:30 /lockoutwindow:30
需要注意的是,如果服务器加入了域,应优先在域控的组策略中配置,避免本地策略与域策略冲突。对于暴露在公网的服务器,锁定阈值可以进一步降低到3次,但需确保不会因用户误输入导致正常账户频繁锁定。
限制远程桌面和WinRM的访问来源
远程桌面服务本身没有内置IP白名单功能,但可以通过Windows防火墙的远程地址限制来实现。在入站规则“远程桌面-用户模式(TCP-In)”的属性中,将“远程IP地址”从“任何IP地址”改为“下列IP地址”,然后添加允许的管理端IP或IP段。WinRM同样需要限制,默认情况下WinRM可能监听5985和5986端口,若不需要远程管理,应直接禁用WinRM服务;若必须使用,应限制监听地址和信任主机。以下命令禁用WinRM:
Disable-PSRemoting -Force Stop-Service WinRM -Force Set-Service WinRM -StartupType Disabled
如果业务需要WinRM,至少应配置HTTPS监听并使用证书认证,同时在防火墙中限制5986端口的来源IP。
审计策略要开启,但不要只开不查
安全组策略配置完成后,必须开启审计才能发现异常登录和配置变更。建议在本地安全策略的“高级审核策略配置”中启用以下关键项:登录/注销的成功和失败事件、账户登录的成功和失败事件、账户管理的成功事件、策略更改的成功事件。这些日志会记录谁在什么时间从哪个IP登录成功或失败,以及谁修改了安全策略。仅开启审计不够,还需要定期检查事件日志,或者将日志集中到SIEM系统中。对于Windows服务器,事件ID 4625代表登录失败,4624代表登录成功,4672代表特殊权限登录。如果发现大量4625事件来自同一IP,应立即在防火墙或安全组中封禁该IP。
禁用不必要的服务与网络协议
Windows服务器默认会启用一些不必要的服务,例如Print Spooler、Remote Registry、Server服务等。Print Spooler曾多次出现提权漏洞,如果服务器不承担打印服务,应直接禁用。Remote Registry允许远程修改注册表,风险极高,应禁用。Server服务如果不需要文件共享,也可以禁用,这能直接关闭445端口。禁用服务的PowerShell命令如下:
Stop-Service Spooler -Force Set-Service Spooler -StartupType Disabled Stop-Service RemoteRegistry -Force Set-Service RemoteRegistry -StartupType Disabled
对于SMBv1,必须彻底禁用。SMBv1存在严重漏洞且早已过时,Windows Server 2016及以上版本默认禁用,但如果是旧系统或手动开启过,需要检查并关闭。可以通过以下命令检测和禁用:
Get-SmbServerConfiguration | Select EnableSMB1Protocol Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
同时,NetBIOS over TCP/IP也应关闭,尤其是在不需要旧式名称解析的环境中。这可以在网络适配器的高级TCP/IP设置中关闭,或者通过注册表禁用。
用本地安全策略限制网络访问权限
除了防火墙,本地安全策略中的“用户权限分配”和“安全选项”也能限制网络访问。例如“从网络访问此计算机”应仅保留Administrators和Authenticated Users,移除Everyone和Guest。“拒绝从网络访问这台计算机”应添加Guest账户和任何不需要远程访问的本地账户。安全选项中的“网络访问:不允许匿名枚举SAM账户和共享”应设置为启用,防止攻击者枚举账户列表。“网络访问:可远程访问的注册表路径”应清空或仅保留必要的路径。这些配置能显著减少攻击面,且不依赖防火墙规则。
定期复查安全组规则与策略一致性
安全组策略配置不是一次性工作。业务变更、临时放行规则、测试配置都可能留下隐患。建议每季度复查一次安全组规则,删除不再使用的规则,检查是否存在过于宽泛的放行条目。同时对比云安全组与Windows防火墙规则,确保两者没有冲突或冗余。对于关键服务器,可以编写脚本定期导出防火墙规则和安全策略,与基线版本对比,发现异常变更立即告警。这种持续性的配置管理比单次加固更能有效降低风险。
Windows服务器安全组策略加固的核心逻辑是:默认拒绝、最小授权、分层防护、持续审计。网络层安全组做第一道过滤,Windows防火墙做第二道过滤,本地安全策略和账户策略限制登录行为,审计策略记录所有关键操作。四层同时收紧,才能真正把终端访问风险降到可控范围。
