How can I configure Cyrus IMAP to submit a default realm to SASL?

Posted by piwi on Server Fault See other posts from Server Fault or by piwi
Published on 2013-07-02T13:46:18Z Indexed on 2013/07/03 11:08 UTC
Read the original article Hit count: 325

I have configured Postfix to work with SASL using plain text, where the former automatically submits a default realm to the latter when requesting authentication.

Assuming the domain name is example.com and the user is foo, here is how I configured it on my Debian system so far.

In the postfix configuration file /etc/main.cf:

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain

The SMTP configuration file /etc/postfix/smtpd.conf contains:

pwcheck_method: saslauthd
mech_list: PLAIN

The SASL daemon is configured with the sasldb mechanism in /etc/default/saslauthd:

MECHANIMS="sasldb"

The SASL database file contains a single user, shown by sasldblistusers2:

[email protected]: userPassword

The authentication works well without having to provide a realm, as postifx does that for me. However, I cannot find out how to tell the Cyrus IMAP daemon to do the same.

I created a user cyrus in my SASL database, which uses the realm of the host domain name, not example.com, for administrative purpose. I used this account to create a mailbox through cyradm for the user foo:

cm user.foo

IMAP is configured in /etc/imapd.conf this way:

allowplaintext: yes
sasl_minimum_layer: 0
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
servername: mail.example.com

If I enable cross-realm authentication (loginrealms: example.com), trying to authenticate using imtest works with these options:

imtest -m login -a [email protected] localhost

However, I would like to be able to authenticate without having to specify the realm, like this:

imtest -m login -a foo localhost

I thought that using virtdomains (setting it either to userid or on) and defaultdomain: example.com would do just that, but I cannot get to make it work.

I always end up with this error:

cyrus/imap[11012]: badlogin: localhost [127.0.0.1] plaintext foo SASL(-13): authentication failure: checkpass failed

What I understand is that cyrus-imapd never tries to submit the realm when trying to authenticate the user foo.

My question: how can I tell cyrus-imapd to send the domain name as the realm automatically?

Thanks for your insights!

© Server Fault or respective owner

Related posts about linux

Related posts about email