Cyrus Murder SASL Authentication Problem

Xue, Chongjie "Jack" xue at marshall.edu
Sat Apr 29 01:56:29 EDT 2006


We are planning to migrate an OpenVMS email server to "Linux" (RHEL4) running Postfix and Cyrus-IMAP. I have setup up a single node Cyrus-IMAP backend and use Postfix to feed email into the server. 

The version of Cyrus-IMAP I am using is 2.2.12 distributed in latest RHEL4 RPM format (from http://www.invoca.ch/). 

This week I made adaptations to have a Cyrus-IMAP Murder setup. 

Here are my murder settings:
 
-----------------------------------------
1 cyrus backend servers (called mailbox1)
1 mupdate master server 
2 cyrus frontend servers each running Postfix, Cyrus LMTPProxy and Proxyd
-----------------------------------------

I am using saslauthd authentication (with PLAIN mechanism) against Linux PAM modules (nss_ldap and pam_krb5) which then switch over against our windows Active Directory server. This scheme is working fine under a single Cyrus-IMAP setup to authenticate our users.  

The _problem_ I am having _now_ with murder is I cannot make either LMTPProxy or IMAP (Proxyd) services running on my frontends to authenticate through specified proxy_servers to the backend node. 

I can see mupdate is running and updating user mailbox information, I can connect to my backend directly, but I cannot deliver or read email from my frontend nodes. 

Here are the logs on the Cyrus Murder frontend nodes showing the error:

a. IMAP Error
imap[12766]: Doing a peer verify
imap[12766]: verify error:num=18:self signed certificate
imap[12766]: received server certificate
imap[12766]: starttls: TLSv1 with cipher AES256-SHA (256/256 bits new) no authentication
imap[12766]: couldn't authenticate to backend server: authentication failure

b. LMTP Error
lmtp[10495]: couldn't authenticate to backend server: no mechanism available
lmtp[10854]: couldn't authenticate to backend server: no mechanism available
postfix/lmtp[10851]: 
272CD1D0003: to=<xue at aaaa.marshall.edu>, relay=/var/lib/imap/socket/lmtp[/var/lib/imap/socket/lmtp], delay=10304, status=deferred 
(host /var/lib/imap/socket/lmtp[/var/lib/imap/socket/lmtp] said: 451 4.4.3 Remote server unavailable (in reply to end of DATA command))
lmtp[10854]: couldn't authenticate to backend server: no mechanism available

Here are the logs on the Backend node when the frontend connects through LMTP and IMAP: 

mailbox1 lmtp[29392]: connection from [10.101.4.251] preauth'd as postman
mailbox1 lmtp[29402]: executed
mailbox1 lmtp[29392]: accepted connection
mailbox1 lmtp[29392]: connection from [10.101.4.251] preauth'd as postman

mailbox1 imap[29381]: accepted connection
mailbox1 imap[29381]: mydelete: starting txn 2147483730
mailbox1 imap[29381]: mydelete: committing txn 2147483730
mailbox1 imap[29381]: mystore: starting txn 2147483731
mailbox1 imap[29381]: mystore: committing txn 2147483731
mailbox1 imap[29381]: starttls: TLSv1 with cipher AES256-SHA (256/256 bits new) no authentication
mailbox1 imap[29381]: badlogin: [10.101.4.251] PLAIN [SASL(-13): authentication failure: user cyrus_murder is not allowed to proxy]

Here are my configuration files: 
--------Frontend Configuration------
#---cyrus.conf---#
SERVICES {
  # add or remove based on preferences
 imap          cmd="proxyd" listen="imap" prefork=5
 imaps         cmd="proxyd -s" listen="imaps" prefork=1
 pop3          cmd="pop3d" listen="pop3" prefork=3
 pop3s         cmd="pop3d -s" listen="pop3s" prefork=1
 sieve         cmd="timsieved" listen="sieve" prefork=0
 mupdate       cmd="/usr/lib/cyrus-imapd/mupdate" listen=3905 prefork=1
 lmtpunix      cmd="lmtpproxyd" listen="/var/lib/imap/socket/lmtp" prefork=1

 proto="udp" prefork=1
}

#---imapd.conf---#
configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: mailadmin
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
tls_cert_file: /usr/share/ssl/certs/cyrus-imapd.pem
tls_key_file: /usr/share/ssl/certs/cyrus-imapd.pem
tls_ca_file: /usr/share/ssl/certs/ca-bundle.crt
mupdate_port: 3905
mupdate_server: imapproxy
mupdate_username: admin
mupdate_authname: admin
mupdate_password: xxxxxx
proxy_authname: cyrus_murder
mailbox1_password: xxxxxxx


--------Backend Configuration------
#---cyrus.conf---# 
SERVICES {
  imap          cmd="imapd" listen="imap" prefork=5
  imaps         cmd="imapd -s" listen="imaps" prefork=1
  pop3          cmd="pop3d" listen="pop3" prefork=3
  pop3s         cmd="pop3d -s" listen="pop3s" prefork=1
  sieve         cmd="timsieved" listen="sieve" prefork=1
  lmtp          cmd="lmtpd -a" listen="lmtp" prefork=1
  proto="udp" prefork=1
}

#---imapd.conf---# 
configdirectory: /var/lib/imap
partition-default: /var/spool/imap
admins: admin
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
sasl_pwcheck_method: saslauthd
sasl_mech_list: plain
tls_cert_file: /usr/share/ssl/certs/cyrus-imapd.pem
tls_key_file: /usr/share/ssl/certs/cyrus-imapd.pem
tls_ca_file: /usr/share/ssl/certs/ca-bundle.crt
altnamespace: false
berkeley_cachesize: 4096
mupdate_server: imapproxy
mupdate_username: admin
mupdate_authname: admin
mupdate_password: xxxxxxxxx
proxy_servers: cyrus_murder   

I know Cyrus-SASL is causing the problem on the Proxy Level and I need suggestions on how to setup SASL-Authentication for my murder Frontend nodes. 

Thanks. 

--------------------------------
Jack C. Xue
Computing Services Systems Group
Marshall University
Drinko Library 423C
1 John Marshall Drive
Huntington, WV 25755-5320
E-mail: xue at marshall.edu
Phone: (304)696-6396 



More information about the Info-cyrus mailing list