[postfix-users] Fwd: Re: Forwarding Loop?
Am 26.09.10 17:57, schrieb Uwe Driessen:
kann mir mal jemand das Brett vorm Kopf wegnehmen:
Sep 26 10:53:51 zarafa postfix/local[9910]: CEF0C3421D: to=pjustin@xxxxx, orig_to=pia.justin@xxxxx, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=5.4.6, status=bounced (mail forwarding loop for pjustin@xxxxxx)
In der /etc/aliases steht:
pjustin: pjustin,sandretzki
Und was steht bei sandretzki in der Zeile?
für sandretzki gibt es keinen Alias:
zarafa:~# grep "^sandretzki:" /etc/aliases zarafa:~#
...bin daher ziemlich ratlos.
Gruß,
Jörn
On Behalf Of Joern Bredereck
Am 26.09.10 17:57, schrieb Uwe Driessen:
kann mir mal jemand das Brett vorm Kopf wegnehmen:
Sep 26 10:53:51 zarafa postfix/local[9910]: CEF0C3421D: to=pjustin@xxxxx, orig_to=pia.justin@xxxxx, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=5.4.6, status=bounced (mail forwarding loop for pjustin@xxxxxx)
http://listi.jpberlin.de/pipermail/postfixbuch-users/2005-April/016343.html
In der /etc/aliases steht:
pjustin: pjustin,sandretzki
Und was steht bei sandretzki in der Zeile?
für sandretzki gibt es keinen Alias:
zarafa:~# grep "^sandretzki:" /etc/aliases zarafa:~#
...bin daher ziemlich ratlos.
Wieso ratlos? Wer ist denn sandretzki ich glaube nicht das Postfix schon den Glaskugel Modus unterstützt.
http://www.postfix.org/aliases.5.html
The format of the alias database input file is as follows:
o An alias definition has the form
name: value1, value2, ...
o Empty lines and whitespace-only lines are ignored, as are lines whose first non-whitespace character is a `#'.
o A logical line starts with non-whitespace text. A line that starts with whitespace continues a logi- cal line.
The name is a local address (no domain part). Use double quotes when the name contains any special characters such as whitespace, `#', `:', or `@'. The name is folded to lowercase, in order to make database lookups case insensi- tive.
In addition, when an alias exists for owner-name, delivery diagnostics are directed to that address, instead of to the originator of the message. This is typically used to direct delivery errors to the maintainer of a mailing list, who is in a better position to deal with mailing list delivery problems than the originator of the undeliv- ered mail.
Ist sandretzki ein lokaler User der Mail erhalten darf? Dann muß der auch in der alias sein.
Ist das ein virtueller User? Eine Relayadresse? Kurz wer ist das und wo wohnt er (hat er einen Briefkasten)?
Postconf -n , master.cf ohne Kommentare und komplettes log zu dem Vorgang.
Irgendwo ist ein Fehler in der Definition wer wie eine Mail im fall pjustin bekommen soll.
Mit freundlichen Grüßen
Drießen
Am 26.09.10 19:20, schrieb Uwe Driessen:
Sep 26 10:53:51 zarafa postfix/local[9910]: CEF0C3421D: to=pjustin@xxxxx, orig_to=pia.justin@xxxxx, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=5.4.6, status=bounced (mail forwarding loop for pjustin@xxxxxx)
http://listi.jpberlin.de/pipermail/postfixbuch-users/2005-April/016343.html
richtig... wobei diese Festellung alleine noch nicht wirklich weiterhilft, denn dass der Deliverd-Header bereits gesetzt ist, kann verschiedene Ursachen haben.
In der /etc/aliases steht:
pjustin: pjustin,sandretzki
Und was steht bei sandretzki in der Zeile?
für sandretzki gibt es keinen Alias:
zarafa:~# grep "^sandretzki:" /etc/aliases zarafa:~#
...bin daher ziemlich ratlos.
Wieso ratlos? Wer ist denn sandretzki ich glaube nicht das Postfix schon den Glaskugel Modus unterstützt.
sandretzki ist ein lokaler User aus der /etc/passwd. Postfix übergibt die E-Mails also folgerichtig an Procmail:
mailbox_command = procmail -a "$EXTENSION"
Das hat auch immer geklappt und war nicht das Problem.
Die Lösung des Problems hatte ich eben bereits gepostet: Der Eintrag "pjustin" im rechten Teil der Alias-Table hat aufgrund eine falsch gesetzten $myorigin-Zeile auf eine Domain expandiert, die keine localdomain, sondern eine virtualdomain war. Diese Domain wurde dann per virtualtable wieder auf die lokale Domain zurückgemapped und damit ein zweites mal an pjustin@lokale-domain delivered. Das hat dann den Loop verursacht.
Mir war ehlichgesagt nicht klar, dass $myorigin einen Einfluss auf die Expandierung der Ziele in der /etc/aliases Einfluss hat. Ich ging bisher immer davon aus dass $myorigin nur für das generieren des Domainparts bei lokal versendeten Mails eine Rolle spielt.
Ist sandretzki ein lokaler User der Mail erhalten darf? Dann muß der
auch in der alias
sein.
Bitte? Warum sollte er in der Alias-Table (auf der linken Seite?) stehen?
Ist das ein virtueller User?
Nein. Local User.
Eine Relayadresse? Kurz wer ist das und wo wohnt er (hat er einen Briefkasten)?
ein lokaler User in der /etc/passwd mit $HOME-Verzeichnis, $HOME/.procmailrc und allem was dazugehört.
Irgendwo ist ein Fehler in der Definition wer wie eine Mail im fall pjustin bekommen soll.
wie gesagt: Der Fehler lag darin, dass auf die falsche lokale Domain expandiert wurde. Nachdem ich in $myorigin wieder die richtige localdomain eingetragen habe, klappts auch mit den Aliasen wieder.
Einziger Haken an der Sache: Lokal verschickte mails (z.B. Crontab-Job-Mails etc..) gehen jetzt wieder mit dem Domainpart der alten Domain raus. Hier müsste man wohl noch etwas Masquerading betreiben... Aber das ist letztlich Kosmetik.
Gruß,
Jörn
Hallo,
Am 26.09.10 18:36, schrieb Joern Bredereck:
kann mir mal jemand das Brett vorm Kopf wegnehmen:
Sep 26 10:53:51 zarafa postfix/local[9910]: CEF0C3421D: to=pjustin@xxxxx, orig_to=pia.justin@xxxxx, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=5.4.6, status=bounced (mail forwarding loop for pjustin@xxxxxx)
In der /etc/aliases steht:
pjustin: pjustin,sandretzki
ich hab's gerade rausgefunden:
Wir mappen per virtual_alias_maps eine neue Domain auf die alte Domain um:
@neuedomain @altedomain
Diese Postfix-Instanz ist für "altedomain" $mydestination. Die neue Domain ist hingegen nur eine $virtual_alias_domains
Jetzt habe ich leider den Fehler gemacht und vor ein paar Tagen $myorigin auf "neuedomain" gesetzt. Ich wollte damit erreichen, dass E-Mails die neue Domain im Domainpart als Absender tragen.
Das führt dann allerdings wohl dazu, dass
pjustin: pjustin,sandretzki
auf pjustin@neuedomain und sandretzki@neuedomain expandieren.
pjusting@neuedomain wird daher erneut auf pjustin@altedomain gemappt und damit wird ein weiterer Durchlauf durch die /etc/aliases angestossen. Das führt dann wohl zu dem Loop.
Also merken wir uns: $myorigin darf keine virtualdomain sein, falls ein Domainremapping für $myorigin stattfindet - ansonsten gibt's einen Loop. Wieder was gelernt...
Gruß,
Jörn
Hallo,
Wir mappen per virtual_alias_maps eine neue Domain auf die alte Domain um:
@neuedomain @altedomain
wobei du dabei auch aufpassen musst, da so alle E-Mails für alle Empfänger in neuedomain angenommen werden, auch wenn diese in altedomain gar nicht existieren:
Note: @domain is a wild-card. With this form, the Postfix SMTP server accepts mail for any recipient in domain, regardless of whether that recipient exists. This may turn your mail system into a backscatter source: Postfix first accepts mail for non-existent recipients and then tries to return that mail as "undeliverable" to the often forged sender address.
s. http://www.postfix.org/virtual.5.html
Gruß Christian
* christian.flothmann@xabbuh.de christian.flothmann@xabbuh.de:
Hallo,
Wir mappen per virtual_alias_maps eine neue Domain auf die alte Domain um:
@neuedomain @altedomain
wobei du dabei auch aufpassen musst, da so alle E-Mails für alle Empfänger in neuedomain angenommen werden, auch wenn diese in altedomain gar nicht existieren:
Note: @domain is a wild-card. With this form, the Postfix SMTP server accepts mail for any recipient in domain, regardless of whether that recipient exists. This may turn your mail system into a backscatter source: Postfix first accepts mail for non-existent recipients and then tries to return that mail as "undeliverable" to the often forged sender address.
Es ist dann besser, die map für die eine Domain mit awk, sed oder so in die Map für die andere Domain umzuwandeln...
cat map.txt | sed "s/@alte.example/@neue.example/g" > map2.txt
Hallo Christian,
Am 29.09.10 11:43, schrieb christian.flothmann@xabbuh.de:
Wir mappen per virtual_alias_maps eine neue Domain auf die alte
Domain um:
@neuedomain @altedomain
wobei du dabei auch aufpassen musst, da so alle E-Mails für alle Empfänger in neuedomain angenommen werden, auch wenn diese in altedomain gar nicht existieren:
Note: @domain is a wild-card. With this form, the Postfix SMTP server accepts mail for any recipient in domain, regardless of whether that recipient exists. This may turn your mail system into a backscatter source: Postfix first accepts mail for non-existent recipients and then tries to return that mail as "undeliverable" to the often forged sender address.
mhm... sicher dass das auch dann gilt, wenn die Ziel-Domain lokal ist, und somit direkt verifziert werden kann?
Hab's eben mal getestet:
mail:~# grep-virtual.sh bwmail.org @bwmail.org @bw-networx.net
JOERN-BREDERECKs-MacBook-Pro-2:~ JB$ telnet mail.bw-networx.net 25 Trying 78.46.208.43... Connected to mail.bw-networx.net. Escape character is '^]'. 220 mail.bw-networx.net ESMTP Postfix (Debian/GNU) helo bredereck.net 250 mail.bw-networx.net mail from: joern@bredereck.net 250 2.1.0 Ok rcpt to: gibtsnicht@bwmail.org 550 5.1.1 gibtsnicht@bwmail.org: Recipient address rejected: undeliverable address: User unknown in virtual alias table quit 221 2.0.0 Bye Connection closed by foreign host.
mail:~# grep gibtsnicht /var/log/mail.log Sep 29 12:03:17 mail postfix/error[30181]: 4C2959EE84: to=gibtsnicht@bw-networx.net, orig_to=gibtsnicht@bwmail.org, relay=none, delay=0.05, delays=0.04/0.01/0/0, dsn=5.0.0, status=undeliverable (User unknown in virtual alias table) Sep 29 12:03:20 mail postfix/smtpd[29788]: NOQUEUE: reject: RCPT from HSI-KBW-109-193-166-238.hsi7.kabel-badenwuerttemberg.de[109.193.166.238]: 550 5.1.1 gibtsnicht@bwmail.org: Recipient address rejected: undeliverable address: User unknown in virtual alias table; from=joern@bredereck.net to=gibtsnicht@bwmail.org proto=SMTP helo=<bredereck.net>
Möglicherweise gilt das nur, wenn die Ziel-Domain nicht lokal, sondern nur eine relay-domain ist?
Ich habe mit Domain-Mappings dieser Art jedenfalls noch nie Probleme gehabt. Unbekannte Adressaten wurden immer direkt rejected und nicht erst später gebounced.
Gruß,
Jörn
* Joern Bredereck jb@bw-networx.net:
mhm... sicher dass das auch dann gilt, wenn die Ziel-Domain lokal ist, und somit direkt verifziert werden kann?
Ja
Hab's eben mal getestet:
mail:~# grep-virtual.sh bwmail.org @bwmail.org @bw-networx.net
JOERN-BREDERECKs-MacBook-Pro-2:~ JB$ telnet mail.bw-networx.net 25 Trying 78.46.208.43... Connected to mail.bw-networx.net. Escape character is '^]'. 220 mail.bw-networx.net ESMTP Postfix (Debian/GNU) helo bredereck.net 250 mail.bw-networx.net mail from: joern@bredereck.net 250 2.1.0 Ok rcpt to: gibtsnicht@bwmail.org 550 5.1.1 gibtsnicht@bwmail.org: Recipient address rejected: undeliverable address: User unknown in virtual alias table quit 221 2.0.0 Bye Connection closed by foreign host.
Und der gegentest mit einer existenten Adresse?
Möglicherweise gilt das nur, wenn die Ziel-Domain nicht lokal, sondern nur eine relay-domain ist?
Nein.
Ich habe mit Domain-Mappings dieser Art jedenfalls noch nie Probleme gehabt. Unbekannte Adressaten wurden immer direkt rejected und nicht erst später gebounced.
Nein, wirklich nicht. Es ist ein lange offener Featurerequest in Postfix
Hallo Ralf,
Am 29.09.10 12:47, schrieb Ralf Hildebrandt:
mhm... sicher dass das auch dann gilt, wenn die Ziel-Domain lokal ist, und somit direkt verifziert werden kann?
Ja
Hab's eben mal getestet:
mail:~# grep-virtual.sh bwmail.org @bwmail.org @bw-networx.net
JOERN-BREDERECKs-MacBook-Pro-2:~ JB$ telnet mail.bw-networx.net 25 Trying 78.46.208.43... Connected to mail.bw-networx.net. Escape character is '^]'. 220 mail.bw-networx.net ESMTP Postfix (Debian/GNU) helo bredereck.net 250 mail.bw-networx.net mail from: joern@bredereck.net 250 2.1.0 Ok rcpt to: gibtsnicht@bwmail.org 550 5.1.1 gibtsnicht@bwmail.org: Recipient address rejected: undeliverable address: User unknown in virtual alias table quit 221 2.0.0 Bye Connection closed by foreign host.
Und der gegentest mit einer existenten Adresse?
shell:~# telnet mail.bw-networx.net 25 Trying 78.46.208.43... Connected to mail.bw-networx.net. Escape character is '^]'. 220 mail.bw-networx.net ESMTP Postfix (Debian/GNU) helo bredereck.net 250 mail.bw-networx.net mail from: joern@bredereck.net 250 2.1.0 Ok rcpt to: jb@bwmail.org 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> subject: test test . 250 2.0.0 Ok: queued as 1982B9EBD1 quit 221 2.0.0 Bye Connection closed by foreign host.
mail:~# grep jb@bwmail.org /var/log/mail.log Sep 29 12:58:27 mail postfix/policyd-weight[29980]: weighted check: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 HELO_IP_IN_CL16_SUBNET=-0.41 RESOLVED_IP_IS_NOT_HELO=1.5 (check from: .bredereck. - helo: .bredereck. - helo-domain: .bredereck.) FROM/MX_MATCHES_UNVR_HELO(DOMAIN)=-1.5; <client=78.46.212.230> <helo=bredereck.net> from=joern@bredereck.net to=jb@bwmail.org; rate: -4.91 Sep 29 12:58:27 mail postfix/policyd-weight[29980]: decided action=PREPEND X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 HELO_IP_IN_CL16_SUBNET=-0.41 RESOLVED_IP_IS_NOT_HELO=1.5 (check from: .bredereck. - helo: .bredereck. - helo-domain: .bredereck.) FROM/MX_MATCHES_UNVR_HELO(DOMAIN)=-1.5; rate: -4.91; <client=78.46.212.230> <helo=bredereck.net> from=joern@bredereck.net to=jb@bwmail.org; delay: 1s Sep 29 12:58:36 mail postfix/local[4264]: 1982B9EBD1: to=jb@mail2.bw-networx.net, orig_to=jb@bwmail.org, relay=local, delay=16, delays=16/0/0/0.01, dsn=2.0.0, status=sent (forwarded as E35C99EDFC)
Das Remapping funktioniert natürlich; wir verwenden die Domain bwmail.org sehr intensiv, weil Sie kürzer und einfacher zu merken ist, als bw-networx.net. "jb" ist ein lokaler User auf dem Server. Der generische Hostname lautet "mail2.bw-networx.net", daher wird die E-Mails letztlich an jb@mail2.bw-networx.net lokal zugestellt.
Möglicherweise gilt das nur, wenn die Ziel-Domain nicht lokal, sondern nur eine relay-domain ist?
Nein.
Ich habe mit Domain-Mappings dieser Art jedenfalls noch nie Probleme gehabt. Unbekannte Adressaten wurden immer direkt rejected und nicht erst später gebounced.
Nein, wirklich nicht. Es ist ein lange offener Featurerequest in Postfix
Interessant. Welche Erklärung gibts dann dafür, dass es in meinen Setups (ich verwende solche Domainremappings auf einer ganzen Reihe von Postfix-Servern) funktioniert?
Könnte es möglicherweise daran liegen:
mail:~# grep verified /etc/postfix/main.cf reject_unverified_recipient, unverified_recipient_reject_code = 550
Der MX verifiziert übrigens auch die Empfänger von nicht lokalen Usern; also für die relay_domains, für die er zuständig ist:
mail:~# postconf -n |grep verify address_verify_negative_cache = yes address_verify_negative_refresh_time = 1h address_verify_positive_expire_time = 14d address_verify_transport_maps = hash:/etc/postfix/verify
Damit haben wir auch keinen Backscatter bei den relay-domains.
Gruß,
Jörn
* Joern Bredereck jb@bw-networx.net:
Das Remapping funktioniert natürlich; wir verwenden die Domain bwmail.org sehr intensiv, weil Sie kürzer und einfacher zu merken ist, als bw-networx.net. "jb" ist ein lokaler User auf dem Server. Der generische Hostname lautet "mail2.bw-networx.net", daher wird die E-Mails letztlich an jb@mail2.bw-networx.net lokal zugestellt.
Interessant. Welche Erklärung gibts dann dafür, dass es in meinen Setups (ich verwende solche Domainremappings auf einer ganzen Reihe von Postfix-Servern) funktioniert?
Keene Ahnung.
Könnte es möglicherweise daran liegen:
mail:~# grep verified /etc/postfix/main.cf reject_unverified_recipient, unverified_recipient_reject_code = 550
Könnte sein.
Am 29.09.10 13:19, schrieb Ralf Hildebrandt:
Könnte es möglicherweise daran liegen:
mail:~# grep verified /etc/postfix/main.cf reject_unverified_recipient, unverified_recipient_reject_code = 550
Könnte sein.
Ich hab's mal schnell ausprobiert und habe "reject_unverfied_recipient" rausgenommen.
Ergebnis:
shell:~# telnet mail.bw-networx.net 25 Trying 78.46.208.43... Connected to mail.bw-networx.net. Escape character is '^]'. 220 mail.bw-networx.net ESMTP Postfix (Debian/GNU) helo bredereck.net 250 mail.bw-networx.net mail from: joern@bredereck.net 250 2.1.0 Ok rcpt to: gibtsnicht@bwmail.org 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> subject: test test . 250 2.0.0 Ok: queued as 1C27B9EE91
mail:~# grep gibtsnicht /var/log/mail.log Sep 29 13:23:59 mail postfix/policyd-weight[7522]: decided action=PREPEND X-policyd-weight: using cached result; rate: -4.91; <client=78.46.212.230> <helo=bredereck.net> from=joern@bredereck.net to=gibtsnicht@bwmail.org; delay: 0s Sep 29 13:24:09 mail postfix/error[7902]: 1C27B9EE91: to=gibtsnicht@bw-networx.net, orig_to=gibtsnicht@bwmail.org, relay=none, delay=16, delays=16/0.01/0/0.01, dsn=5.0.0, status=bounced (User unknown in virtual alias table)
Ergo: es liegt tatsachlich am "reject_unverified_recipient".
Aber ehrlichgesagt sehe ich das Problem dann nicht, denn reject_unverified_recipient sollte doch eigentlich immer angeschaltet sein, oder?
Gruß,
Jörn
participants (4)
-
christian.flothmann@xabbuh.de
-
Joern Bredereck
-
Ralf Hildebrandt
-
Uwe Driessen