Cyrus-IMAPd+SASL+PAM not communicating (but testsaslauthd says OK)
Thomas Hannan
thomas at raapid.net
Thu Jan 16 15:02:19 EST 2003
Hi all,
The cliffnotes version of my problem is that even though I run
/usr/local/sbin/saslauthd -a pam&
and my /etc/imapd.conf contains "sasl_pwcheck_method: pam"
I get an auth failed when trying to login over IMAP or imtest:
$ testsaslauthd -u tico2 -p test1234 -s imap
0: OK "Success."
$ testsaslauthd -u tico2 -p test1234
0: OK "Success."
$ imtest -u tico2 -a tico2 -w test1234 -v -m login 192.168.1.98
S: * OK mail.test Cyrus IMAP4 v2.1.11 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS
NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT
THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE AUTH=OTP AUTH=DIGEST-MD5
AUTH=CRAM-MD5
S: C01 OK Completed
C: L01 LOGIN tico2 {8}
S: + go ahead
C: <omitted>
S: L01 NO Login failed: no mechanism available
Authentication failed. generic failure
Security strength factor: 0
$ imtest -u tico2 -a tico2 -w test1234 -v -m plain 192.168.1.98
S: * OK mail.test.pharm-olam.com Cyrus IMAP4 v2.1.11 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS
NAMESPACE UIDPLUS ID NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT
THREAD=ORDEREDSUBJECT THREAD=REFERENCES IDLE AUTH=OTP AUTH=DIGEST-MD5
AUTH=CRAM-MD5
S: C01 OK Completed
C: A01 AUTHENTICATE PLAIN
S: A01 NO no mechanism available
Authentication failed. generic failure
Security strength factor: 0
/var/log/auth.log says:
Jan 16 12:59:26 frosty imapd[2968]: unknown password verifier
/var/log/imap.log says:
Jan 16 12:59:05 frosty imapd[2968]: badlogin: mail.test [192.168.1.98]
PLAIN [SASL(-4): no mechanism available: security flags do not match
required]
Jan 16 12:59:26 frosty imapd[2968]: accepted connection
Jan 16 12:59:26 frosty imapd[2968]: badlogin: mail.test [192.168.1.98]
plaintext test1 SASL(-4): no mechanism available: checkpass failed
I'm on my first Cyrus install and have RTFM all I can find, so bear with
me. I have a Redhat 7.2 box on which I'm trying to accomplish the
following:
Get Cyrus IMAPd to authenticate (via SASLv2) against PAM instead of
directly to a /etc/sasldb or a MySQL table or anything of that nature. My
users are set up in PAM using Samba/winbind modules, and they can
authenticate for anything else. Additionally, I have a few /etc/shadow
users that I've created just for testing, and behavior is the exact same no
matter which type of user I try.
Any help would be greatly appreciated!!
Regards,
Tico Hannan [CCDP,CCNP]
more notes:
Locally I can auth against any of them (winbind or /etc/shadow) since they
are in my /etc/pam.d/system-auth:
auth required /lib/security/pam_env.so
auth sufficient /lib/security/pam_winbind.so
auth sufficient /lib/security/pam_unix.so likeauth nullok
auth required /lib/security/pam_deny.so
account required /lib/security/pam_unix.so
password required /lib/security/pam_cracklib.so retry=3 type=
password sufficient /lib/security/pam_unix.so nullok use_authtok md5
shadow use_first_pass
password required /lib/security/pam_deny.so
session required /lib/security/pam_limits.so
session required /lib/security/pam_unix.so
and currently (just for testing purposes) I have everything
(including /etc/pam.d/imap) set to use:
$ cat /etc/pam.d/imap
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
I have a startup script that runs
/usr/local/sbin/saslauthd -a pam&
/usr/cyrus/bin/master &
and my configs are /etc/imapd.conf:
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus root
allowanonymouslogin: no
sasl_pwcheck_method: pam
defaultacl: anyone lrs
postmaster: postmaster
sendmail: /usr/sbin/sendmail.postfix
allowplaintext: yes
servername: mail.test
autocreatequota: 10000
quotawarn: 90
my /etc/cyrus.conf:
START {
# do not delete these entries!
mboxlist cmd="ctl_mboxlist -r"
deliver cmd="ctl_deliver -r"
}
SERVICES {
imap cmd="/usr/cyrus/bin/imapd" listen="imap" prefork=0
imaps cmd="/usr/cyrus/bin/imapd -s" listen="imaps" prefork=0
pop3 cmd="/usr/cyrus/bin/pop3d" listen="pop3" prefork=0
pop3s cmd="/usr/cyrus/bin/pop3d -s" listen="pop3s" prefork=0
sieve cmd="/usr/cyrus/bin/timsieved" listen="sieve" prefork=0
lmtpunix cmd="/usr/cyrus/bin/lmtpd" listen="/var/imap/socket/lmtp"
prefork=0
}
EVENTS {
checkpoint cmd="ctl_mboxlist -c" period=30
}
My installation options:
SASL:
make clean
./configure \
--with-dblib=berkeley \
--with-bdb-libdir=/usr/local/BerkeleyDB.3.1/lib \
--with-bdb-incdir=/usr/local/BerkeleyDB.3.1/include \
--with-pam=/usr/include/security \
--with-openssl=/usr/include/openssl \
--enable-plain \
--enable-krb4=no \
--without-des \
--enable-digest=no
make
make install
IMAP:
make clean
./configure \
--with-auth=unix \
--with-openssl=/usr/include/openssl \
--with-dbdir=/usr/local/BerkeleyDB.3.3
make depend
make all CFLAGS=-O
make install
More information about the Info-cyrus
mailing list