[Postfixbuch-users] cyrus lmtp:

Stefan G. Weichinger lists at xunil.at
Do Jan 3 11:01:43 CET 2013


Am 03.01.2013 10:24, schrieb Peer Heinlein:
> Am 03.01.2013 08:01, schrieb Stefan G. Weichinger:
> 
>>> Das würde ich gerne sehen. Es fällt erstmal schwer vorzustellen,
>>> daß lmtp von Cyrus nicht geht, imapd aber schon.
>> 
>> Das ging mir genauso ...
> 
> Naja, jetzt wo Du weitere Infos präsentiert hast, ist das schon 
> wesentlich leichter vorzustellen, bzw. geradezu offensichtlich.

Ist doch schon mal gut.

> Wie so häufig helfen Infos bei der Ursachenanalyse.

Natürlich, das ist mir völlig klar, ich wollte nur nicht von Anfang an
Kilometer an Logs und Configs hier rein pasten, wenn vielleicht einer
von Euch gleich ZACK sagt "da ist Dein Fehler".

> Das wichtigste scheint mir hier genau meine allererste Frage gewesen
> zu sein:
> 
>>> a) Wo sind die Logzeilen, daß es mit Cyrus geht? Wird dort auch
>>> die Mailadresse als Identifier genutzt oder ist das eine separate
>>> Login-Kennung?
> 
>> Das Login lautet zB oop3sefn, und so steht der username auch in
>> der MySQL-DB.
> 
> Heißt: Du logst Dich nicht mit einer Mailadresse, sondern mit einem 
> Usernamen ein.

Ja.

>> Jan  2 15:53:24 postler lmtpunix[3469]: Delivered: 
>> <50E449F7.7090001 at pxxacher.at> to mailbox: user.oop4ofc
> 
> Auch hier wird die Mailadresse sauber in den Usernamen aufgelöst.

> Leider fehlen hier NOCH IMMER relevante Informationen (d.h.:
> master.cf!) so daß man nicht erkennen kann, wie Du den Cyrus-Deliver
> nun eingebunden hast. Also kann man hier erstmal wenig weiterhelfen.

OK, hier master.cf

78.46.92.195:smtp      inet  n       -       n       -       20       smtpd
    -o cleanup_service_name=pre-cleanup
    -o myhostname=postler.lichtfels.com

[2a01:4f8:120:72e3::2]:smtp      inet  n       -       n       -
20       smtpd
    -o cleanup_service_name=pre-cleanup
    -o myhostname=postler.lichtfels.com

submission inet n       -       n       -       -       smtpd
    -o smtpd_etrn_restrictions=reject
    -o smtpd_sasl_type=cyrus
    #-o smtpd_sasl_path=private/auth
    -o smtpd_sasl_auth_enable=yes
    -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    -o smtpd_client_connection_rate_limit=50

pickup    fifo  n       -       n       60      1       pickup
    -o cleanup_service_name=pre-cleanup
#cleanup   unix  n       -       n       -       0       cleanup
qmgr      fifo  n       -       n       300     1       qmgr
#qmgr     fifo  n       -       n       300     1       oqmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
#       -o smtp_helo_timeout=5 -o smtp_connect_timeout=5
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil

maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
uucp	  unix	-	n	n	-	-	pipe
  flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail
($recipient)

cyrus	  unix	-	n	n	-	-	pipe
  flags=R user=cyrus argv=/usr/lib64/cyrus/deliver -r ${sender} -m
${extension} ${user}

ifmail    unix  -       n       n       -       -       pipe
  flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp     unix  -       n       n       -       -       pipe
  flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop
$recipient
  user=clamav argv=/usr/sbin/amavis ${sender} ${recipient}
spamfilter unix  -       n       n       -       -       pipe
  flags=Rq user=spamfilter argv=/usr/bin/postfixfilter -f ${sender} --
${recipient}
#procmail unix  -       n       n       -       -       pipe
#  user=mail argv=/usr/bin/procmail -t -m /etc/procmailrc USER=${user}
EXTENSION=${extension}

