Howto install Postfix and SASL (Debian, Ubuntu)
Today I needed to configure one of dedicated servers with postfix boxes to use SASL. This time I decided to use saslauthd instead of pwcheck, as I always did before
Let’s start with installing the packages :
$ sudo apt-get install postfix-tls sasl2-bin libsasl2 libsasl2-modules
Now edit /etc/default/saslauthd:
START=yes
MECHANISMS="pam"
saslauthd is not started after package installation (we’ll do it later)!
Next file to edit is /etc/postfix/sasl/smtpd.conf (you have to create it):
pwcheck_method: saslauthd
Ok, let’s add some lines in /etc/postfix/main.cf to enable SASL:
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
postfix does a chroot so it can’t communicate with saslauthd. This is the tricky part:
$ sudo rm -r /var/run/saslauthd/
$ sudo mkdir -p /var/spool/postfix/var/run/saslauthd
$ sudo ln -s /var/spool/postfix/var/run/saslauthd /var/run
$ sudo chgrp sasl /var/spool/postfix/var/run/saslauthd
$ sudo adduser postfix sasl
Now restart postfix and start saslauthd
$ sudo /etc/init.d/postfix restart
$ sudo /etc/init.d/saslauthd start
Finally we test it using telnet. We need perl to generate the string for the SASL authentication
$ perl -MMIME::Base64 -e 'print encode_base64("username");'
dXNlcm5hbWU=
$ perl -MMIME::Base64 -e 'print encode_base64("password");'
cGFzc3dvcmQ=
Then use telnet:
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 localhost ESMTP Mailserver
ehlo localhost
250-localhost
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250-AUTH=NTLM LOGIN PLAIN DIGEST-MD5 CRAM-MD5
250 8BITMIME
AUTH LOGIN
334 VXNlcm5hbWU6
dXNlcm5hbWU=
334 UGFzc3dvcmQ6
cGFzc3dvcmQ=
235 Authentication successful
If it doesn’t work check you logfiles. If you get something like this:
SASL authentication failure: cannot connect to saslauthd server: Permission denied
SASL authentication failure: cannot connect to saslauthd server: No such file or directory
SASL LOGIN authentication failed: generic failure
then check the permissions in /var/spool/postfix/var/run/saslauthd
Читайте також:
- Веб-камера Ricoh VGP-VCC5 в linux
- /usr/bin/ld: cannot find -lstdc++ Debian libreadline5-dev package bug
- debian встановлення adobe flash player 10 64bit iceweasel (firefox)
- Коротко про керування пакетами в Debian
- How To capture video from tv-tuner card via mencoder
- Запуск декількох X сесій
- Howto install and use usb modem, as example "mts connect", in debian linux
- xen ssh login: 'stdin: is not a tty'
- vsftpd /bin/false check_shell=NO pam hack
- Wrong charset, conversion from `utf-8' to `windows-1251' is not allowed chroot