[Postfixbuch-users] Restrictions

Kai Fürstenberg kai_postfix at fuerstenberg.ws
Sa Feb 8 20:25:16 CET 2014


Am 08.02.2014 01:39, schrieb Silvio Siefke:
> Das meinte ich, diese restriction sind ehrlich nicht einfach zu verstehen.

Worauf Patrick hinauswollte war, dass du in 
smtpd_(client|helo)_restrictions ein "permit_sasl_authenticated" stehen 
hast. Das gehört dort gar nicht hin, weil weder nach dem Connect noch 
dem HELO ein SASL Login erfolgt ist. Diese Restriktion dort 
reinzuschreiben ist schlicht unlogisch.

Die Restriktionen allgemein sind sogar sehr einfach zu verstehen, aber 
du musst das Gesamtbild betrachten:

Man darf nicht hergehen, und sich von den client/helo/sender/recipient 
und relay-restrictions in die Irre führen lassen. Man kann generell ALLE 
Restriktionen in die smtpd_recipient_restrictions setzen, oder man teilt 
sie sinnvoll auf zwei Parameter auf, wie es mittlerweile eigentlich 
üblich ist:

Du brauchst im allgemeinen nur diese zwei Parameter, nämlich 
smtpd_relay_restrictions und smtpd_recipient_restrictions, wobei die 
relay_restrictions sogar noch in die recipient_restrictions reinkönnen, 
und ersterer dafür leer bleibt (den müsstest du dann aber auch explizit 
als leer definieren).

smtpd_relay_restrictions sind für die Zulassung von ausgehenden Mails 
(typischerweise SASL auth). Also für dich:
smtpd_relay_restrictions =
   permit_mynetworks
   permit_sasl_authenticated

In die smtpd_recipient_restrictions kommen dann die Restriktionen für 
eingehende Mails rein.

Bei dir also (ich hab noch etwas angepasst und weggelassen, erkläre ich 
unten):

smtpd_recipient_restrictions =
   reject_unauth_destination
   reject_invalid_helo_hostname
   reject_non_fqdn_helo_hostname
   reject_unknown_helo_hostname
   check_policy_service unix:private/policyd-spf
   check_policy_service unix:private/postgrey

reject_unknown_recipient_domain habe ich weggelassen. Warum?: Dieser 
Parameter betrifft nur Relay-Mails, also ausgehende Mails. Die Domains, 
die du hostest, sind niemals unbekannt. Nur fremde Domains können 
unbekannt sein, und damit sind von diesem Parameter nur authentifizierte 
Mails deiner User betroffen. Wenn du diesen dennoch verwenden willst, 
muss der _vor_ das permit_sasl_authenticated in die 
smtpd_relay_restrictions.

reject_invalid/unknown/non_fqdn_hostname heißen jetzt *_helo_hostname 
(ich gehe mal davon aus, dass du nicht mehr Version 2.2 oder früher 
verwendest).
Übrigens: Die Verwendung der helo_restriktionen erzeugt allgemein recht 
viele false positives im Normalgebrauch, da der HELO-Name vielfach nicht 
dem DNS-Hostnamen entspricht, gescheige denn überhaupt irgendwas 
sinnvolles enthält. Auf das HELO kann man sich genau so wenig verlassen, 
wie auf fremde Absender-E-Mail-Adressen.

Sinnvoller wären Client-Restriktionen wie
   reject_non_fqdn_sender
   reject_unknown_sender_domain
Aber auch die gehören in die RECIPIENT-restrictions.

Das permit am Ende kann man weglassen. Was bis dahin durchkommt, wird eh 
angenommen, kann man der Übersicht halber aber auch stehen lassen.

So, und mehr steht bei dir nicht drin in deinen Restriktionen. Durch 
Verwendung der Helo- und Client_restrictions hast du einiges doppelt 
drin gehabt, was gar nicht nötig war.

Damit dürfte das ganze schon wesentlich einfacher aussehen.
Wichtig ist: Die Restriktionen werden nacheinander in der Reihenfolge 
ausgeführt, in der du sie aufgeschrieben hast. Sobald eine Restriktion 
greift wird sie ausgeführt, der Rest interessiert danach nicht mehr.

-- 
Kai Fürstenberg

PM an kai at fuerstenberg punkt ws



Mehr Informationen über die Mailingliste Postfixbuch-users