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
  • Diese Beschränkung sollte erst nach permit_mynetworks anzugeben (die Reihenfolge ist 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.
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.

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.

Überprueft den "MAIL FROM:"-Befehl

smtpd_sender_restrictions = 
 permit_sasl_authenticated,
 permit_mynetworks,
 reject_unauth_destination,
 reject_non_fqdn_recipient,
 reject_unknown_recipient_domain

smtpd_recipient_restrictions

  • Diese Restriktion legt 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

  • 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=