Login
Newsletter
Werbung

Sa, 6. Dezember 2003, 00:00

Postfix UCE-HOWTO

reject_unknown_hostname

Verwirft den im HELO/EHLO angegebenen Hostnamen, welcher keinen DNS Rekord vom Typ A oder MX hat. Hier ist es auch sinnvoll permit_mynetworks zuerst anzugeben, wenn man ein Relay-MTA für das innere Netzwerk ist.

reject_non_fqdn_hostname

Verwirft den im HELO/EHLO angegebenen Hostnamen, wenn dieser nicht in FQDN-Form ist. Was bedeutet FQDN? Full Qualified Domain Name. Dafür ein Beispiel: www.chains.ch ist ein FQDN.

warn_if_reject

Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.

check_helo_access

Löst den im HELO/EHLO angegebenen Hostnamen oder die Parent-Domain auf.

permit_mynetworks

Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.

smtpd_sender_restrictions

reject_unknown_sender_domain

Verwirft die Sender-Domain, wenn diese keinen DNS-Record vom Typ A oder MX hat.

reject_non_fqdn_sender

Verwirft die Sender-Domain, wenn diese nicht in FQDN-Form ist.

reject_rhsbl_sender domain.tld

Verwirft die Anfrage, wenn der Sender einen DNS-Record vom Typ A unter domain.tld hat.

reject_sender_login_mismatch

Verwirft, wenn $smtpd_sender_login_maps für eine MAIL FROM- Adresse einen Besitzer spezifiziert, aber der sich nicht mit SASL authentifiziert hat; verwirft, wenn der Sender sich authentifiziert hat, aber die MAIL FROM-Adresse nicht mit dem Sender übereinstimmt.

warn_if_reject

Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.

check_sender_access maptype:mapname

Löst die Sender-Adresse, Parent-Domain oder localpart@ auf.

check_sender_mx_access maptype:mapname

Löst den DNS-Record vom Typ MX des Senders auf.

permit_mynetworks

Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.

smtpd_recipient_restrictions

reject_unknown_recipient_domain

Verwirft die Anfrage, wenn im RCPT TO die Domain des Empfängers keinen DNS-Record vom Typ A oder MX hat.

reject_non_fqdn_recipient

Verwirft die Anfrage, wenn im RCPT TO die Domain des Empfängers nicht in FQDN-Form ist.

reject_rhsbl_recipient domain.tld

Verwirft die Anfrage, wenn der Empfänger einen DNS-Record vom Typ A unter domain.tld hat.

reject_unauth_pipelining

Verwirft die Anfrage, wenn man nicht korrekte Pipelines macht.

reject_unauth_destination

Verwirft das Absenden von Emails:

  • zu Zielmaschinen, die nicht unter $inet_interfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
  • zu Zielmaschinen, die nicht unter $relay_domains oder in deren Subdomains zu finden sind (ausser Sender-spezifisches Routing).

warn_if_reject

Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen.

check_recipient_access maptype:mapname

Löst die Empfänger-Adresse, Parent-Domain oder localpart@ auf.

check_recipient_mx_access maptype:mapname

Löst den DNS-Record vom Typ MX des Empfängers auf.

permit_auth_destination

Erlaubt das Absenden von Emails:

  • zu Zielmaschinen, die unter $inet_interfaces, $mydestination, $virtual_alias_domains der $virtual_mailbox_domains zu finden sind.
  • zu Zielmaschinen, die unter $relay_domains oder in deren Subdomains zu finden sind (außer Sender-spezifisches Routing).

permit_mx_backup

Erlaubt das Empfangen von Emails für Seiten, die mich als MX Host auflisten.

permit_mynetworks

Gewährt Zugriff, wenn der Client in der Liste von $mynetworks ist.

smtpd_data_restrictions

reject_unauth_pipelining

Verwirft die Anfrage, wenn man nicht korrekte Pipelines macht.

Beispiel

Die folgende Konfiguration werden wir zu einem kleinen Test verwenden:

smtpd_helo_required = yes
smtpd_client_restrictions =
smtpd_helo_restrictions =
smtpd_sender_restrictions =
smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_rbl_client relays.ordb.org,
reject_rbl_client proxies.relays.monkeys.c,
reject_rbl_client proxies.blackholes.easynet.nl,
reject_rbl_client zombie.dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,

Wie funktionieren denn genau die Beschränkungen unter Postfix? Mit was arbeitet es und woher weiss es, welche Beschränkung wann dran ist? Schauen wir uns doch mal ein kleines Beispiel mit der oben stehenden Konfiguration an.

Der SMTP-Client sendet, sagen wir mal, solch einen Header: MAIL FROM:<user@gibtsnicht.de%gt;

Und gehen wir davon aus, dass die Domain gibtsnicht.de auch wirklich nicht existiert. Postfix wird die Beschränkungen in der oben stehenden Reihenfolge anschauen.

Das Beispiel:

Beschränkung Antwort
permit_mynetworks DUNNO
reject_unauth_destination DUNNO
reject_invalid_hostname DUNNO
reject_non_fqdn_sender DUNNO
reject_unknown_sender_domain REJECT

reject_non_fqdn_recipient  
[..]

Der Client verbindet sich, gibt ein EHLO an den Server. Es gibt mehrere Beschränkungen, die der Server sich anschauen muss, dies macht er in der korrekten Reihenfolge:

Der TCP/IP-Client ist nicht in $mynetworks drin, somit geht Postfix zur nächsten Beschränkung.

Der Hostname im EHLO wird geprüft von reject_invalid_hostname, ob dieser eine richtige Syntax hat. Da die richtig ist, gibt es ein DUNNO als Antwort.

Was bedeutet denn dieses DUNNO?

Das ist auf englisch "Don't know". Postfix weiss zu diesem Zeitpunkt noch nicht, was weiter passiert, deshalb übergibt er's der nächsten Beschränkung, mit dem Grund "Ich weiss es nicht, jemand anders soll es entscheiden".

Aber wieso gibt es DUNNO zurück? Der Hostname ist gut, er sollte ein OK bekommen.

Gute Frage. Der Hostname ist wirklich in Ordnung, aber da es weitere Beschränkungen gibt, kann er jetzt noch nicht sagen, ob er die akzeptiert oder ablehnt, daher setzt er ein DUNNO und gibt es weiter an die nächste Beschränkung.

Es trifft auf reject_unauth_pipelining nicht zu, daher wird es weitergegeben.

Da user@gibtsnicht.de in FQDN-Form ist, trifft reject_non_fqdn_sender nicht zu.

Die nächste Beschränkung, reject_unknown_sender_domain sieht sich MAIL FROM an und löst den Domain-Namen der angegebenen Email-Adresse auf. Da es keine solche Domain gibt, antwortet Postfix hier mit REJECT. Die Antwort des SMTP-Servers:

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung