使用 LDAP 后端的 Samba 服务器上的身份验证失败

使用 LDAP 后端的 Samba 服务器上的身份验证失败

我正在尝试配置 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])。

相关内容