[Postfixbuch-users] reject_sender_login_mismatch ausgetrickst ?

Sandy Drobic postfixbuch-users at japantest.homelinux.com
Di Jul 3 00:34:50 CEST 2007


Dirk Hardt wrote:
> 
> 
> Hallo sehr geehrte Postfix-Freunde.
> 
>  
> 
> Also ganz kurz.

Grins! Kurz ist ja nett ausgedrückt. Deine Mail ist 78 kB lang! Schalte
mal auf "nur Text" um beim Mail senden, dann wird die Mail wieder
erträglich. Das andere Problem dabei ist, dass zwischen jede Zeile eine
Leerzeile geklemmt wurde. Auch dieses Problem verschwindet, wenn die Mail
nicht als HTML verschickt wird.

>  
> 
> Hierbei handelt sich speziell um meinen Fall.
> 
>  
> 
> Ich habe eine Testumgebung die beinhaltet:
> 
>  
> 
> INTERNET à Router 1 --| à Router 2 (Firewall) à MS SBS 2003 Server mit
> Exchange.
> 
>                                     |
> 
>                                     |
> 
>                                 Postfix  (DMZ)
> 

Soweit erst einmal kein Problem. Eine normale Relaykonfiguration.

> 
> Problem 1:
> 
>  
> 
> Ich möchte das mein SBS2003 die Mails, die bei auf Servern der
> öffentlichen Mail-Providern liegen abholen.
> 

Uh, mit dem Wort "Abholen" fangen meistens die Probleme an...

> 
> Auf dem Postfix in der DMZ holt fetchmail die Mails bei den Provider ab.
> 

...weil nach Fetchmail die Mails eigentlich nur noch markiert, in
Quarantäne verschoben oder als schlechteste Lösung gelösch werden können.
Das Problem entsteht dadurch, dass die Mails schon in deinem Namen von
deinem Provider angenommen wurden. Wenn die Mail jetzt abgewiesen wird von
dir, wird dein Server zur Backscatter-Quelle. Wenn du das über einen
Relayserver schickst, verlagert sich das Problem zum Relayserver.

Besonders gefährdet sind die Catch-All-Adressen, die einfach alle Mails
für eine Domain in eine Mailbox schicken. Da bleibt es nicht aus, dass
auch Mails an nicht existierende Empfänger dort landen.

> In der /etc/postfix/transport
> 
>  
> 
> Microsoft-domäne.local        smtp:192.168.55.250
> 
>  
> 
> Hierbei ist 192.168.55.250 die externe IP der Firewall. Das der Postfix
> die Mails auch an den intern liegen Exchange weitergibt, funktioniert
> einwandfrei.
> 
>  
> 
> Nur besteht das Problem, wenn ich
> 
>  
> 
> a)        Mails vom Exchange Server an den Postfix (DMZ) vom internen
> User xyz at microsoft-domäne.local <mailto:xyz at microsoft-domäne.local> , so
> akzeptiert zwar mein postfix die mail, aber die Mail muss zu meinen
> Providern mit einer ganz anderen Mail-Adresse. Z.B. xyz at gmx.de
> <mailto:xyz at gmx.de> etc. Und hier funktioniert die Umsetztung von
> microsoft-domäne.local in gmx.de nicht. Das Problem habe ich temporär
> dadurch gelöst, das mein Exchange beim Versand mit der Mail Adresse
> xyz at gmx.de <mailto:xyz at gmx.de> versehen habe. Die Einlieferung
> funktioniert nur halbwegs. Beim zweiten Provider hingegen, klappt die
> Einlieferung der Mails von user2 at microsoft.domäne.local
> <mailto:user2 at microsoft.domäne.local> an xyz at mein-provider.de
> <mailto:xyz at mein-provider.de> meistens. GMX hingegen bounced die
> Einlieferung.

Für Mails, die dein lokales Netzwerk verlassen, müssen Empfängeradresse
und Absenderadresse unbedingt öffentliche Domainnamen haben. Also Domains,
die im offiziellen DNS registriert sind. Sonst kann der Empfängerserver
weder die Antwort noch eine Bounce an den Absender zurückschicken.

Aus diesen Grund verweigern vernünftig eingerichtete Mailserver die
Annahme von Mails, deren Absender-Adresse nicht zustellbar ist. Bei
Postfix heisst der entsprechende Check reject_unknown_sender_domain.

Normalerweise wird dies mit virtual_alias_maps und
canonical_maps/generic_maps gelöst. Dabei werden mit virtual_alias_maps
die vom Exchange kommenden Mails umgeschrieben auf die externe Domain.
canonical/generic kümmert sich dann darum, dass eingehende Mails wieder
auf die interne Domain umgeschrieben werden.


