SASL LDAP身份验证失败

时间:2016-04-26 19:33:37

标签: authentication ldap sasl

尝试使用SASLLDAPRedHat Linux中的用户进行身份验证。到目前为止,我已经设置了saslauthd服务并启动并运行。我的/etc/saslauthd.conf如下所示:

ldap_servers: ldaps://test.ldap.server:1234
ldap_use_sasl: yes
ldap_mech: DIGEST-MD5
ldap_auth_method: fastbind
ldap_search_base: Ou=PeopleAuthSrch,DC=abc,DC=com

我的/etc/sasl2/smtpd.conf如下所示:

pwcheck_method: saslauthd
mech_list: plain login

现在,当我尝试使用以下命令测试身份验证时:

testsaslauthd -u username -p password -f /var/run/saslauthd/mux

我得到0: NO "authentication failed"

当我查看日志时,它说:

Retrying authentication
do_auth   :auth failure: [user:myuser]  [service=imap] [realm=] [mech=ldap] [reason=unknown]

我在这里缺少什么?提前谢谢!!

更新

使用以下命令安装OpenLdap进行搜索:

  

ldapsearch -x -h ldaps://my.ldap.server:port -d8

使用ldapsearch命令修改/etc/openldap/ldap.conf文件,如下所示:

tls_reqcert allow
TLS_CACERTDIR /home/myuser/cacertss
LDAPTLS_CACERT /home/myuser/cacertss

它返回所有条目,但我仍然无法使用

进行身份验证
  

testsaslauthd -u username -p password -f / var / run / saslauthd / mux

我需要做些什么才能对此进行身份验证?

2 个答案:

答案 0 :(得分:3)

经过5天的斗争后发现我使用的设置是Active directory我应该使用LDAP的设置,如下所示:

ldap_servers: ldaps://test.ldap.server:1234
ldap_search_base: Ou=PeopleAuthSrch,DC=abc,DC=com
ldap_filters: (uid=%u)
ldap_tls_cacert_file: /path/to/my/certificate

我确实按照Bertold Kolics的说法安装了cyrus-sasl-md5,我不确定是否在认证用户方面发挥了作用。

答案 1 :(得分:2)

我在RedHat Linux 7.2上完成了使用OpenLDAP和TLS设置SASL设置的练习,我设法得到类似的工作正常。

正如我在上一篇文章中提到的,请确保您已安装cyrus-sasl-md5软件包。

我首先尝试让所有内容正常工作,不用 SSL。只有在没有SSL的设置工作后才能移动到SSL部分。

  • 您需要确保saslauthd接受CA证书 LDAP服务器使用的证书。特别是,
    ldap_tls_cacert_file中的/etc/saslauthd.conf选项是您的朋友
  • 如果启用了SELinux,请确保saslauthd可以访问证书文件。如果您不确定,请拖尾/var/log/audit/audit.log文件并查找带有"拒绝"的条目。关键词。我发现audit2allow工具是启用先前被拒绝的访问的好方法。您也可以使用setenforce Permissive命令
  • 暂时禁用SELinux