Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
shinji
Posts: 5
Joined: 2004-12-12 21:46

Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by shinji » 2004-12-12 22:38

Hi!


Ich versuche gerade verzweifelt unter Debian/testing einen Cyrus-IMAP Server ans laufen zu bekommen.
Als DB Backend für die Benutzer verwende ich mySQL über die PAM-Module nach der HowTo von DeLouw.

Was funktioniert ist folgendes:

1) Benutzer über Web-Cyradm anlegen
2) Mails an diese Benutzer schreiben
3) Mail von extern mit Thunderbird abholen (mit TLS Verschlüsselung)

Was leider nicht funktioniert:

Auf dem System gibt es noch ganz normale lokale Benutzer in der /etc/passwd die bisher ihre Mails immer mit "pine"
gelesen und geschrieben haben. Dies soll auch weiterhin noch möglich sein.
Leider haben diese Benutzer jetzt keine Inbox mehr und wenn ich versuche eine Mail an diese Benutzer
zu schreiben kommt diese zurück mit der Fehlermeldung:

====
This is the Postfix program at host server.lokales.netz.
[...]
<user@server.lokales.netz>: data format error. Command output: user: Mailbox
does not exist
====

Und in der /var/log/mail.log steht dazu dann:

Code: Select all

Dec 12 22:30:42 server cyrus/master[3880]: process 3899 exited, status 0
Dec 12 22:30:49 server postfix/smtpd[3890]: connect from unknown[192.168.0.2]
Dec 12 22:30:49 server postfix/smtpd[3890]: 481755433: client=unknown[192.168.0.2]
Dec 12 22:30:49 server postfix/cleanup[3894]: 481755433: message-id=<41BCB91C.4040507@server.lokales.netz>
Dec 12 22:30:49 server postfix/qmgr[3694]: 481755433: from=<alfred@server.lokales.netz>, size=613, nrcpt=1 (queue active)
Dec 12 22:30:49 server postfix/smtpd[3890]: disconnect from unknown[192.168.0.2]
Dec 12 22:30:49 server cyrus/master[3916]: about to exec /usr/lib/cyrus/bin/lmtpd
Dec 12 22:30:49 server cyrus/lmtpunix[3916]: executed
Dec 12 22:30:49 server cyrus/lmtpd[3916]: accepted connection
Dec 12 22:30:49 server cyrus/lmtpd[3916]: lmtp connection preauth'd as postman
Dec 12 22:30:49 server postfix/pipe[3897]: 481755433: to=<user@server.lokales.netz>, relay=cyrus, delay=0, status=bounced (data format error. Command output: user: Mailbox does not exist )
Dec 12 22:30:49 server postfix/cleanup[3894]: AE0BA5FBD: message-id=<20041212213049.AE0BA5FBD@server.lokales.netz>
Dec 12 22:30:49 server postfix/qmgr[3694]: AE0BA5FBD: from=<>, size=2387, nrcpt=1 (queue active)
Dec 12 22:30:49 server cyrus/lmtpd[3916]: accepted connection
Dec 12 22:30:49 server cyrus/lmtpd[3916]: lmtp connection preauth'd as postman
Dec 12 22:30:49 server postfix/qmgr[3694]: 481755433: removed
Dec 12 22:30:49 server cyrus/lmtpd[3916]: duplicate_check: <20041212213049.AE0BA5FBD@server.lokales.netz> user.server0002      0
Dec 12 22:30:50 server cyrus/lmtpd[3916]: mystore: starting txn 2147483662
Dec 12 22:30:50 server cyrus/lmtpd[3916]: mystore: committing txn 2147483662
Dec 12 22:30:50 server cyrus/lmtpd[3916]: duplicate_mark: <20041212213049.AE0BA5FBD@server.lokales.netz> user.server0002      1102887049
Dec 12 22:30:50 server postfix/pipe[3897]: AE0BA5FBD: to=<server0002@server.lokales.netz>, orig_to=<alfred@server.lokales.netz>, relay=cyrus, delay=1, status=sent (server.lokales.netz)
Dec 12 22:30:50 server postfix/qmgr[3694]: AE0BA5FBD: removed
Ich habe zwar schon verschiedene HowTos gelesen, aber keines ging darauf ein Cyrus User und Systemuser getrennt zu beliefern. Aber das müsste doch möglich sein, oder?

Falls gewünscht kann ich gerne noch Auszüge aus meinem Configs posten.

Gruß
Thorsten

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by squize » 2004-12-13 09:37

Der Trick dabei ist, dass du verschiedene Transportarten definierst. Alle virtuellen User werden dann den Transport cyrus benutzen ( über cyrdeliver oder lmtp ) alle realen Benutzer müssen dann einen anderen benutzen ( local oder maildrop z.B.).

Gruss

Marc

shinji
Posts: 5
Joined: 2004-12-12 21:46

Re: Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by shinji » 2004-12-15 10:55

Hallo!

