front and back on the same server

Thomas Vogt tv at solnet.ch
Wed Dec 8 15:58:48 EST 2004


Hi

Since imapd 2.2.x doesn't support unified murder, I try to reach my goal 
  with some "config vodoo".

Situation:
I've 2 server. Both have 2 network interfaces and both are running 
postfix (lmtp) and cyrus-imapd.
Now I try to run backend and frontend server on every machine. Server A 
(soho) is hosting username a-m and Server B (sokrates) is hosting n-z User.

Idea:
User a can connect server B and get his mailbox or vice versa.

My mupdate master server is called soho, the frontend soho.lan and the 
other server is called sokrates (murder without -m) and sokrates.lan 
(frontend).

cyrus-backend.conf:
START {
   recover       cmd="ctl_cyrusdb ctl_cyrusdb -C 
/usr/local/etc/imapd-backend.conf -r"
   mupdatepush  cmd="ctl_mboxlist -C /usr/local/etc/imapd-backend.conf -m"
}
SERVICES {
   pop3          cmd="pop3d -C /usr/local/etc/imapd-backend.conf" 
listen="soho.lan:pop3"                              prefork=10
   imap          cmd="imapd -C /usr/local/etc/imapd-backend.conf" 
listen="soho.lan:imap"                              prefork=5
   lmtp          cmd="lmtpd -C /usr/local/etc/imapd-backend.conf" 
listen="soho.lan:lmtp"                              prefork=5
   sieve         cmd="timsieved" listen="sieve"      perfork= 0 

}

EVENTS {
   checkpoint    cmd="ctl_cyrusdb -C /usr/local/etc/imapd-backend.conf 
-c" period=30
   delprune     cmd="cyr_expire -C /usr/local/etc/imapd-backend.conf -E 
3" at=0400
}

(soho master frontend) cyrus.conf:
START {
   recover       cmd="ctl_cyrusdb -r"
}
SERVICES {
   mupdate       cmd="/usr/local/cyrus/bin/mupdate -m" listen=3905 prefork=1
   pop3          cmd="pop3d" listen="pop3" 
  prefork=10
   imap          cmd="imapd" listen="imap"   prefork=5
   lmtp          cmd="lmtpd" listen="lmtp"   prefork=5
   sieve         cmd="timsieved" listen="sieve"  prefork=0
}
EVENTS {
   checkpoint    cmd="ctl_cyrusdb -c" period=30
   delprune     cmd="cyr_expire -E 3" at=0400
}

soho imapd-backend.conf:

configdirectory: /var/imap
partition-default: /var/spool/imap
servername: soho.lan
singleinstancestore: true
hashimapspool: true
fulldirhash: true
# ACCESS
allowplaintext: yes
admins: admin
proxyservers: admin
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
sasl_ldap_server: localhost
sasl_ldap_basedn: ou=people,ou=lan,dc=lan,dc=ch
# MURDER
mupdate_server: soho
mupdate_username: admin
mupdate_authname: admin
mupdate_password: ADMIN


soho imapd.conf:

configdirectory: /var/imap-frontend
partition-default: /var/spool/imap-frontend
servername: soho
# ACCESS
allowplaintext: yes
admins: admin
proxyservers: admin
proxy_authname: admin
sokrates_password: ADMIN
sokrates_mechs: plain
soho_password: ADMIN
soho_mechs: plain
sasl_pwcheck_method: saslauthd
sasl_mech_list: PLAIN
sasl_ldap_server: localhost
sasl_ldap_basedn: ou=people,ou=lan,dc=lan,dc=ch
# MURDER
mupdate_server: soho
mupdate_username: admin
mupdate_authname: admin
mupdate_password: ADMIN
# EOF

sokrates is similiar except the hostname ;)

soho and sokrates backend are running with:
master -M /usr/local/etc/cyrus-backend.conf -C /usr/local/et
c/imapd-backend.conf -p /var/run/cyrus-master-backend.pid -d

and both frontend are running with default option.

After I start this 4 services I see on sohos log:
Dec  8 20:28:06 soho mupdate[16760]: login: sokrates.lan admin PLAIN 
User logged in

and on sokrates:
Dec  8 20:28:06 sokrates mupdate[19619]: synchronizing mailbox list with 
master mupdate server
Dec  8 20:28:06 sokrates mupdate[19619]: mailbox list synchronization 
complete

It looks ok.
imtest works, murdertest works and testsaslauth works also.

I can create user on every backend. "It works like charm".
soho# cyradm --user admin --server sokrates --auth plain
cm user.foo

It doesn't work on frontend. But i guess this is correct. I hope so


Ok and now the error part:
I try to connect every frontend via pop3. I get an error msg:

+OK soho Cyrus POP3 Murder v2.2.10 server ready <1942600184.1102538227 at soho>
user sohotest
+OK Name is a valid mailbox
pass testsoho
-ERR [AUTH] authenticating: encryption needed to use mechanism

same on sokrates

Logs:
Dec  8 20:41:38 soho pop3[16780]: login: bert[] sohotest plaintext User 
logged in
Dec  8 20:41:41 soho pop3[16780]: couldn't authenticate to backend 
server: authentication failure
Dec  8 20:41:41 soho pop3[16780]: couldn't authenticate to backend server

When I try to connect the backend, I also get an error msg:
thomas at bert:~> telnet soho.lan 110
Trying ...
Connected to soho.lan
Escape character is '^]'.
+OK soho.lan Cyrus POP3 Murder v2.2.10 server ready 
<2452624741.1102538601 at soho.lan>
user sohotest
+OK Name is a valid mailbox
pass testsoho
-ERR [SYS/PERM] Unable to locate maildrop: Mailbox does not exist

log:
Dec  8 20:43:30 soho pop3[16735]: Unable to locate maildrop for 
sohotest: Mailbox does not exist

It is correct. user sohotest only exist on the backend of sokrates. I 
don't know why it's not synchronized to the soho.

Any help again? Should it work with this configuration?

regards
Thomas
---
Cyrus Home Page: http://asg.web.cmu.edu/cyrus
Cyrus Wiki/FAQ: http://cyruswiki.andrew.cmu.edu
List Archives/Info: http://asg.web.cmu.edu/cyrus/mailing-list.html




More information about the Info-cyrus mailing list