针对 LDAP 的 SASL 身份验证

针对 LDAP 的 SASL 身份验证

因此,我在安装 Cyrus 时遇到了一系列问题。我正在设置一个多域 kolab 群件解决方案。我在 Centos 6.7 上

当我尝试在新的多域设置上创建新用户时,我的错误日志中充斥着以下内容:

Aug 24 19:01:19 gmx1 imaps[1911]: badlogin: localhost [::1] PLAIN [SASL(-13): authentication failure: bad userid authenticated]
Aug 24 19:01:23 gmx1 imaps[1916]: starttls: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits new) no authentication
Aug 24 19:01:23 gmx1 imaps[1916]: SASL unable to open Berkeley db /etc/sasldb2: No such file or directory
Aug 24 19:01:23 gmx1 imaps[1916]: SASL unable to open Berkeley db /etc/sasldb2: No such file or directory
Aug 24 19:01:23 gmx1 imaps[1916]: ptload(): bad response from ptloader server: ptsmodule_canonifyid() failed
Aug 24 19:01:23 gmx1 imaps[1916]: ptload completely failed: unable to canonify identifier: 'john'[0:1][email protected]
Aug 24 19:01:23 gmx1 imaps[1916]: SASL bad userid authenticated

用户没有出现在 kolab webadmin 上...它一直尝试添加我创建的测试用户,并且不会停止尝试。我重新启动服务器,它就消失了。

我尝试玩:

/etc/imapd.conf

ldap_domain_base_dn: cn=kolab,cn=config
ldap_domain_filter: (&(objectclass=domainrelatedobject)(associateddomain=%s))
ldap_domain_name_attribute: associatedDomain
ldap_domain_scope: sub
ldap_domain_result_attribute: inetdomainbasedn

(这应该定义吗?)

ldap_domain_base_dn: cn=kolab,cn=config

我也注意到了顶部的这些。这应该是“PLAIN”吗?见下文。

sasl_pwcheck_method: auxprop saslauthd
sasl_mech_list: PLAIN LOGIN
allowplaintext: no

我的 imapd 配置:

configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: cyrus-admin
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
sasl_pwcheck_method: auxprop saslauthd
sasl_mech_list: PLAIN LOGIN
allowplaintext: no
tls_server_cert: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_server_key: /etc/pki/cyrus-imapd/cyrus-imapd.pem
# uncomment this if you're operating in a DSCP environment (RFC-4594)
# qosmarking: af13
auth_mech: pts
pts_module: ldap
ldap_servers: ldap://localhost:389
ldap_sasl: 0
ldap_base: dc=domain,dc=com
ldap_bind_dn: uid=kolab-service,ou=Special Users,dc=domain,dc=com
ldap_password: WIY0DNbAYPc8uY5
ldap_filter: (|(&(|(uid=cyrus-admin)(uid=cyrus-murder))(uid=%U))(&(|(uid=%U)(mail=%U@%d)(mail=%U@%r))(objectclass=kolabinetorgperson)))
ldap_user_attribute: mail
ldap_group_base: dc=domain,dc=com
ldap_group_filter: (&(cn=%u)(objectclass=ldapsubentry)(objectclass=nsroledefinition))
ldap_group_scope: one
ldap_member_base: ou=People,dc=domain,dc=com
ldap_member_method: attribute
ldap_member_attribute: nsrole
ldap_restart: 1
ldap_timeout: 10
ldap_time_limit: 10
unixhierarchysep: 1
virtdomains: userid
annotation_definitions: /etc/imapd.annotations.conf
sieve_extensions: fileinto reject envelope body vacation imapflags notify include regex subaddress relational copy date index
allowallsubscribe: 0
allowusermoves: 1
altnamespace: 1
hashimapspool: 1
anysievefolder: 1
fulldirhash: 0
sieveusehomedir: 0
sieve_allowreferrals: 0
lmtp_downcase_rcpt: 1
lmtp_fuzzy_mailbox_match: 1
username_tolower: 1
deletedprefix: DELETED
delete_mode: delayed
expunge_mode: delayed
postuser: shared

ldap_domain_base_dn: cn=kolab,cn=config
ldap_domain_filter: (&(objectclass=domainrelatedobject)(associateddomain=%s))
ldap_domain_name_attribute: associatedDomain
ldap_domain_scope: sub
ldap_domain_result_attribute: inetdomainbasedn

赛勒斯版本:

name       : Cyrus IMAPD
version    : git2.5+0-Kolab-2.5-108.1.el6.kolab_3.4 
vendor     : Project Cyrus
support-url: http://www.cyrusimap.org
os         : Linux
os-version : 2.6.32-042stab108.7
environment: Built w/Cyrus SASL 2.1.23
             Running w/Cyrus SASL 2.1.23
             Built w/OpenSSL 1.0.1e-fips 11 Feb 2013
             Running w/OpenSSL 1.0.1e-fips 11 Feb 2013
             Built w/zlib 1.2.3
             Running w/zlib 1.2.3
             CMU Sieve 2.4
             TCP Wrappers
             NET-SNMP
             mmap = shared
             lock = fcntl
             nonblock = fcntl
             idle = idled

由于用户未显示在 roundcube DB 中,因此 Kolab web-admin 无法将条目写入 Cyrus。

我认为我的主要问题是这个“ptloader”无法规范化用户。我应该打开规范化吗?

本文指出了如何使用它:

https://docs.kolab.org/howtos/multi-domain.html#cyrus-imap-changes

这个没有:

http://bmts.us/wiki/doku.php?id=article:kolab:multidomain

跑步:

testsaslauthd -u cyrus-admin -p mypassword

也可以正常工作:

0: OK "Success."

答案1

我在使用 Cyrus、SASL 和 LDAP 身份验证时也遇到了类似的错误。我需要在 /etc/saslauth.conf 中禁用 auxprop:

sasl_pwcheck_method: saslauthd

相关内容