# amavisd-new START

## store first -BEGIN

smtp-amavis unix - - n - 2 lmtp
    -o lmtp_data_done_timeout=1800
    -o lmtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o max_use=20

127.0.0.1:10025 inet n  -       n       -       -  smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_delay_reject=no
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0

# amavisd-new ENDE

scache	  unix	-	-	n	-	1	scache
discard	  unix	-	-	n	-	-	discard
tlsmgr    unix  -       -       n       1000?   1       tlsmgr

# maia-related stuff. sgw, aug-24-2005

# handle both the canonicalization and virtual_alias_maps later
# (this will provide content filter with largely unmodified addresses)
#
pre-cleanup  unix 	n	-	n	-	0	cleanup
    -o virtual_alias_maps=
    -o canonical_maps=
    -o sender_canonical_maps=
    -o recipient_canonical_maps=
    -o masquerade_domains=

# The following is the normal cleanup daemon. No header or body checks here,
# because these have already been taken care of by the pre-cleanup service
# before the content filter.  The normal cleanup instance does all
# the virtual alias and canonical address mapping that was disabled
# in the pre-cleanup instance before the content filter.
#
cleanup	unix	n	-	n	-	0	cleanup
    -o mime_header_checks=
    -o nested_header_checks=
    -o body_checks=
    -o header_checks=

# These are the usual input "smtpd" and local "pickup" servers already
# present in master.cf. We add an option to select a non-default
# cleanup service.
#
# DONE ALREADY UP THERE ... sgw
#
#smtp      inet  n       -       n       -       -       smtpd
#    -o cleanup_service_name=pre-cleanup
#pickup    fifo  n       -       n       60      1       pickup
#    -o cleanup_service_name=pre-cleanup


retry     unix  -       -       n       -       -       error

proxywrite unix -       -       n       -       1       proxymap

## 7.4.2010, sgw: dovecot
#
## Dovecot LDA
dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:mail argv=/usr/libexec/dovecot/deliver -d
${recipient}


Mir ist schon klar, daß hier ein gewachsenes Durcheinander herrscht ...!

dovecot hatte ich schon mal vorbereitet und dann wegen Zores beim
Siedeln der Datenbank und Sieve-Rules etc. gelassen.

> Hose*n*! Du hast nur "die" Hose runtergelassen und die Unterhose 
> anbehalten. Nix da!
> 
> *) Alle Configs (inkl. master.cf) *) ALLES im Logfile (Du hast jetzt
> oben nur den lmtpunix gemailt aber nicht das Umfeld dazu von
> Postfix).

Beispiel(e):

