旧版共享协议为什么必须关
第一代 SMB 协议设计年代久远,缺少现代安全机制,并且是历史上影响最大的蠕虫漏洞的传播通道:攻击者无需凭据即可在网内横向移动。现代 Windows 环境已经不需要它来支撑日常共享,所以处置方式很明确——服务端与客户端两侧都关闭。仅处理服务器侧是不够的:本机去访问还停留在旧协议的设备时,客户端组件同样会被利用。
基本信息
| 加固项 | 旧版 SMB 协议全面禁用 |
|---|---|
| 适用平台 | Windows 10/11 与 Windows Server 2016+ |
| 风险等级 | 高 |
| 基线 | 服务端与客户端组件均处于禁用状态 |
| 生效方式 | 功能禁用通常需要重启或重新启动相关服务 |
典型使用场景
- 勒索防护:切断最常见的横向移动通道
- 合规整改:协议收敛是入侵防范条款的常见检查项
- 事件排查:确认传播路径是否已被切断
- 兼容性治理:清理仍依赖旧协议的老旧设备
- 批量下发:通过组策略统一配置,避免各机状态不一
核查
核查
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol | Select-Object FeatureName, State
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol,EnableSMB2Protocol
Get-WindowsOptionalFeature -Online | Where-Object FeatureName -like 'SMB1*' | Select-Object FeatureName,State禁用(服务端与客户端)
禁用(服务端与客户端)
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client -NoRestart
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol # 复核
Restart-Service -Name LanmanServer -Force # 或按计划重启系统检查项读法
| 检查项 | 含义 | 判读要点 |
|---|---|---|
| 功能状态 | 协议功能是否启用 | 应处于禁用状态,启用即为不符合 |
| 服务端开关 | 共享服务是否接受该协议 | 即使功能禁用也建议确认为否 |
| 客户端组件 | 本机访问老设备时是否使用该协议 | 两侧都要处理,只关一侧不完整 |
| 兼容性依赖 | 老旧设备与业务软件 | 关闭前先统计真实使用方 |
关闭后老旧设备连接报错属预期成本:变更前先用审计方式找出真实使用方,通知相关业务方并留回退方案,避免在业务高峰期被动回滚。回退方案只需要说明如何重新启用,不必真的长期保留旧协议。
两侧都要处理:只关闭服务器侧,本机在访问仍使用旧协议的设备时依然会启用客户端组件,攻击面并未消除。另外禁用在部分系统上需要重新启动相关服务或重启系统才完全生效,核查时要确认状态已是最终结果。
怎么找真实使用方
最稳妥的做法是先开审计再关闭:在共享服务侧启用相关审计,观察一段时间内的连接来源与协议版本,得到一份「谁还在用旧协议」的清单,然后逐台协调处理。没有这一步就关闭,容易在夜里把某台老设备或某条老旧业务链路打断,而排查方向又容易被误判为网络故障。