如何在 smbpasswd 配置中为 LDAP 后端服务器设置 CA 证书文件

如何在 smbpasswd 配置中为 LDAP 后端服务器设置 CA 证书文件

我在 smbpasswd、LDAP 后端服务器和 SSL/TLS 证书方面遇到了问题。我运行 smbpasswd 的客户端计算机是 Debian Etch 计算机,而 Ldap 服务器是运行在 Solaris 上的 Sun DS。以下所有情况都发生在客户端上。

当我通过在 smb.conf 中设置“ldap ssl = no”禁用 SSL 时,smbpasswd 程序可以正常运行。

当我设置“ldap ssl = start tls”时,smbpasswd 会打印以下消息,并且在询问任何密码之前会有很长的超时时间

Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
..... long delay .....
New SMB password:
Retype new SMB password:
Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
smbpasswd: /tmp/buildd/openldap2-2.1.30/libraries/liblber/io.c:702: ber_get_next: Assertion `0' failed.
Aborted

我使用“ldapsearch -ZZ”进行了一些测试。起初它不起作用,但在我将 TLS_CACERT 行添加到 /etc/ldap/ldap.conf、/etc/libnss-ldap.conf 和 /etc/pam_ldap.conf 后,它开始起作用。因此,所有这些文件中相关的 TLS 部分是:

ssl start_tls
tls_checkpeer no
tls_cacertfile /path/to/ca-root.pem
TLS_CACERT /path/to/ca-root.pem

但是 smbpasswd 程序继续给出错误。

我尝试创建包含以下内容的 /etc/smbldap-tools/smbldap.conf 文件(在查阅了 debian 文档中有关 smbldap-tools 包的信息后)但据我所知,smbpasswd 附带 samba-common 包,并且不使用 smbldap-tools 实用程序的配置。

verify="optional"
cafile="/path/to/ca-root.pem"

我的问题是:如何设置 smbpasswd 程序使用哪个 SSL CA 证书?

答案1

您无需指定 SSL 客户端应使用哪个 CA 证书;相反,您只需将所有 CA 证书附加到同一文件即可。根据哪个 CA 签署了服务器证书,它会尝试在根证书文件中找到它。

您遇到了一个错误,并且您正在运行 openldap 2.2;将其升级到最新版本:2.4.x ldap。那么你就没问题了。

相关内容