我正在尝试配置 Samba 服务器以仅使用 LDAP 后端来验证用户。仅此而已,我不关心 PDC/BDC 等。
Samba 架构存在于 LDAP 和用户配置文件中。并且此服务器已被另一个 Samba 服务器(可能是 PDC)使用。但是,我没有对 LDAP 或 Samba 服务器的写权限。我只能读取 LDAP 条目。
我可以使用 LDAP 帐户通过 SSH 登录我的 samba 服务器,所以我认为 NSS/PAM 的东西很好。
问题是,当我尝试这个命令时:
smbclient -d 2 //sandbox-samba.mydomain.com/MyShare -U user.ldap
我明白了:
rlimit_max:将 rlimit_max(1024)增加到 Windows 的最低限制
(16384)添加接口 eth0 ip=10.XX19 bcast=10.XX255
netmask=255.255.255.0 输入用户.ldap的密码:会话设置
失败:NT_STATUS_LOGON_FAILURE
在 Samba 服务器端,我在 Samba 日志中有这样的内容:
[2015/03/24 14:55:19.913036,2] lib/smbldap.c:1018(smbldap_open_connection)
smbldap_open_connection:连接已打开
[2015/03/24 14:55:19.916244,3] lib/smbldap.c:1240(smbldap_connect_system)
ldap_connect_system:成功连接到 LDAP 服务器
[2015/03/24 14:55:19.918237,3] auth/auth.c:219(check_ntlm_password)
check_ntlm_password:使用新密码接口检查未映射用户 [MYGROUP][user.ldap]@[CLIENT_WS] 的密码
[2015/03/24 14:55:19.918387,3] auth/auth.c:222(check_ntlm_password)
check_ntlm_password:映射用户是:[MYDOMAIN][user.ldap]@[CLIENT_WS]
[2015/03/24 14:55:19.939873,2] passdb/pdb_ldap.c:553(init_sam_from_ldap)
init_sam_from_ldap:找到用户的条目:user.ldap
[2015/03/24 14:55:20.025999,2] passdb/pdb_ldap.c:2427(init_group_from_ldap)
init_group_from_ldap:找到组的条目:1100
[2015/03/24 14:55:20.029060,2] passdb/pdb_ldap.c:2427(init_group_from_ldap)
init_group_from_ldap:找到组的条目:1100
[2015/03/24 14:55:20.029424,3]../libcli/auth/ntlm_check.c:309(ntlm_password_check)
ntlm_password_check:没有为用户 user.ldap 存储 NT 密码。
[2015/03/24 14:55:20.029667,3]../libcli/auth/ntlm_check.c:442(ntlm_password_check)
ntlm_password_check:不允许用户 user.ldap 使用 Lanman 密码
[2015/03/24 14:55:20.030792,2] passdb/pdb_ldap.c:1180(init_ldap_from_sam)
init_ldap_from_sam:为用户设置条目:user.ldap
[2015/03/24 14:55:20.030989,3] auth/auth_winbind.c:60(check_winbind_security)
check_winbind_security:未使用 winbind,请求的域 [MYDOMAIN] 用于此 SAM。
[2015/03/24 14:55:20.031126,2] auth/auth.c:330(check_ntlm_password)
check_ntlm_password:用户 [user.ldap] 的身份验证 -> [user.ldap] 失败,错误为 NT_STATUS_WRONG_PASSWORD
[2015/03/24 14:55:20.031307,3] smbd/error.c:81(error_packet_set)
smbd/sesssetup.c(124) cmd=115 (SMBsesssetupX) 处的错误数据包 NT_STATUS_LOGON_FAILURE
[2015/03/24 14:55:20.031968,3] smbd/server_exit.c:181(exit_server_common)
服务器退出(无法接收 smb 请求)
我不明白 NT_STATUS_WRONG_PASSWORD 的事情...我可以在哪里查看以了解发生了什么?
是否有可能只拥有一个仅使用 LDAP 进行身份验证的 Samba 服务器?
我使用 GUI 界面通过 Windows 7 客户端获得了相同的结果。
这是我的 smb.conf,如果它有帮助的话:
[全球的]
工作组 = MYDOMAIN
netbios 名称 = 机器名
服务器字符串 = %h
服务器字符串 = 测试 Samba 服务器版本 %v
域登录 = 否
域主 = 否
日志文件 = /var/log/samba/log.%m
最大日志大小 = 50
vfs 对象 = full_audit
完整审计:前缀 = %u|%I|%m|%S
full_audit:成功=全部
full_audit:失败 = 连接
full_audit:设施=local7
full_audit:优先级 = 通知
加密密码 = 是
安全 = 用户
passdb 后端 = ldapsam:ldap://ldap.mydomain.com
ldap 管理员 dn =“uid=administrator,ou=Users,o=mydomain,c=com”
ldap 后缀 = o=mydomain,c=com
ldap 用户后缀 = ou=Users
ldap 机器后缀 = ou=Computers
ldap 组后缀 = ou=Groups
ldap idmap 后缀 = ou=Idmap
ldap ssl = 否
ldap passwd sync = 仅
日志级别 = 3
加载打印机 = 否
打印 = bsd
printcap 名称 = /dev/null
禁用 spoolss = 是
[我的份额]
评论 = MyShare Stuff
路径 = /srv/share
公开 = 是
可写 = 是
可打印 = 否
感谢您给予我任何的帮助!
此致
答案1
您已将“加密密码 = 是”设置为“是”。从 smb.conf (Samba 3) 开始:
...为了使加密密码正常工作,smbd(8) 必须能够访问本地 smbpasswd(5) 文件(有关如何设置和维护此文件的信息,请参阅 smbpasswd(8) 程序),或者设置 security = [server|domain|ads] 参数,这会导致 smbd 针对另一台服务器进行身份验证。...
您还具有“security = user”(即没有 [server|domain|ads])。