Ask for saslauthd help
Dan White
dwhite at olp.net
Mon Oct 28 11:01:24 EDT 2019
On 10/27/19 14:34 +0000, David Faller wrote:
>Dear All,
>I want to try my luck here, perhaps someone could help me.
>
>First The Problem:
>
>We would like to restrict the ldap authentication over saslauthd, so that users only can login with their valid e-mail address.
>At the moment users are able to login with username at domain.com or only their username.
>
>I tied a lot to specify the ldap_filter to take a lookup for the userPrincipalName=%u.
>With the command testsaslauthd it’s working but cyrus can’t grant access with errors like this:
>
>saslauthd.service - LSB: saslauthd startup script
> Loaded: loaded (/etc/init.d/saslauthd; generated)
> Active: active (running) since Fri 2019-10-25 14:07:54 CEST; 1h 33min ago
> Docs: man:systemd-sysv-generator(8)
> Process: 3707 ExecStart=/etc/init.d/saslauthd start (code=exited, status=0/SUCCESS)
> Tasks: 10 (limit: 4915)
> Memory: 15.4M
> CGroup: /system.slice/saslauthd.service
> ├─3727 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5
> ├─3728 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5
> ├─3729 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5
> ├─3730 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5
> ├─3733 /usr/sbin/saslauthd -a ldap -c -m /var/run/saslauthd -n 5
> ├─3745 /usr/sbin/saslauthd -a ldap -c -m /var/spool/postfix/var/run/saslauthd -n 5
> ├─3746 /usr/sbin/saslauthd -a ldap -c -m /var/spool/postfix/var/run/saslauthd -n 5
> ├─3747 /usr/sbin/saslauthd -a ldap -c -m /var/spool/postfix/var/run/saslauthd -n 5
> ├─3748 /usr/sbin/saslauthd -a ldap -c -m /var/spool/postfix/var/run/saslauthd -n 5
> └─3749 /usr/sbin/saslauthd -a ldap -c -m /var/spool/postfix/var/run/saslauthd -n 5
>
>Oct 25 15:38:27 CGSG saslauthd[3747]: : auth failure: [user=money] [service=smtp] [realm=uc-central.net] [mech=ldap] [reason=Unknown]
>Oct 25 15:39:07 CGSG saslauthd[3745]: Entry not found (sAMAccountName=account).
>Oct 25 15:39:07 CGSG saslauthd[3745]: Authentication failed for account/uc-central.net: User not found (-6)
>Oct 25 15:39:07 CGSG saslauthd[3745]: : auth failure: [user=account] [service=smtp] [realm=uc-central.net] [mech=ldap] [reason=Unknown]
>Oct 25 15:40:20 CGSG saslauthd[3748]: Entry not found (sAMAccountName=tg).
>Oct 25 15:40:20 CGSG saslauthd[3748]: Authentication failed for tg/uc-central.net: User not found (-6)
>Oct 25 15:40:20 CGSG saslauthd[3748]: : auth failure: [user=tg] [service=smtp] [realm=uc-central.net] [mech=ldap] [reason=Unknown]
>Oct 25 15:40:56 CGSG saslauthd[3746]: Entry not found (sAMAccountName=pearl).
>Oct 25 15:40:56 CGSG saslauthd[3746]: Authentication failed for pearl/uc-central.net: User not found (-6)
>Oct 25 15:40:56 CGSG saslauthd[3746]: : auth failure: [user=pearl] [service=smtp] [realm=uc-central.net] [mech=ldap] [reason=Unknown]
Hi David,
Your detail is appreciated. It helps to paint a good picture of what's going on.
The errors above appear to be for postfix. An ldap filter to try:
ldap_filter: (|(sAMAccountName=%U)(userPrincipalName=%u))
Note that saslauthd does not return the username/auth identity for postfix
and cyrus imapd to use. It's only used to authenticate the user.
To troubleshoot, you can enable debugging with:
ldap_debug: -1
See (3)ldap_set_option and include/ldap_log.h in the openldap source.
If you don't see ldap output in syslog, try starting saslauthd in debug mode.
The -r option for saslauthdm, which combines the username and realm, may be useful.
>Oct 25 13:49:52 CGSG cyrus/imaps[3074]: SASL Password verification failed
>
>Oct 25 13:31:25 CGSG cyrus/imap[2420]: badlogin: localhost [127.0.0.1] plaintext it at mandldreyer.com SASL(-13): authentication failure: checkpass failed
>Oct 25 13:31:25 CGSG cyrus/imaps[2434]: badlogin: port-83-236-195-74.static.qsc.de[83.236.195.74] LOGIN [SASL(-13): authentication failure: checkpass failed]
>Oct 25 13:31:25 CGSG cyrus/imaps[2432]: badlogin: port-83-236-195-74.static.qsc.de[83.236.195.74] LOGIN [SASL(-13): authentication failure: checkpass failed]
>Oct 25 13:31:28 CGSG cyrus/imap[2445]: badlogin: localhost [127.0.0.1] plaintext it at mandldreyer.com SASL(-13): authentication failure: checkpass failed
>Oct 25 13:31:29 CGSG cyrus/imaps[2432]: badlogin: port-83-236-195-74.static.qsc.de[83.236.195.74] plaintext lager SASL(-13): authentication failure: checkpass failed
>Oct 25 13:31:29 CGSG cyrus/imaps[2434]: badlogin: port-83-236-195-74.static.qsc.de[83.236.195.74] plaintext sebastian.mandl at mandldreyer.com SASL(-13): authentication failure: checkpass failed
>
>The problem is our multi domain setup and when a user login with a client or over the web with only their username, cyrus create new false mailboxes.
>This we would like to prevent.
The mapping of username[@domain] to mailbox function is a cyrus imap decision. You can influence this by setting:
defaultdomain: <domain>
in /etc/imapd.conf. I recommend being cautious with changing following
imapd.conf settings on a production system:
defaultdomain
virtdomains
Or you can use a canonicalization plugin.
>Perhaps someone know how to configure the saslauthd filter right for this special case.
>
>Configuration
>
>Our /etc/saslauthd.config
>
>ldap_servers: ldap://ddcl001.domain.dir
>ldap_search_base: dc=domain,dc=dir
>ldap_filter: sAMAccountName=%U
>#ldap_filter: userPrincipalName=%u
>
>#ldap_version: 3
>ldap_auth_method: bind
>ldap_bind_dn: cn=Administrator,cn=Users,dc=domain,dc=dir
>ldap_bind_pw: ******
>#ldap_scope: sub
If supported on your ldap server, sasl/digest-md5 is a simpler way to go
about this:
ldap_servers: ldaps://<host>
ldap_use_sasl: yes
ldap_mech: DIGEST-MD5
--
Dan White
More information about the Cyrus-sasl
mailing list