如果您无法装载由绑定到 Open Directory 的 Mac 所托管的 SMB 共享
SMB 3 安全要求可能不会让您使用 SMB 来装载共享点。
检查您的连接设置
服务器信息块 (SMB) 3 是连接到 macOS 中服务器的默认方式。进行鉴定后,它需要进行连接,以执行“验证协商”请求。除非您以客人身份或匿名方式连接,否则所有 SMB 3 会话都必须经过签名。
您可能会有一个 macOS 文件服务器是 Open Directory 客户端,且匿名绑定到轻量级目录访问协议 (LDAP) 服务器。如果是这样,请使用以下连接方式之一:
当您连接到 LDAP 服务器时,请使用已鉴定的绑定。
将文件服务器的角色更改为 Open Directory 备份服务器。这样做还会在您的服务器上设置 Kerberos。
停用客户端上的验证协商请求。
设置您的 SMB 服务器或客户端,以仅使用 SMB 2。
了解会话登录
在 SMB 3 中登录会话需要一台已绑定的电脑,以在目录服务器中访问每个用户的 md4(密码)。因此,SMB3 仅授权客户端连接到“受信任”的电脑。这些是使用目录管理员 (diradmin) 凭证来进行鉴定绑定的电脑 (authbound)。
有时候,目录管理员无法将您的服务器鉴定绑定到指定目录服务器,这个目录服务器包含您希望用户用来鉴定的帐户。这种情况下,您可以停用客户端的验证协商请求,或调整服务器以只接受安全性较低的 SMB 2 连接。若要完成此操作,请修改 SMB 服务器设置或/和客户端设置。
停用客户端上的验证协商请求
如果您停用验证协商,您将会更容易遭受中间人攻击。仅当客户端和服务器位于受保护网络上时,您才应停用验证协商请求。
要在 /etc 目录的 nsmb.conf 文件中设置 validate_neg_off 设置的值,请使用文本编辑器或“终端”。要了解更多客户端 SMB 配置选项,请参阅 nsmb.conf 的手册页。
在您配置 nsmb.conf 以停用验证协商请求时,具体的设置如下所示:
[default]
validate_neg_off=yes
设置您的 macOS 服务器以拒绝 SMB 3 连接
验证协商请求是客户端发起的 SMB 3 功能。要防止客户端发出此类请求,您可以将 macOS 服务器设置为只接受 SMB 2 连接。服务器偏好设置中的位域控制“服务器方言”。此位域的关键字是 ProtocolVersionMap。它仅使用三个位:
值 | 含义 |
1 | 支持 SMB 1 |
2 | 支持 SMB 2 |
4 | 支持 SMB 3 |
若要支持多种方言,请组合各个位。
本示例将设置 ProtocolVersionMap 以允许 SMB 2。要完成此操作,将 ProtocolVersionMap 设置为“2”。
sudo scutil --prefs com.apple.smb.server.plist
get /
d.add ProtocolVersionMap # 2
set /
commit
apply
quit