cyrus-sasl

Configuring

This mini-howto helps you to install the saslauthd server using postfix which will authenticate using users and passwords from /etc/{passwd,shadow}.

First install the necessary packages:

# pacman-g2 -S postfix saslauthd

Enable sasl in postfix’s config by appending the following lines to /etc/postfix/main.cf:

smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_security_options = noanonymous

You may want to append

broken_sasl_auth_clients = yes

as well.

Put the following lines to /usr/lib/sasl2/smtpd.conf:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

Edit /etc/sysconfig/saslauthd by changing the following lines:

options=""

to

options="-a shadow"

Now you can start saslauthd by

service saslauthd start

as well as enabled in by default on startup:

service saslauthd add

Issue id postfix and see if the daemon group is listed. If not, then add postfix to the daemon group:

usermod -G daemon postfix

Finally restart postfix:

service postfix restart

Compeleted!

Verifying

We test it using telnet. We need perl to generate the string for the SASL authentication:

$ perl -MMIME::Base64 -e 'print encode_base64("vmiklos\0vmiklos\0secret");'
dm1pa2xvcwB2bWlrbG9zAHNlY3JldA==

Then use telnet:

$ telnet host.com 25
Trying ip...
Connected to host.com.
Escape character is '^]'.
220 host.com ESMTP Postfix
ehlo my.dhcp
250-host.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN dm1pa2xvcwB2bWlrbG9zAHNlY3JldA==
235 2.0.0 Authentication successful
quit
221 2.0.0 Bye
Connection closed by foreign host.