Windows Server 2025 的标准版和数据中心版都支持 SMB over QUIC,这标志着「文件服务」角色的重大进步。虽然 SMB over QUIC 是未来趋势,但传统的传输方式仍将继续保留。
在 Windows Server 2025 中,为了增强传统 SMB over TCP 或 RDMA 的安全性,微软为其引入了多项新安全机制。
Windows Server 2025 文件服务安全增强(SMB、NTLM)
禁用 SMB 的 NTLM 身份验证
默认情况下,客户端和服务器之间会通过 SPNEGO 协议进行协商,以确定要使用的身份验证方式。通常,在域成员计算机之间的连接中,系统会优先选择 Kerberos 验证。
但在以下特定情况下,可能会回退到使用 NTLM 认证:
- 客户端通过 IP 地址而非 FQDN 建立连接时;
- SMB 服务器未在域中注册相应的 Kerberos CIFS 服务名称时;
- 用户使用本地用户账户(非域账户)登录 SMB 服务器时。
随着时间的推移,Kerberos 验证的增强功能预计将逐步替代 NTLM。为了推动这一变革,在 Windows Server 2025 中,管理员可以选择禁用 SMB 的 NTLM 身份验证。
如果遇到必须使用 NTLM 验证的场景,而管理员又禁止 SMB 连接使用 NTLM,将会无法建立 SMB 连接,从而导致连接失败。
方法 1:使用组策略禁用 SMB NTLM 验证并设置例外
在 Windows 11 和 Windows Server 2025 中,要禁止 SMB 客户端在建立连接时采用 NTLM 验证,可以更改以下组策略:
1在组策略中导航至「计算机配置」>「管理模板」>「网络」>「Lanman 工作站」。
2找到并启用「阻止 NTLM(LM、NTLM、NTLMv2)」策略。
3如果环境中存在必须使用 NTLM 的特定服务器,可以启用「阻止 NTLM 服务器例外列表」策略并设置例外。
方法 2:使用 PowerShell 限制 NTLM 验证
PowerShell 提供了一个灵活的管理 SMB NTLM 验证的方式。管理员可以通过 PowerShell 命令,在 SMB 服务器上禁用 NTLM 验证,既可以全局设置,也可以针对特定的服务器。
- 禁用所有或指定 SMB 服务器的 NTLM 验证:
Set-SmbClientConfiguration -BlockNTLM $true
该命令会在全局范围内关闭 SMB 客户端的 NTLM 身份验证功能。
- 对特定 UNC 路径限制 NTLM 认证:
New-SmbMapping -RemotePath \\server\\share -BlockNTLM $true
上述命令会对指定的服务器和共享路径创建一个新的 SMB 映射,并关闭其 NTLM 验证。
- 要查询当前 SMB 客户端的 NTLM 验证状态,可以执行:
Get-SmbClientConfiguration | Select-Object BlockNTLM
- 要检查特定 SMB 映射的 NTLM 验证状态,可使用:
Get-SmbMapping | Select-Object RemotePath, BlockNTLM
对 net use 命令的更新:
在 Windows 11 和 Windows Server 2025 中,net use
命令现在也支持对 NTLM 身份验证方式进行控制。通过新增的/blockntlm
选项,我们可以明确设置是否允许使用 NTLM 认证:
net use \\server\share /user:username password /blockntlm:no
当使用/blockntlm:no
参数时,将启用 NTLM;使用/blockntlm:yes
,则会禁止 NTLM 验证。
限制 NTLM 登录尝试的频率
如果有攻击者获取到用户名列表,就可以在很短的时间间隔内向 SMB 服务器发送 NTLM 登录尝试。虽然管理员可以设置「账户锁定策略」来限制一定时间内的登录尝试次数,但该功能可被用于 DoS 拒绝服务攻击。
Windows Server 2025 引入了「身份验证速率限制器」策略,以防止滥用 SMB NTLM 身份验证。它定义了两次登录尝试之间必须间隔的时间,能有效减缓自动攻击的频率,并显著延暴力猜解密码的时间。
1在组策略中导航至「计算机配置」>「管理模板」>「网络」>「Lanman 服务器」。
2找到并启用「身份验证速率限制器」策略。
策略中不能直接配置无效登录尝试的时间间隔,需要通过 PowerShell 来完成:
- 查看 SMB 服务器当前配置:
Get-SmbServerConfiguration | Select-Object InvalidAuthenticationDelayTimeInMs
- 设置登录尝试之间的时间间隔,微软的建议为 2000 ms:
Set-SmbServerConfiguration -InvalidAuthenticationDelayTimeInMs <milliseconds>
采用这种方法,既能保持系统安全,又能避免大规模账户锁定的情况发生。
指定 SMB 协议版本
默认情况下,Windows 允许使用所有 SMB 协议版本。为了加强安全性,Windows Server 2025 可以强制指定允许的 SMB 协议(最低和最大)版本。
方法 1:使用组策略指定 SMB 协议版本
1相关组策略设置可以在以下路径中找到:
- SMB 客户端:「计算机配置」>「管理模板」>「网络」>「LanMan 工作站」
- SMB 服务器:「计算机配置」>「管理模板」>「网络」>「LanMan 服务器」
2配置「强制实施 SMB 的最大版本」和「强制实施 SMB 的最低版本」策略。
方法 2:使用 PowerShell 指定 SMB 协议版本
管理员也可以通过以下 PowerShell 命令来查看或指定 SMB 协议的最低和最大版本:
- SMB 客户端配置命令:
#查看
Get-SmbClientConfiguration | Select Smb2DialectMin,Smb2DialectMax
#设置
Set-SmbClientConfiguration -Smb2DialectMin SMB202 -Smb2DialectMax SMB311
- SMB 服务器配置命令:
#查看
Get-SmbServerConfiguration | Select Smb2DialectMin,Smb2DialectMax
#设置
Set-SmbServerConfiguration -Smb2DialectMin SMB202 -Smb2DialectMax SMB311
Smb2DialectMin
和Smb2DialectMax
参数可设置为从 SMB202(即 SMB 2.0.2)到 SMB311(即 SMB 3.1.1)的任何版本。通过这种方式,管理员能够确保网络中的设备符合最新的安全标准。
默认启用 SMB 签名
在以往,只有与域控制器的连接才需要 SMB 签名。现在,微软决定在客户端和服务器上默认启用 SMB 签名,以抵御中间人攻击和防止数据被篡改。
由于可能会与老旧系统存在兼容性问题,这一决定被推迟了。但是,管理员仍需为这一变化做好准备。
当遇到不支持 SMB 签名的系统,需要保持兼容性时,管理员可以通过 PowerShell 命令来查看或禁用 SMB 签名:
- 查看和禁用客户端 SMB 签名:
#查看
Get-SmbClientConfiguration | Select-Object RequireSecuritySignature
#禁用
Set-SmbClientConfiguration -RequireSecuritySignature $false
- 查看和禁用服务器 SMB 签名:
#查看
Get-SmbServerConfiguration | Select-Object RequireSecuritySignature
#禁用
Set-SmbServerConfiguration -RequireSecuritySignature $false
要在组策略中修改 SMB 签名相关的设置,请执行以下步骤:
1在组策略中导航至「计算机配置」>「Windows 设置」>「安全设置」>「安全选项」。
2分别配置以下策略:
- SMB 服务器:
- Microsoft 网络服务器:对通信进行数字签名(始终)
- Microsoft 网络服务器:对通信进行数字签名(如果客户端允许)
- SMB 客户端:
- Microsoft 网络客户端:对通信进行数字签名(始终)
- Microsoft 网络客户端:对通信进行数字签名(如果服务器允许)
防火墙规则的新变化
- 在以前的 Windows Server 版本中,安装「文件服务」角色后,系统会自动开启一系列网络服务的防火墙规则。
- 在 Windows Server 2025 中,这种自动启用防火墙规则的做法已经被废除。以提高系统安全性,减少不必要的网络暴露风险。因此,管理员需要更加积极地手动管理防火墙规则,根据实际需求来启用或禁用特定的服务和端口。
Windows Server 2025 带来了诸多重要更新和创新。建议 Windows 管理员提前下载和安装预览版进行试用,并通过 Windows Server Insider 社区提交反馈。
最新评论
可以共存,但虚拟机维护起来更麻烦了呀。
关掉之后重启下系统再试试呢
不能共存吗?
我是家庭版,看着关掉了,但是破解程序一运行还是弹窗,搞不了