Jan  2 22:19:06 postler postfix/scache[25594]: statistics: start
interval Jan  2 22:17:04
Jan  2 22:19:06 postler postfix/scache[25594]: statistics: domain lookup
hits=1 miss=2 success=33%
Jan  2 22:19:06 postler postfix/scache[25594]: statistics: max
simultaneous domains=1 addresses=1 connection=2
Jan  2 22:19:43 postler postfix/postfix-script[25743]: stopping the
Postfix mail system
Jan  2 22:19:43 postler postfix/master[25214]: terminating on signal 15
Jan  2 22:19:43 postler postfix/postfix-script[25827]: starting the
Postfix mail system
Jan  2 22:19:43 postler postfix/master[25828]: daemon started -- version
2.9.5, configuration /etc/postfix
Jan  2 22:19:43 postler postfix/qmgr[25832]: 1F0CB123CA:
from=<gentoo-user+bounces-144117-lists=xunil.at at lists.gentoo.org>,
size=6126, nrcpt=1 (queue active)
Jan  2 22:19:43 postler postfix/qmgr[25832]: 3359F137C1:
from=<office at oops.co.at>, size=2704, nrcpt=1 (queue active)
Jan  2 22:19:43 postler postfix/qmgr[25832]: 3CB5B137BE:
from=<gentoo-user+bounces-144116-lists=xunil.at at lists.gentoo.org>,
size=4789, nrcpt=1 (queue active)
Jan  2 22:19:43 postler postfix/qmgr[25832]: 7BD2D123C8:
from=<office at oops.co.at>, size=2711, nrcpt=1 (queue active)
Jan  2 22:19:43 postler postfix/lmtp[25839]: 1F0CB123CA:
to=<xnl7lst at lichtfels.com>,
relay=postler.lichtfels.com[/var/spool/postfix/public/lmtp], delay=160,
delays=160/0.02/0.01/0.06, dsn=5.1.1, status=bounced (host
postler.lichtfels.com[/var/spool/postfix/public/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))
Jan  2 22:19:43 postler postfix/cleanup[25853]: F16EA137BD:
message-id=<20130102211943.F16EA137BD at postler.lichtfels.com>
Jan  2 22:19:44 postler postfix/lmtp[25841]: 3359F137C1:
to=<oop3sefn at lichtfels.com>,
relay=postler.lichtfels.com[/var/spool/postfix/public/lmtp], delay=160,
delays=160/0.01/0.02/0.07, dsn=5.1.1, status=bounced (host
postler.lichtfels.com[/var/spool/postfix/public/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))
Jan  2 22:19:44 postler postfix/lmtp[25845]: 3CB5B137BE:
to=<xnl7lst at lichtfels.com>,
relay=postler.lichtfels.com[/var/spool/postfix/public/lmtp], delay=158,
delays=158/0.02/0.02/0.06, dsn=5.1.1, status=bounced (host
postler.lichtfels.com[/var/spool/postfix/public/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))
Jan  2 22:19:44 postler postfix/cleanup[25855]: 038BC137BF:
message-id=<20130102211944.038BC137BF at postler.lichtfels.com>
Jan  2 22:19:44 postler postfix/qmgr[25832]: F16EA137BD: from=<>,
size=8469, nrcpt=1 (queue active)
Jan  2 22:19:44 postler postfix/bounce[25843]: 1F0CB123CA: sender
non-delivery notification: F16EA137BD
Jan  2 22:19:44 postler postfix/lmtp[25848]: 7BD2D123C8:
to=<oop3sefn at lichtfels.com>,
relay=postler.lichtfels.com[/var/spool/postfix/public/lmtp], delay=157,
delays=156/0.03/0.02/0.07, dsn=5.1.1, status=bounced (host
postler.lichtfels.com[/var/spool/postfix/public/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))
Jan  2 22:19:44 postler postfix/cleanup[25856]: 05936137C0:
message-id=<20130102211944.05936137C0 at postler.lichtfels.com>
Jan  2 22:19:44 postler postfix/qmgr[25832]: 1F0CB123CA: removed
Jan  2 22:19:44 postler postfix/qmgr[25832]: 038BC137BF: from=<>,
size=5293, nrcpt=1 (queue active)
Jan  2 22:19:44 postler postfix/cleanup[25853]: 07E63123CA:
message-id=<20130102211944.07E63123CA at postler.lichtfels.com>
Jan  2 22:19:44 postler postfix/qmgr[25832]: 05936137C0: from=<>,
size=7132, nrcpt=1 (queue active)
Jan  2 22:19:44 postler postfix/bounce[25850]: 3359F137C1: sender
non-delivery notification: 038BC137BF
Jan  2 22:19:44 postler postfix/qmgr[25832]: 3359F137C1: removed
Jan  2 22:19:44 postler postfix/qmgr[25832]: 07E63123CA: from=<>,
size=5300, nrcpt=1 (queue active)
Jan  2 22:19:44 postler postfix/bounce[25847]: 3CB5B137BE: sender
non-delivery notification: 05936137C0
Jan  2 22:19:44 postler postfix/lmtp[25839]: 038BC137BF:
to=<oop4ofc at lichtfels.com>, orig_to=<office at oops.co.at>,
relay=postler.lichtfels.com[/var/spool/postfix/public/lmtp], delay=0.15,
delays=0.02/0/0/0.13, dsn=5.1.1, status=bounced (host
postler.lichtfels.com[/var/spool/postfix/public/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))
Jan  2 22:19:44 postler postfix/qmgr[25832]: 3CB5B137BE: removed
Jan  2 22:19:44 postler postfix/qmgr[25832]: 038BC137BF: removed

