以下是一份详细的 Windows Server 安全加固步骤与建议,涵盖系统配置、网络防护、权限管理、日志监控等核心环节,帮助抵御常见攻击并符合安全合规要求:
1. 系统基础加固
1.1 更新与补丁
- 强制启用自动更新
# 配置自动下载并安装更新(适用于Server 2016+) Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoUpdate" -Value 0 Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUOptions" -Value 4
- 手动检查更新
Install-Module PSWindowsUpdate -Force # 安装模块后执行 Get-WindowsUpdate -Install -AcceptAll # 检查和安装所有更新
1.2 卸载不必要的组件
- 通过 服务器管理器 移除未使用的角色与功能(如Telnet客户端、IIS、SMBv1)。
- 禁用老旧协议:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol # 禁用SMBv1
2. 账户与身份安全
2.1 账户策略
-
重命名默认账户
Rename-LocalUser -Name "Administrator" -NewName "SecAdmin" Disable-LocalUser -Name "Guest" # 务必禁用Guest账户
-
密码策略(组策略)
路径:计算机配置 > Windows设置 > 安全设置 > 账户策略 > 密码策略
- 密码最短长度:12字符
- 密码最长使用期限:60天
- 强制密码历史:24次
- 密码复杂度:启用(包含大小写、数字、特殊符号)
-
账户锁定策略
- 账户锁定阈值:5次失败登录
- 锁定时间:30分钟
2.2 特权管理
- 最小权限原则
- 为管理员创建独立账户,禁止日常使用高权限账户。
- 使用 LAPS(Local Administrator Password Solution) 管理本地管理员密码:
# 安装并配置LAPS(需域环境) Import-Module AdmPwd.PS Update-AdmPwdADSchema # 扩展AD架构 Set-AdmPwdComputerSelfPermission -Identity "OU=Servers,DC=domain,DC=com" # 授权计算机对象
- 禁用特权滥用
- 通过组策略限制本地管理员权限:
拒绝本地登录
、拒绝通过远程桌面服务登录
。
- 通过组策略限制本地管理员权限:
3. 服务与端口加固
3.1 关闭高危服务
- 禁用非必要服务(示例):
Stop-Service -Name "Telnet" -Force Set-Service -Name "Telnet" -StartupType Disabled # 其他常见禁用服务:SNMP、RemoteRegistry、Spooler(无打印需求时)
3.2 防火墙配置
- 仅允许必要端口
# 示例:限制RDP仅允许内网IP访问(自定义端口) New-NetFirewallRule -DisplayName "Allow RDP" -Direction Inbound -Protocol TCP -LocalPort 53389 -RemoteAddress 192.168.1.0/24 -Action Allow
- 默认阻断所有入站
配置入站规则默认阻止,仅显式允许所需流量。
4. 日志与监控
4.1 启用详细审核
- 组策略审核策略
路径:计算机配置 > 安全设置 > 高级审核策略配置
- 审计账户登录事件:成功/失败
- 审计对象访问:成功
- 审计进程创建:启用(记录命令行参数)
4.2 日志集中管理
- 配置Windows事件转发(WEF)
将多台服务器的日志集中到一台收集服务器(需配置订阅)。 - 设置日志保留策略
wevtutil set-log Security /maxsize:268435456 # 256MB wevtutil set-log Security /retention:true # 覆盖旧日志
4.3 入侵检测工具
- 部署 Microsoft Defender for Endpoint 或 CrowdStrike Falcon 监控异常进程、网络活动。
5. 文件系统与权限
5.1 NTFS权限最小化
- 移除敏感目录(如
C:\
根目录)的Everyone
组权限:icacls C:\ /remove "Everyone" /T /C # 递归移除 icacls D:\Data /grant "Domain Admins:(OI)(CI)F" # 细化目录权限
5.2 启用BitLocker加密
# 启用BitLocker(需TPM芯片支持)
Enable-BitLocker -MountPoint "C:" -EncryptionMethod XtsAes256 -UsedSpaceOnly
6. 网络协议加固
6.1 禁用弱加密算法
- 配置SCHANNEL协议(组策略):
路径:计算机配置 > 管理模板 > 网络 > SSL配置设置
- 禁用SSLv2、SSLv3、TLS 1.0/1.1
- 启用TLS 1.2/1.3
- 禁用弱密码套件(如RC4、DES)
6.2 SMB安全配置
- 启用SMB签名(强制完整性验证):
Set-SmbServerConfiguration -RequireSecuritySignature $true -Force
7. 应用与脚本控制
7.1 限制PowerShell执行
# 设置执行策略为RemoteSigned
Set-ExecutionPolicy RemoteSigned -Force
# 禁用危险模块(如PSExec)
Disable-WindowsOptionalFeature -Online -FeatureName MicrosoftWindowsPowerShellV2
7.2 应用白名单
- 使用AppLocker或WDAC
<!-- WDAC示例策略:仅允许微软签名应用 --> <FileRules> <FileRuleRef RuleID="ID_ALLOW_MICROSOFT" /> </FileRules>
8. 物理与灾难恢复
8.1 BIOS/UEFI安全
- 设置BIOS密码,禁用USB启动和外设。
- 启用Secure Boot防止未签名驱动加载。
8.2 定期备份验证
- 使用 Veeam Backup 或 Windows Server Backup 进行全量备份:
Install-WindowsFeature Windows-Server-Backup wbadmin start backup -backupTarget:E: -allCritical -quiet
- 每季度测试恢复流程,确保备份有效性。
9. 合规与自动化
9.1 使用安全基线
- 下载 Microsoft Security Compliance Toolkit 导入符合CIS基准的GPO模板。
- 运行 CIS-CAT Pro 扫描并修复配置偏差。
9.2 自动化加固工具
- Ansible/PowerShell DSC
编写自动化脚本批量配置服务器:# Ansible示例:禁用SMBv1 - name: Disable SMBv1 win_feature: name: FS-SMB1 state: absent
10. 持续监控与响应
- 部署SIEM工具(如Elastic Stack、Splunk)关联分析日志。
- 定期红队演练:使用Metasploit模拟攻击验证防御有效性。
注意事项
- 先测试后上线:所有配置在非生产环境验证后再部署。
- 分层防御:综合防火墙、EDR、日志分析、权限管控形成纵深防御。
- 文档记录:保留所有变更记录,便于审计与回溯。
通过上述步骤,可显著降低Windows Server的受攻击面,并满足多数安全合规框架(如ISO 27001、NIST)的要求。