Postfix/Restrictions

Aus Foxwiki

topic kurze Beschreibung

Beschreibung

Restrictions werden in folgender Reihenfolge bearbeitet
  1. smtpd_client_restrictions
  2. smtpd_helo_restrictions
  3. smtpd_sender_restrictions
  4. smtpd_recipient_restrictions
  5. smtpd_data_restrictions

Restrictions

Restriction Beschreibung
permit_sasl_authenticated Authentifizierte User erlauben

smtpd_client_restrictions

MTAs kommunizieren über das SMTP-Protokoll.

  • Deshalb muss sowohl der Client als auch der Server SMTP verstehen.
  • Diese Restriktion steht für die Beschränkung der Adresse oder des Hostnamen des SMTP-Clients.
  • Der Client bedeutet hier der zum Server verbundene TCP/IP-Client.
  1. Überprüft den SMTP-Client nach diesen Kriterien
smtpd_client_restrictions =
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_unknown_client
Restriction Beschreibung
reject_unknown_client Verwirft die Anfrage, wenn der Hostname des SMTP-Clients unbekannt ist (die IP-Adresse oder der Hostname des TCP/IP-Clients)
reject_rbl_client domain.tld Verwirft die Anfrage, wenn der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat
reject_rhsbl_client domain.tld Verwirft die Anfrage, wenn der SMTP-Client einen DNS-Record vom Typ A unter domain.tld hat
warn_if_reject Schreibt ein WARN ins Logfile und stellt die Nachricht zu, anstatt die Nachricht zu verwerfen
check_client_access maptype:mapname Löst die Client-Namen, Client-Adressen und Parent-Domains auf anhand der in maptype:mapname angegebenen Map
permit_mynetworks Gewährt Zugriff, wenn der Client in $mynetworks zu finden ist

smtpd_helo_restrictions

In der Regel schicken die SMTP-Clients zum Server ein HELO/EHLO zur Begrüßung, in welchem sie ihren eigenen Hostnamen bekanntgeben.

  • In dieser Restriktion können wir bestimmen, welche Hostnamen der Client schicken kann.
  • Es wäre sicher nicht sinnvoll, wenn ein externer Client unseren eigenen Hostnamen schicken würde (Spammer-Methode).
  • Es ist sinnvoll, zu konfigurieren, dass ein SMTP-Client ein HELO/EHLO schicken muss.
  • Mit diesem Verfahren kann man viele Spam filtern.
smtpd_helo_required=yes
Beispiel

Überprueft den SMTP-Client nach dem er "Hallo" gesagt hat

smtpd_helo_restrictions = 
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_invalid_hostname,
 reject_unknown_hostname,
 reject_non_fqdn_hostname,
 reject_unknown_sender_domain,
 reject_non_fqdn_sender
Restriction Beschreibung
reject_invalid_hostname Verwirft den im HELO/EHLO angegebenen Hostnamen, falls dieser eine falsche Syntax hat.
  • Wenn man in einem Netzwerk ist und man will, dass die Maschinen, die auch im Netzwerk sind, Emails über unseren MTA verschicken wollen, dann ist es sinnvoll, diese Beschränkung erst nach permit_mynetworks anzugeben (wie ich schon gesagt habe, die Reihenfolge ist sehr wichtig), sonst wird er vom MTA verworfen oder zurückgewiesen.
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: http://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 $mynetworks zu finden ist.
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.

Regel smtpd_sender_restrictions

In dieser Restriktion können wir einstellen, welchen Sender unser Postfix MTA im „MAIL FROM:“-Befehl empfangen soll, da viele Spammer ins „MAIL FROM:“ nicht existierende oder ungültige Email-Adressen schreiben (z.B. peter@foobar.de oder peter@foo@bar.de).

  • In diesem Fall gehen wir davon aus, dass die Domain foobar.de nicht existiert.
  1. Ueberprueft den "MAIL FROM:"-Befehl
smtpd_sender_restrictions = 
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_unauth_destination,
 reject_non_fqdn_recipient,
 reject_unknown_recipient_domain

Regel smtpd_recipient_restrictions

  • Diese Restriktion setzt fest, was als Wert für den Befehl „RCPT TO:“ zugelassen ist.
  • Spammer können hier ungültige Adressen angeben, welche mit verschiedenen Optionen gefiltert werden können.
Beispiel
smtpd_recipient_restrictions = 
 permit_sasl_authenticated,
 permit_mynetworks,
 # Wer Spam liebt muss hier eingetragen werden
 check_recipient_access hash:/etc/postfix/spam_lovers,

 reject_invalid_hostname,
 reject_non_fqdn_hostname,
 reject_unknown_hostname,

 reject_non_fqdn_sender,
 reject_non_fqdn_recipient,

 reject_unknown_sender_domain,
 reject_unknown_recipient_domain,

 reject_unauth_pipelining,
 reject_unauth_destination,

 # Sqlgrey
 check_policy_service inet:[127.0.0.1]:2501,
 # Poliyd Weight
 check_policy_service inet:[127.0.0.1]:12525,
 permit
Restriction Beschreibung
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 (außer 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_access hash:/etc/postfix/spam_lovers Diese Regeln auslesen um keine Spam Prüfung zu machen
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.
reject_unauth_pipelining Verwirft die Anfrage, wenn man nicht korrekte Pipelines macht

smtpd_data_restrictions

Beispiel
  • Hier wird nicht der Inhalt des DATA-Befehls gefiltert, sondern der Befehl selber.
  • Dies filtert den SMTP-Client, der nicht die Regeln des SMTP-Protokolls einhält.
smtpd_data_restrictions=