Genau so etwas habe ich mir schon gedacht.
Nur gemacht habe ich das noch nie.
Wie kann ich das denn mit Postfix realisieren das lokale Benutzer anderes beliefert werden als Cyrus Benutzer?

Gruß
Thorsten

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by squize » 2004-12-15 13:39

Schau dir mal dies an.

Als Beispiel könntest du dir auch syscp nehmen. Dort wird zwar mysql als lookup benutzt, es entspricht aber ungefähr deinem Wunsch.

Gruss

Marc

shinji
Posts: 5
Joined: 2004-12-12 21:46

Re: Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by shinji » 2004-12-19 01:20

Hallo Squize!

Danke für die Links.
Das mit dem Transport bekomme ich aber nicht hin.
Ich habe mir also zusätzlich zu meiner mysql-transport.cf eine transport.cf angelegt die nur folgendes enthält:

user@server.lokales.netz local:user

Dann steht in der main.cf:

transport_maps = mysql:/etc/postfix/mysql-transport.cf hash:/etc/postfix/transport.cf

Es hat sich aber nur die Fehlermeldung geändert:

====
<user@server.lokales.netz>: host
/var/run/cyrus/socket/lmtp[/var/run/cyrus/socket/lmtp] said: 550-Mailbox
unknown. Either there is no mailbox associated with this 550-name or you
do not have authorization to see it. 550 5.1.1 User unknown (in reply to
RCPT TO command)
====

vorher war es halt:

====
<user@server.lokales.netz>: data format error. Command output: user: Mailbox
does not exist
====

Gruß
Thorsten

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by squize » 2004-12-19 23:38

var/run/cyrus/socket/lmtp
sagt aus, dass der Transpot immer noch cyrus zu sein scheint, deine transport table also nicht angenommen wird. Das format ist falsch, da für local erst einmal eine weiteren Parameter zu setzen sind.

Lese dir mal

VIRTUAL_README durch, da steht drin wie es geht auch für unix accounts.

Du musst in den virtua_alias maps einzelne Addresse auf deine unx accounts mappen.

Das hier hört sich auch interessant an
To configure maildrop delivery for all UNIX system accounts:


/etc/postfix/main.cf:
mailbox_command = /path/to/maildrop -d ${USER}




Note: ${USER} is spelled in upper case.


To enable maildrop delivery for specific users only, you can use the Postfix local(8) delivery agent's mailbox_command_maps feature:


/etc/postfix/main.cf:
mailbox_command_maps = /etc/postfix/mailbox_commands

/etc/postfix/mailbox_commands:
you /path/to/maildrop -d ${USER}




Maildrop delivery for specific users is also possible by invoking it from the user's $HOME/.forward file:


/home/you/.forward:
"|/path/to/maildrop -d ${USER}"
Poste doch mal ein postconf -n, damit man iseht was du so treibst. Es kann an einigen Stellen liegen, dass es nicht funktioniert.


Gruss Marc

shinji
Posts: 5
Joined: 2004-12-12 21:46

Re: Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by shinji » 2004-12-20 21:08

Meine postfix -n Ausgabe:

Code: Select all

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
delay_warning_time = 1h
local_recipient_maps = $alias_maps $virtual_mailbox_maps unix:passwd.byname
mailbox_command = /usr/bin/maildrop -d ${USER}
mailbox_size_limit = 0
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
mydestination = .lokales.netz, 
                server.lokales.netz, 
                localhost.localdomain, 
                localhost.localdomain, 
                localhost, 
                mysql:/etc/postfix/mysql-mydestination.cf
myhostname = server.lokales.netz
mynetworks = 127.0.0.0/8
myorigin = /etc/mailname
recipient_delimiter = +
relay_domains = mysql:/etc/postfix/mysql-relay.cf
relayhost =
sender_canonical_maps = mysql:/etc/postfix/mysql-canonical.cf
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_sasl_authenticated,
                    permit_mynetworks, 
                    reject_unauth_destination
smtpd_sasl_auth_enable = Yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
transport_maps = mysql:/etc/postfix/mysql-transport.cf 
                   hash:/etc/postfix/transport.cf 
unknown_local_recipient_reject_code = 450
Eventuell siehst du ja was drin.

Gruß
Thorsten

squize
Userprojekt
Userprojekt
Posts: 741
Joined: 2003-05-19 16:46
Location: Karlsruhe

Re: Cyrus/Postfix: Lokale Benutzer werden nicht gefunden

Post by squize » 2004-12-21 19:53

mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
Damit legst du deinen transport auf Cyrus fest, du brauchst ja für deine lokalen Benutzer einen anderen transport.

Im letzten Post habe ich dir dazu Informationen gegeben. Check die mal und passe dann deine main.cf an, so das es stimmt.


Ich kann dir im Moment nicht ganz genau sagen wie es geht, da ich zur Zeit bei allen meinen Servern nur virtuelle benutzer habe und mein Setup wo beides ging schon eine weile her ist.


Gruss

Marc