Der lmtpunix von cyrus geht/ging nach /var/log/messages.


Jan  2 22:06:29 postler lmtp[24484]: login: neo.lichtfels.com
[88.198.20.148] lmtpuser DIGEST-MD5 User logged in
Jan  2 22:06:29 postler lmtp[24745]: login: neo.lichtfels.com
[88.198.20.148] lmtpuser DIGEST-MD5 User logged in
Jan  2 22:06:34 postler lmtp[24746]: login: neo.lichtfels.com
[88.198.20.148] lmtpuser DIGEST-MD5 User logged in
Jan  2 22:11:01 postler lmtp[25110]: skiplist: checkpointed
/var/imap/deliver.db (19339 records, 2817976 bytes) in 0 seconds
Jan  2 22:11:01 postler lmtp[25105]: skiplist: checkpointed
/var/imap/statuscache.db (0 records, 144 bytes) in 0 seconds
Jan  2 22:19:37 postler lmtp[25716]: skiplist: checkpointed
/var/imap/deliver.db (19339 records, 2817976 bytes) in 0 seconds
Jan  2 22:19:37 postler lmtpunix[25717]: skiplist: checkpointed
/var/imap/statuscache.db (0 records, 144 bytes) in 0 seconds
Jan  2 22:21:29 postler lmtp[25716]: login: neo.lichtfels.com
[88.198.20.148] lmtpuser DIGEST-MD5 User logged in
Jan  2 22:22:25 postler lmtp[26073]: skiplist: checkpointed
/var/imap/deliver.db (19339 records, 2817976 bytes) in 0 seconds
Jan  2 22:22:25 postler lmtpunix[26068]: skiplist: checkpointed
/var/imap/statuscache.db (0 records, 144 bytes) in 0 seconds
Jan  2 22:37:59 postler lmtp[26816]: skiplist: checkpointed
/var/imap/deliver.db (19339 records, 2817976 bytes) in 0 seconds
Jan  2 22:37:59 postler lmtp[26810]: skiplist: checkpointed
/var/imap/statuscache.db (0 records, 144 bytes) in 0 seconds


Nix zu sehen davon um 22:19h ...


>> imaps		cmd="imapd -C /etc/cyrus-imapd.conf -s" listen="imaps"
>> prefork=2 lmtp		cmd="lmtpd -C /etc/cyrus-lmtpd.conf" listen="lmtp"
>> prefork=1 lmtpunix	cmd="lmtpd" listen="/var/imap/socket/lmtp"
>> prefork=0
> 
> Der lmtpd per TCP hat eine andere Config als der lmtpunix!

Also ist für mein gestriges Problem auch gar nicht die
/etc/cyrus-lmtpd.conf verantwortlich gewesen ... und damit auch nicht
auxprop .. (meine Logik ..) ?

> Der imap-Port hat eine andere Config, als der lmtpd per TCP!

Ja, verstehe ich.

>> # cat cyrus-lmtpd.conf sasl_pwcheck_method: auxprop
> 
> Der lmtpd geht über auxprop...
> 
>> # cyrus-imapd.conf (ohne tls-Zeilen) sasl_pwcheck_method:
>> saslauthd
> 
> Der imap geht über saslauthd.
> 
> Also wenn DAS nicht eine völlig unterschiedliche Konfiguration ist,
> dann weiß auch auch nicht mehr weiter!
> 
>> # cat /etc/sasl2/smtpd.conf pwcheck_method: auxprop saslauthd
> 
> Und der geht perverserweise gleich über beides.
> 
> (Oh Mann, wie ich diese Cyrus-Klumpatschgeraffelgrütze hasse! Das
> ist soooooooooo ein Schrott!!!).

Das sehe ich genau so!

