Re: Verständnisproblem access restrictions
Joachim Fahrner
jf at fahrner.name
Mo Mär 20 14:57:49 CET 2017
Hallo Patrick,
danke für die ausführliche und (glaube ich jedenfalls) verständliche
Erklärung.
Ich versuche mal daraus Schlüsse zu ziehen, korrigiere mich bitte wenn
ich etwas falsch verstanden habe.
Am 2017-03-20 11:27, schrieb Patrick Ben Koetter:
> Deshalb wird der Moment, zu dem der Postfix smtpd-Server REJECT (lies:
> "Ich
> wünsche das Ende der Session") sagt, bis zu dem Moment verzögert an dem
> der
> Client den (ersten) Recipient gesendet hat.
Ok, das war einer der Gründe. Ein anderer war, damit man im Log auch
sieht von wem die Mail kam und an wen sie gehen sollte?
> Folglich war es best
> practice, alle restrictions in die smtpd_recipient_restrictions zu
> schreiben
> und alle anderen smtpd_*_restrictions gar nicht zu füllen.
Ok, also gibt es keinen Grund die anderen restrictions zu füllen, wenn
man den Reject ohnehin verzögert.
Oder umgekehrt, die machen nur Sinn wenn man den Reject frühzeitig
ausführen will.
> Wir haben mit dem postscreen-Daemon *sehr gute* Erfahrungen gemacht und
> trennen MUAs (587) von MTAs (25). Die Trennung gestattet uns auf dem
> Port 25
> smtpd_delay_reject auf "no" zu setzen und so zu *jedem Zeitpunkt* MTAs
> zu
> REJECTEN, wenn unsere Filter das für nötig befinden.
Postscreen und Port 587 nutze ich ebenfalls. Man verliert mit dem
frühzeitigen Reject aber auch die Info von wem da was geblockt wurde.
Kosten die Schritte vor dem RCPTTO wirklich soviel Resourcen, dass sich
das lohnt? Solange in diesen Schritten noch keine Prüfungen stattfinden,
muss Postfix sich doch eigentlich nur die gelieferte Information merken,
bis zum finalen Schritt.
Mit Postscreen habe ich mittlerweile ein kleines Problem: wenn ich darin
aggressive Blacklisten verwende (z.B. Sorbs), dann wird zuviel geblockt
und ich habe an der Stelle keine Möglichkeit bestimmte Absender zu
whitelisten. Das könnte ich nur bei den recipient_restrictions. Ich
überlege gerade, ob es Sinn machen würde, bei postscreen nur weniger
aggresive Blacklists einzutragen, und in recipient_restrcitions die
aggressiveren, und davor eine whitelist.
> Ein permit_mynetworks *muss* in den smtpd_recipient_restriction sein.
> Zu
> diesem Zeitpunkt gibt der Client bekannt an wen er senden will und
> (erst) dann
> kann Postfix entscheiden, ob die Nachricht
>
> - von einem vertrauenswürdigen Netzwerk (mynetworks) gesendet werden
> soll oder
> - an einen Empfänger gehen soll, für den Postfix selbst zu ständig ist.
>
> Wenn beides nicht gegeben ist, sendet ein Unvertrauter an jemanden für
> den der
> Server nicht zuständig ist. Das unterbindet er mit einem REJECT, denn
> er wäre
> sonst ein Open Relay.
Hmm, grübel... heisst das, die recipent_restriction wird auch auf dem
Port 587 durchgeführt?
Wenn ja, die anderen dann nicht? Wo ist der Unterschied zwischen 25 und
587 bei den restrictions?
Wenn nein, warum muss dann permit_mynetworks drin sein?
Und was ist mit lokalen Programmen (mailx, php), auf welchem Weg kippen
die ihre Mails ein?
> Ob ein permit_mynetworks in den vorherigen Phasen der Session - CLIENT,
> HELO,
> MAIL FROM - oder anschliessend - DATA, END_OF_DATA - sinnvoll ist,
> musst Du
> ihm Rahmen Deiner konkreten Policy entscheiden.
Wenn alle MUAs über 587 einkippen braucht's das nicht?
Gruss
Jochen
Mehr Informationen über die Mailingliste postfix-users