> b)        Die Mails mit fetchmail abgeholt habe und sie local an Postfix
> übergebe, dann will Postfix stetig ein paar Mails an die Provider
> zurückgeben. Wie kann ich dem Ganzen sagen, „ja ich nehme an, aber ich
> will keine offensichtlichen Spam, Viren etc haben, dann lösche mir den
> Müll. Die anderen liefere an den Exchange aus.“

Dann solltest du zuerst prüfen, warum Postfix die Mails zurückbouncen
will. Wenn die Mails an unbekannte Empfänger gehen, solltest du dir gut
überlegen, ob du wirklich eine Catch-All-Adresse haben willst. Diese sind
nämlich auch unter dem Namen "Spam-Magnet" bekannt.

Die Frage, was mit Spam/Viren geschehen soll, wird nicht in Postfix,
sondern in Amavisd-new entschieden. Dort solltest du die Parameter dann
entsprechend setzen.

$final_virus_destiny      = D_DISCARD;
$final_spam_destiny = D_DISCARD;

Dabei würde ich dir raten, eine Quarantäne auf eine Emailadresse
einzurichten, denn es gibt immer wieder mal eine falsch als Spam erkannte
Mail. Diese Mailbox sollte dann nur der Administrator bzw. ein Beauftrager
überwachen.

>  
> 
> Hier einmal ein mail.info - Auszug: Jul  2 22:27:02 vivini
> postfix/smtpd[4798]: connect from localhost[127.0.0.1]
> 
> Jul  2 22:27:02 vivini postfix/smtpd[4798]: 6F65A1F80D1:
> client=localhost[127.0.0.1]
> 
> Jul  2 22:27:02 vivini postfix/cleanup[4800]: 6F65A1F80D1:
> message-id=<44E2777E035B1C47B688DEA859F0029F315A79 at mexch-84.chemnitz.ifdgroup.com>
> 
> 
> Jul  2 22:27:02 vivini postfix/qmgr[3499]: 6F65A1F80D1:
> from=<dirk.hardt at ifdag.de>, size=3644, nrcpt=1 (queue active)
> 
> Jul  2 22:27:02 vivini postfix/smtpd[4798]: disconnect from
> localhost[127.0.0.1]
> 
> Jul  2 22:27:02 vivini amavis[4746]: (04746-02-2) Passed CLEAN, LOCAL
> [192.168.55.240] [194.25.240.194] <dirk.hardt at ifdag.de> ->
> <xyz at microsoft-domäne.local>,
> 
> Jul  2 22:27:02 vivini postfix/smtp[3512]: 48BC81F80D9: to=<
> xyz at microsoft-domäne.local >, relay=localhost[127.0.0.1]:10024,
> conn_use=2, delay=2224, delays=102/1

Wow, die mail hat ja verflixt lange herumgegammelt! 2224 Sekunden ist
schon eine Menge Zeit.

> Jul  2 22:27:02 vivini postfix/qmgr[3499]: 48BC81F80D9: removed
> 
> Jul  2 22:27:02 vivini postfix/smtp[4801]: 6F65A1F80D1: to=<
> xyz at microsoft-domäne.local >, relay=192.168.55.250[192.168.55.250]:25,
> delay=0.27, delays=0.06/0.04/
> 
> Jul  2 22:27:02 vivini postfix/qmgr[3499]: 6F65A1F80D1: removed
> 
> Jul  2 22:27:03 vivini amavis[4746]: (04746-03) (!) ClamAV-clamd: Can't
> connect to UNIX socket /var/run/clamav/clamd.ctl: No such file or
> directory, retryin

Und das dürfte wohl der Grund sein. Clam-AV läuft nicht, weil er nicht auf
den Socket zugreifen kann. Kontrolliere die Rechte auf diesen Socket und
passe sie an.


> Jul  2 22:27:06 vivini amavis[4738]: (04738-02-2) Blocked SPAM, LOCAL
> [192.168.55.240] [58.78.105.84] <rmztmjlsdk at punkass.com> ->
> <dhardt at itss-hardt.local>,

Uh, oh, "Blocked SPAM" bedeutet, dass bei Amavisd-new bei dir für
final_spam_destiny = D_REJECT" gesetzt ist. Dies führt dazu, dass der Spam
jetzt als Backscatter an die gefälschte Absenderadresse geschickt wird.

> Jul  2 22:27:06 vivini postfix/smtp[3513]: DF3421F80ED: to=<
> xyz at microsoft-domäne.local >, relay=localhost[127.0.0.1]:10024,
> conn_use=2, delay=2221, delays=95/19

Ist das schon ein 486er oder noch ein 286er?!?

