前言
之前整理过一篇CIFS共享访问出现异常的原因整理:
https://blog.csdn.net/sjj222sjj/article/details/121620403?spm=1001.2014.3001.5501
在原有基础上再新增个特殊案例,今天正好又有用户出现了该问题,正好整理一下
问题:
在域控服务器升级到Windows Server 2016后NetApp的CIFS无法正常访问
原因分析
出现问题后按照常规方法排查均未能解决问题,最后注意到NetApp SVM及AD两端的SMB协议必须保持一致的情况下NetApp才能正常用AD拉取权限去提供CIFS业务,而在Windows Server 2016及之后的版本中默认禁用了SMB1协议
处理方法
由于需要保持NetApp SVM及AD两端的SMB协议一致,因此对应的Workround就从这两侧入手
关闭NetApp中SVM的SMB1
进入特权模式并直接在cifs option中关闭SMB1
cluster1::> set -privilege advanced
cluster1::*> vserver cifs options modify -vserver vs1.example.com -smb1-enabled false
另外有两点需要注意:
- 在ONTAP 9.1 P8之前的版本没有SMB1的配置选项,若一定要进行配置则需要升级 在ONTAP
- 9.3之前的版本SMB1默认启用,从ONTAP 9.3开始SMB1默认禁用
域控服务器中启用SMB1
Windows Server中可以通过UI中添加功能或PowerShell添加并开启SMB1
界面直接安装功能:
在PS中检测及开启
检测:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
禁用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
启用:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
注意:开启后都需要重启服务器,详情参考官方KB
https://learn.microsoft.com/zh-cn/windows-server/storage/file-server/troubleshoot/detect-enable-and-disable-smbv1-v2-v3?tabs=server#%E6%A6%82%E8%A7%88
后记
当然,SMB1是个十分不安全的协议,存在着已知的大量的漏洞和风险,最终解决方案一定是评估当前仍在使用该协议的客户端,尽快升级至SMB2及以上的协议