尝试使用SASL
和LDAP
对RedHat 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
我需要做些什么才能对此进行身份验证?
答案 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
选项是您的朋友saslauthd
可以访问证书文件。如果您不确定,请拖尾/var/log/audit/audit.log
文件并查找带有"拒绝"的条目。关键词。我发现audit2allow
工具是启用先前被拒绝的访问的好方法。您也可以使用setenforce Permissive
命令