> Jul  2 22:27:06 vivini postfix/qmgr[3499]: DF3421F80ED: removed
> 
> Jul  2 22:27:07 vivini amavis[4738]: (04738-03) (!) ClamAV-clamd: Can't
> connect to UNIX socket /var/run/clamav/clamd.ctl: No such file or
> directory, retryin
> 
> Jul  2 22:27:09 vivini amavis[4746]: (04746-03) (!!) ClamAV-clamd
> av-scanner FAILED: Too many retries to talk to /var/run/clamav/clamd.ctl
> (Can't connect to
> 
> Jul  2 22:27:09 vivini amavis[4746]: (04746-03) (!!) WARN: all primary
> virus scanners failed, considering backups
> 
> Jul  2 22:27:15 vivini amavis[4738]: (04738-03) (!!) ClamAV-clamd
> av-scanner FAILED: Too many retries to talk to /var/run/clamav/clamd.ctl
> (Can't connect to

Das solltest du mit Priorität in Ordnung bringen.

> Jul  2 22:27:15 vivini amavis[4738]: (04738-03) (!!) WARN: all primary
> virus scanners failed, considering backups
> 
> Jul  2 22:29:33 vivini postfix/smtpd[4811]: connect from
> localhost[127.0.0.1]
> 
> Jul  2 22:29:33 vivini postfix/smtpd[4811]: AADE81F80D1:
> client=localhost[127.0.0.1]
> 
> Jul  2 22:29:33 vivini postfix/cleanup[4813]: AADE81F80D1:
> message-id=<SS6myEX6PinX6w at vivini.itss-hardt.local>
> 
> Jul  2 22:29:33 vivini postfix/qmgr[3499]: AADE81F80D1: from=<>,
> size=4277, nrcpt=1 (queue active)

Und hier geht jetzt die Bounce auf die Reise. Gar nicht gut.


> Ich hoffe, dass ich mich so gut wie möglich ausgedrückt habe. Ich suche
> eine wirkliche Lösung zu diesem „gebounce und reject“ – Krieg. Und ich
> endlich mich mit meinen Providern wider gut stimmen kann.

Ich finde es schon klasse, dass du dir die Mühe machst und die Situation
wirklich in Ordnung bringen willst. Dafür ist diese Mailinglist da, dass
Hilfe gegeben wird.

> Zum Abschluss hatte ich mir überlegt, vielleicht ist es besser, der
> Exchange holt die Mails bei meinem Postfix ab und wartet nicht bis
> Postfix sie ihm zustellt. Vielleicht bekommt man dadurch ruhe rein.

Nein, die Situation wird nur besser, wenn du eine klare Vorstellung davon
hast, wie welche Mails behandelt werden sollen und dann dieses Konzept
auch sauber umgesetzt wird.

> Ich denke, in den Konfigs ist jede Menge zu beanstanden.

Soviel ist da gar nicht zu verbessern. Solange du die Mails noch mit
Fetchmail abholst und nicht direkt aus dem Internet empfängst, kann
Postfix absolut nichts gegen den Spam tun.

Bezüglich des Konzeptes, wie welche Mails behandelt werden sollten,
schlage ich folgendes vor:

- Mails von extern werden von Fetchmail gepollt und an Postfix übergeben.

- Wenn eine Catchall-Adresse existiert, richte luser_relay ein. Dies ist
eine Sammeladresse, an welche alle unbekannten User umgeschrieben werden.

- Postfix sorgt dafür, dass der content_filter immer schön nur zwei Mails
parallel bearbeitet.

- Amavisd-new wird so konfiguriert, dass Viren in eine Viren-Mailbox
gehen, auf die nur der Admin zugriff hat.

- Spam sollte entweder auf eine zweite Adresse gehen oder dem User
zugestellt werden, aber dann so markiert, dass der Spam per Filterregel in
einen Spamordner geschoben wird. Wenn Spam in eine zweite Adresse geht,
sollte ein Mitarbeiter regelmäßig prüfen, ob auch wirklich nur Spam
erkannt wurde und nicht etwa ein paar falsch als Spam erkannt in den
Ordner vorschoben wurden.

Bei ausgehenden Mails muss darauf geachtet werden, dass die Mails eine
offizille Absenderadresse haben, da sonst die Antwortmail nicht zugestellt
werden kann. In Japan ist die domain microsoft-domäne.local leider nicht
bekannt.

Ab Version 2.3 kennt Postfix sender_dependent_relayhost, mit dem man
abhängig vom Absender den Versand an einen bestimmten Server senden kann.
Also die Mails mit Absender xxx at gmx.de über GMX und die mit yyy at web.de
über web.de mit den entsprechenden Kennwörtern und Benutzernamen.
Ist nicht ganz trivial einzurichten, aber möglich.

Die Version von Postfix kannst du mit "postconf mail_version" feststellen.



-- 
Sandy

Antworten bitte nur in die Mailingliste!
PMs bitte an: news-reply2 (@) japantest (.) homelinux (.) com




Mehr Informationen über die Mailingliste Postfixbuch-users