SMB 3.1.1 dialect下Linux smbd加密失效,强制加密遇STATUS_ACCESS_DENIED求助
Linux Samba 4.15.13 与 smbj 11.0.5 SMB 3.1.1 加密通讯问题解决
核心配置修正
Samba 4.15+ 对加密参数的兼容性有调整,需修改smb.conf:
- 全局或共享段设置加密规则,替换原
smb encrypt = mandatory为:
注:smb encrypt = required server min protocol = SMB3_11 server max protocol = SMB3_11mandatory为旧版参数,部分SMB客户端(包括smbj)对其兼容性不佳,required是4.15+推荐的强制加密参数,功能一致。 - 确认系统已安装
libgcrypt(多数Linux发行版默认预装),Samba依赖它提供AES-GCM加密算法(smbj 11.0.5原生支持该算法)。
身份验证适配
smbj默认使用NTLMv2验证,需确保Samba配置匹配:
- 在
smb.conf全局段添加:
禁用不安全的Lanman验证,强制使用NTLMv2,避免因验证方式不匹配触发ntlm auth = yes lanman auth = no client ntlmv2 auth = yesSTATUS_ACCESS_DENIED。
权限与SELinux检查
- 调整共享目录的Linux文件权限,确保访问用户拥有读写权限:
chown -R [用户名]:[用户组] /path/to/your/share chmod -R 755 /path/to/your/share - 若系统启用SELinux,需配置正确的上下文:
semanage fcontext -a -t samba_share_t "/path/to/your/share(/.*)?" restorecon -Rv /path/to/your/share
服务重启与验证
- 重启Samba服务使配置生效:
# Systemd 发行版(Ubuntu 20.04+/CentOS 8+) systemctl restart smbd nmbd - 验证加密状态:用
smbclient测试连接,查看加密信息:
连接成功后输入smbclient //[Linux主机IP]/[共享名] -U [用户名] -m SMB3_11info,检查Encryption字段是否显示AES-128-GCM或AES-256-GCM。
内容的提问来源于stack exchange,提问作者doronk
相关产品推荐
相关产品推荐