Nicht zuletzt deswegen ist das alles so ein MischMasch, weil ich es
damals eben so und nicht anders zum Laufen bekam. Und an und für sich
tat das eben auch OK so bis gestern!

> Nachdem wir nun meine hellseherische Frage (a) geklärt haben, bleibt
> es bei der hellseherischen Frage (b) und (d):
> 
>>> b) Wie ist die Authentifizierung geklärt? Werden dort
>>> Manipulationen an der Login-Kennung gemacht? Wird hier
>>> Groß-/Kleinschreibung vergurkt oder ggf. nicht repariert?
> 
>>> d) Wird hier vielleicht durch irgendeine Config-Änderung ein Teil
>>> der Mailadresse im Authentifizierungsprozeß abgeschnitten? Wird
>>> das ganze vielleicht ohne Domain (%n) durchgereicht?
> 
> Wir erinnern uns: Der lmtp-Socket geht ja über auxprop (und
> funktioniert nicht) während der Rest über salsauthd geht (und
> funktioniert).
> 
> Ich vermute nach wie vor, daß er halt bei ersterem Weg die
> Mailadresse nicht in die Loginkennung umgewandelt bekommt. Da liegt
> Dein Problem. Aber mir fehlt gerade Zeit und Nerv mich jetzt richtig
> in das ganze auxprop-pam-Geraffel einzudenken.

Verstehe ich gut.

Wäre es ein Ansatz, den lmtp-Socket analog zum IMAP auch an saslauthd zu
hängen?

Den Fallback zum jetzigen deliver-Setup habe ich ja in petto.

> Außerdem hast Du nur pam-imap geschickt, man bräuchte hier aber mal 
> Informationen (!!!) und damit komplett die pam-Configs. Sorry, so
> kann man nicht helfen!

Ich bemühe mich ja ... welche pam-files sind relevant? ein lmtp gibt es
dort nicht.

-rw-r--r-- 2 root root  844 Mar 13  2012 imap
lrwxrwxrwx 1 root root    4 Feb 12  2009 imap4 -> imap
lrwxrwxrwx 1 root root    4 Feb 12  2009 imap4s -> imap
lrwxrwxrwx 1 root root    4 Feb 12  2009 imaps -> imap
-rw-r--r-- 2 root root  844 Mar 13  2012 pop
lrwxrwxrwx 1 root root    3 Feb 12  2009 pop3 -> pop
lrwxrwxrwx 1 root root    3 Feb 12  2009 pop3s -> pop
lrwxrwxrwx 1 root root    3 Feb 12  2009 pops -> pop
-rw-r--r-- 1 root root  160 Jan  2 21:12 saslauthd

# diff imap pop
#

(imap hatte ich schon gepostet ...)

# cat smtp
auth sufficient pam_mysql.so user=postfix passwd=*** host=127.0.0.1:3306
db=mail table=accountuser usercolumn=username passwdcolumn=password
crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user
loghostcolumn=host logpidcolumn=pid logtimecolumn=time
account required pam_mysql.so user=postfix passwd=***
host=127.0.0.1:3306 db=mail table=accountuser usercolumn=username
passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg
logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time

# cat saslauthd
#%PAM-1.0

auth       required     pam_nologin.so
auth       include      system-auth
account    include      system-auth
session    include      system-auth

> Aber bemerkenswert ist ja nunmal doch, daß Du hier völlig 
> unterschiedliche Konfigurationen fährst. Wie wäre es mal mit einer 
> Vereinheitlichung? Dann würde es auch auf allen Ports gehen...

Ich bin dazu gerne bereit, deswegen stelle ich ja hier meine Fragen,
weil ich es alleine nicht mehr überblicke.

> Übrigens: In der Zeit, wo Du Dich mit diesem Klumpatsch rumärgerst, 
> hättest Du das schon alles auf Dovecot umstellen können. Die ganze 
> Auth.Maschinerie von Cyrus ist echt Grütze.

Yep.

Mir ist das einfach zu haarig ... daher mein defensives Vorgehen.

Stefan



Mehr Informationen über die Mailingliste Postfixbuch-users