Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:mail_c7:mta_4 [03.11.2014 20:20. ] – [Lookup-Tabellen] djangocentos:mail_c7:mta_4 [22.07.2020 20:13. ] (aktuell) – [Reject-Regeln] django
Zeile 15: Zeile 15:
 In der Vergangenheit, dokumentiert in den Konfigurationsbeispielen zu [[centos:mailserver:start|CentOS 5]] und [[centos:mail_c6:start|CentOS 6]], wurden bei den Konfigurationsbeispielen als Basis die Distributionsspezifischen Vorlagen verwendet. Rückblickend ist aber festzustellen, dass einige der (ungeübteren) Administratoren mit unter Schwierigkeiten sich zurecht zu finden, waren doch verschiedene Konfigurationsoptionen etwas verstreut in der //**/etc/postfix/main.cf**// verteilt. In der Vergangenheit, dokumentiert in den Konfigurationsbeispielen zu [[centos:mailserver:start|CentOS 5]] und [[centos:mail_c6:start|CentOS 6]], wurden bei den Konfigurationsbeispielen als Basis die Distributionsspezifischen Vorlagen verwendet. Rückblickend ist aber festzustellen, dass einige der (ungeübteren) Administratoren mit unter Schwierigkeiten sich zurecht zu finden, waren doch verschiedene Konfigurationsoptionen etwas verstreut in der //**/etc/postfix/main.cf**// verteilt.
  
-Wir werden daher bei den nun folgendem Beispiel zur Konfiguration unter **CentOS 7** einen, auf den ersten ungewöhnlichen Schritt unternehmen und die **main.cf** beiseite legen und eine eigene anlegenfolgende vier Schritte sind hierzu netwendig:+Wir werden daher bei den nun folgendem Beispiel zur Konfiguration unter **CentOS 7** einen, auf den ersten ungewöhnlichen Schritt unternehmen und die **main.cf** beiseite legen und eine eigene anlegenfolgende vier Schritte sind hierzu notwendig:
   - Wir stoppen den vorhandenen Postfix-SMTP-Server. <code> # systemctl stop postfix</code>   - Wir stoppen den vorhandenen Postfix-SMTP-Server. <code> # systemctl stop postfix</code>
   - Anschließend wechseln wir in das Konfigurationsverzeichnis //**/etc/postfix/**//. <code> # cd /etc/postfix</code>   - Anschließend wechseln wir in das Konfigurationsverzeichnis //**/etc/postfix/**//. <code> # cd /etc/postfix</code>
-  - Nun löschen oder verschien wir die nicht benötigten Dateien:+  - Nun löschen __oder__ verschieben wir die nicht benötigten Dateien:
     - **löschen** <code> # rm access canonical generic header_checks relocated virtual transport -f</code>     - **löschen** <code> # rm access canonical generic header_checks relocated virtual transport -f</code>
     - **verschieben** <code> # mkdir -p /etc/postfix/.orig/</code><code> # mv access canonical generic header_checks relocated virtual transport main.cf /etc/postfix/.orig/ -f</code>     - **verschieben** <code> # mkdir -p /etc/postfix/.orig/</code><code> # mv access canonical generic header_checks relocated virtual transport main.cf /etc/postfix/.orig/ -f</code>
Zeile 40: Zeile 40:
   #   #
  
-Wir werden später die einzelnen Konfigurationsoptionen strukturieren, d.h. zusammenfassen und jeweils bei den betreffenden Sectionen eintragen.+Wir werden später die einzelnen Konfigurationsoptionen strukturieren, d.h. zusammenfassen und jeweils bei den betreffenden Sektionen eintragen.
  
 ==== Installations- und Konfigurations Informationen ==== ==== Installations- und Konfigurations Informationen ====
Zeile 245: Zeile 245:
 # default: unbekannte Empfänger sollen abgewiesen und nicht mit einem # default: unbekannte Empfänger sollen abgewiesen und nicht mit einem
 #          temporären Fehler 450 abgewiesen werden. #          temporären Fehler 450 abgewiesen werden.
-unknown_local_recipient_reject_code = 550+# default: unknown_local_recipient_reject_code = 550 
 +#          unverified_recipient_reject_code = 450 
 +#unverified_recipient_reject_code = 577
  
 # Django : 2014-10-15 - Soll bei einem unbekanntem Ziel der genaue Tabellenname # Django : 2014-10-15 - Soll bei einem unbekanntem Ziel der genaue Tabellenname
Zeile 273: Zeile 275:
 </code> </code>
 ==== Routing ==== ==== Routing ====
-In der Section **ROUTING - WEITERLEITEN VON NACHRICHTEN AN DAS EIGENTLICHE ZIEL** legen wir fest, wo und wie die einzelnen Zielserver erreichbar sind, an die unser Postfix SMTP-Server seine Nachrichten weiterleiten soll. +In der Sektion **ROUTING - WEITERLEITEN VON NACHRICHTEN AN DAS EIGENTLICHE ZIEL** legen wir fest, wo und wie die einzelnen Zielserver erreichbar sind, an die unser Postfix SMTP-Server seine Nachrichten weiterleiten soll. 
 <WRAP center round tip> <WRAP center round tip>
-Auch wenn es für einen kleinen Server erst einmal als Overkill erscheinen mag, den IMAP-Server via **LMTP** anzusprechen, ist es dennoch von unschätzbaren Wert, sollte später doch noch ein separater IMAP-Server erforderlich sein. Somit muss später "nur" noch die IP-Adresse oder der Name des IMAP-servers geändert werden und nicht zusätzlich an der Konfiguration noch grundlegende Anpassungen vorgenommen werden!+Auch wenn es für einen kleinen Server erst einmal als Overkill erscheinen mag, den IMAP-Server via **LMTP** anzusprechen, ist es dennoch von unschätzbaren Wert, sollte später doch noch ein separater IMAP-Server erforderlich sein. Somit muss später "nur" noch die IP-Adresse oder der Name des IMAP-Servers geändert werden und nicht zusätzlich an der Konfiguration noch grundlegende Anpassungen vorgenommen werden!
 </WRAP> </WRAP>
    # vim /etc/postfix/main.cf    # vim /etc/postfix/main.cf
 <code bash>################################################################################ <code bash>################################################################################
-## ROUTING WEITERLEITEN VON NACHRICHTEN AN DAS EIGENTLICHE ZIEL+## ROUTING WEITERLEITEN VON NACHRICHTEN AN DAS EIGENTLICHE ZIEL
 # #
 # Django : 2014-10-15 - Relayhost: Alle Nachrichten werden an den Relayhost # Django : 2014-10-15 - Relayhost: Alle Nachrichten werden an den Relayhost
Zeile 391: Zeile 393:
 #          smtp_destination_rate_delay = $default_destination_rate_delay #          smtp_destination_rate_delay = $default_destination_rate_delay
 #          virtual_destination_rate_delay = $default_destination_rate_delay #          virtual_destination_rate_delay = $default_destination_rate_delay
-#          Ausgehende Nachrichten des MAilinglistenservers auf 2,5 Minuten+#          Ausgehende Nachrichten des Mailinglistenservers auf 2,5 Minuten
 #          setzen #          setzen
 smtp_destination_rate_delay = 150s smtp_destination_rate_delay = 150s
 </code> </code>
  
 +<WRAP center round important 90%>
 +**WICHTIG**: \\ Die Option gilt für alle Clients! Das bedeutet, dass ein ''smtp_destination_rate_delay = 150s'' die Zustellversuche an alle SMTP-Ziele gilt. Im Maillog des Servers wird **__nicht__** extra ein Hinweis eingetragen, dass das rate_limiting zugeschlagen hat! \\
 +</WRAP>
 + 
 ==== Rückmeldungen beeinflussen und individualisieren ==== ==== Rückmeldungen beeinflussen und individualisieren ====
 In der Section **RÜCKMELDUNGEN BEEINFLUSSEN UND INDIVIDUALISIEREN** können wir festlegen, welche Informationen unser Mailserver unterdrücken und weitergeben soll. Auch eine Individualisierung auf Mailserverbetreiberebene sind möglich.  In der Section **RÜCKMELDUNGEN BEEINFLUSSEN UND INDIVIDUALISIEREN** können wir festlegen, welche Informationen unser Mailserver unterdrücken und weitergeben soll. Auch eine Individualisierung auf Mailserverbetreiberebene sind möglich. 
Zeile 445: Zeile 451:
 # default: disable_vrfy_command = no # default: disable_vrfy_command = no
 disable_vrfy_command = yes disable_vrfy_command = yes
 +
 +# Django : 2015-10-08 - Fehlercode bei Verwendung der Option
 +#          reject_plaintext_session beim Einsatz von verpflichtender
 +#          TLS-Transportverschlüsselung.
 +#          https://tools.ietf.org/html/rfc3463#section-3.8
 +# default: plaintext_reject_code = 450
 +# plaintext_reject_code = 571
 </code> </code>
  
-Da wir ja nicht nur englischsprachige Nutzer haben, die bei unserem MX Post abliefern dürfen, möchten wir unter Umständen auch individuelle Bouncemessages verwenden. In der Section **RÜCKMELDUNGEN BEEINFLUSSEN UND INDIVIDUALISIEREN** haben wir bereits den Parameter **bounce_template_file** gesetzt. was uns jetzt noch feht ist das zugehörige File. Dieses mustergültiges Nachrichtentemplate von den beiden Spezialisten Patrick Koetter und Ralf Hildebrandt aus dem Web herunter. +Da wir ja nicht nur englischsprachige Nutzer haben, die bei unserem MX Post abliefern dürfen, möchten wir unter Umständen auch individuelle Bouncemessages verwenden. In der Sektion **RÜCKMELDUNGEN BEEINFLUSSEN UND INDIVIDUALISIEREN** haben wir bereits den Parameter **bounce_template_file** gesetzt. was uns jetzt noch fehlt ist das zugehörige File. Dieses mustergültiges Nachrichtentemplate von den beiden Spezialisten Patrick Koetter und Ralf Hildebrandt aus dem Web herunter. 
    # cd /etc/postfix    # cd /etc/postfix
  
Zeile 458: Zeile 471:
 Bevor wir uns nun die einzelnen Lookup-Tabellen genauer ansehen, werfen wir noch einen Blick in die nachfolgende Übersicht um festzustellen, wann die einzelnen Tabellen in der Mailbearbeitung gezogen werden, also überhaupt einen Einfluß haben.  Bevor wir uns nun die einzelnen Lookup-Tabellen genauer ansehen, werfen wir noch einen Blick in die nachfolgende Übersicht um festzustellen, wann die einzelnen Tabellen in der Mailbearbeitung gezogen werden, also überhaupt einen Einfluß haben. 
  
-<uml width=910 title="Postfix MTA"> +{{page>centos:mail_c7:postfix&nofooter}
- +
-state "Daemon" as qmqp +
-qmqp QMQP-Modul +
- +
-state "/usr/bin/sendmail" as sendmail +
-sendmail Postfix - Modul +
-sendmail : "postdrop" +
- +
-state "MTA - MTA Verkehr" as smtp_in +
-smtp_in : TCP/IP - Port 25 +
- +
-state "MUA - MSA Verkehr" as submission +
-submission : TCP/IP - Port 587 +
- +
-state "MDA" as lmtp_24 +
-lmtp_24 : (Mail Delivery Agent)  +
-lmtp_24 : Dovecot IMAP-Server +
-lmtp_24 : TCP/IP - Port 24 +
- +
-state "MTA" as smtp_25 +
-smtp_25 : (Mail Transport Agent)  +
-smtp_25 : andere SMTP-Server (Relayhosts) +
-smtp_25 : im Internet bzw. Intranet +
-smtp_25 : TCP/IP - Port 25 +
- +
-state "Mailman" as mailman +
-mailman : Weitergabe der eMail +
-mailman : an Mailinglisten / wie Mailman +
-mailman : oder via UUCP ... +
- +
-state "mailbox" as mailbox +
-mailbox : Postfix - Queue +
-mailbox : "mailbox" +
-mailbox : lokale Zustellung +
- +
-state master { +
-  state "Queue" as maildrop +
-  maildrop : └── maildrop +
- +
-  state "Daemon" as pickup +
-  pickup : └── pickup +
- +
-  state "Daemon" as anvil +
-  anvil : └──  anvil +
- +
-  state "Daemon" as dnsblog +
-  dnsblog : └──  dnsblog +
- +
-  state "Daemon" as tlsproxy +
-  tlsproxy : └──  tlsproxy +
- +
-  state "Daemon" as postscreen +
-  postscreen : └──  postscreen +
- +
-  state "Daemon" as verify +
-  verify : └──  verify +
- +
-  state "Daemon" as tlsmgr +
-  tlsmgr: └──  tlsmgr +
-  +
-  state "Daemon" as scache +
-  scache: └──  scache +
-    +
-  state "Daemon" as qmqpd +
-  qmqpd: └──  qmqpd +
- +
-  state "Agent" as discard +
-  discard: └──  discard +
- +
-  state "Agent" as error +
-  error : ├── error +
-  error : └── retry +
-   +
-  state "Daemon" as virtual +
-  virtual: └──  virtual +
-   +
-  state "Daemon" as cleanup +
-  cleanup : └── cleanup  +
- +
-  state "Daemon" as showq +
-  showq : └──  showq +
-   +
-  state "Daemon" as rewrite +
-  rewrite : └── trivial-rewrite  +
- +
-  state "Daemon" as bounce +
-  bounce : ├── bounce +
-  bounce : ├── defer +
-  bounce : └── trace +
- +
-  state "Daemon" as smtpd +
-  smtpd : └── smtpd   +
-   +
-  state "Queue" as incoming +
-  incoming : └── incoming  +
-  +
-  state "Queue" as hold +
-  hold : └── hold +
- +
-  state "Queue" as corrupt +
-  corrupt : └── corrupt +
-    +
-  state "Queue" as active +
-  active : └── active +
-   +
-  state "Queue" as deferred +
-  deferred : └── deferred +
- +
-  state "Daemon" as qmgr +
-  qmgr : └── qmgr  +
- +
-  state "Daemon" as flush +
-  flush : └── flush  +
- +
-  state "Modul" as resolve +
-  resolve : └── resolve +
- +
-  state "MDA" as local +
-  local : └── local  +
-  +
-  state "Mailclient" as pipe +
-  pipe : └── pipe  +
- +
-  state "Mailclient" as lmtp +
-  lmtp : └── lmtp  +
-  +
-  state "Mailclient" as smtp_out +
-  smtp_out : └── smtp  +
- +
-  state "Daemon" as proxymap +
-  proxymap : ├── proxymap +
-  proxymap : └── proxywrite +
-} +
- +
- smtp_in -down-> smtpd +
- submission --> smtpd +
- +
- qmqp -right-> qmqpd +
- sendmail -down-> maildrop +
- maildrop --> pickup +
- +
- anvil --> smtpd +
- dnsblog --> smtpd +
- verify -down-> smtpd +
- tlsmgr -up-> smtpd +
- postscreen --> smtpd +
- +
- qmqpd --> cleanup +
- smtpd  --> cleanup +
- pickup --> cleanup +
- cleanup --> incoming +
- rewrite -right-> cleanup +
- tlsproxy -up-> postscreen +
-   +
- incoming --> qmgr +
- qmgr --> deferred +
- qmgr --> active +
- qmgr --> hold +
- qmgr --> corrupt +
- resolve --> qmgr +
- bounce -down-> qmgr +
- qmgr --> local +
- qmgr -right-> smtp_out +
- qmgr --> pipe +
- qmgr --> lmtp +
- qmgr -left-> virtual +
- discard --> qmgr +
- error --> qmgr +
- flush --> qmgr +
- showq --> qmgr +
- smtp_out -up-> scache +
- +
- lmtp --> lmtp_24 +
- smtp_out --> smtp_25  +
- smtp_out -up-> tlsmgr +
- pipe --> mailman +
- local --> mailbox +
- +
- +
- note right of cleanup +
-  Lookup Table canonical_maps +
-  Übersetzungstabelle zum  +
-  Umschreiben von nicht-lokalen  +
-  Empfängeradressen +
- end note +
- +
- +
- note right of cleanup +
-  Lookup Table virtual_maps +
-  Tabelle mit der Empfängeradresse +
-  aller lokalen, virtuellen und +
-  entfernten eMailadressen +
- end note +
- +
- note right of smtpd +
-  Realtime Blockhole Lists +
-  Nutzung von RBL zum Prüfen +
-  von einliefernden Hosts +
-  reverse DNS-Abfrage z.B.  +
-  bei SPAMHAUS +
- end note +
- +
- +
- note right of rewrite +
-  Lookup Table relocated_maps +
-  Tabelle für die Bounce-Nachrichten  +
-  mit Angabe der neuen eMailadresse  +
-  bei verzogenen Accounts. +
- end note +
- +
- note left of smtpd +
-  Lookup Table access_client +
-  Lookup Table access_helo +
-  Lookup Table access_recipient +
-  Lookup Table access_recipient-rfc +
-  Lookup Table access_sender +
-  Tabellen zum Black- und Whitelisten +
-  an Hand der IP-Adrese, Hostname, +
-  Empfänger oder Sender +
- end note +
- +
- note left of resolve +
-  Lookup Table  transport_maps +
-  Tabelle zur adressabhängigen +
-  Weiterleitung an einen  +
-  weiteren (finalen) MTA.  +
- end note +
- +
- note right of local +
-  Lookup Table /etc/aliases +
-  Tabelle mit der lokalen eMails +
-  an lokale Empfänger zugewiesen +
-  werden können. +
- end note +
- +
- note left of local +
-  Lookup Table .forward +
-  Tabelle zur Steuerung von +
-  automatischen Anwesenheitsnachrichten +
- end note +
- +
- note right of smtp_out +
-  Lookup Table generic_maps +
-  Tabelle zum Umschreiben  +
-  von eMailadressen +
-  beim Versenden. +
- end note +
- +
- note right of lmtp +
-  Lookup Table lmtp_generic_maps +
-  Tabelle zum Umschreiben von Empfänger +
-  eMail-Adressen im Envelope und Header  +
- end note +
- +
-</uml>+
  
 Am Anfang der Definition unserer Lookup-Tabellen setzen wir noch zwei (Adress-)Listenspezifische Werte. Statt der Defaultmäßigen Tabellen im **hash**-Format setzen wir auf die wesentlich performanteren **btree**-Tabellen.  Am Anfang der Definition unserer Lookup-Tabellen setzen wir noch zwei (Adress-)Listenspezifische Werte. Statt der Defaultmäßigen Tabellen im **hash**-Format setzen wir auf die wesentlich performanteren **btree**-Tabellen. 
Zeile 1269: Zeile 1027:
 | **5xx**//Hinweistext//                  | Die Anfrage wird mit einem fatalen Fehlercode 5xx und dem Text //Hinweistext// abgelehnt                                                                                              | | **5xx**//Hinweistext//                  | Die Anfrage wird mit einem fatalen Fehlercode 5xx und dem Text //Hinweistext// abgelehnt                                                                                              |
 | **WARN**//Hinweistext//                 | Im Maillog des Mailservers wird ein Logeintrag mit den Informationen: \\ - Absender \\ - Empfänger \\ - HELO \\ - etc. \\ zusammen mit dem //Hinweistext// eingefügt.                 | | **WARN**//Hinweistext//                 | Im Maillog des Mailservers wird ein Logeintrag mit den Informationen: \\ - Absender \\ - Empfänger \\ - HELO \\ - etc. \\ zusammen mit dem //Hinweistext// eingefügt.                 |
 +| **restriction**                         | Es kommt eine der **permit**- oder **reject-[[centos:mail_c7:mta_4#absicherung_mit_hilfe_von_restrictions|Restrictions]]-Regeln** zur Anwendung                                       |
  
  
Zeile 1289: Zeile 1047:
 # Postfix die ASCII-Konfigurationsdatei direkt auswertet! # Postfix die ASCII-Konfigurationsdatei direkt auswertet!
 # #
 +#
 +#10.20.30.40/26        REJECT
 </file>  </file> 
  
Zeile 1338: Zeile 1098:
 # die zugehörige Datenbank erzeugt werden. # die zugehörige Datenbank erzeugt werden.
 # #
 +#tachtler.net          reject_plaintext_session
 </file> </file>
  
Zeile 2621: Zeile 2382:
 virusalert@nausch.org                   django@nausch.org virusalert@nausch.org                   django@nausch.org
 postmaster@nausch.org                   django@nausch.org</file> postmaster@nausch.org                   django@nausch.org</file>
 +
 +=== virtual_alias files in Verbindung mit postfixadmin ===
 +Verwalten wir die Domänen und Nutzerkonten mit Hilfe von **[[centos:mail_c7:pfadmin_1|Postfixadmin]]**, werden wir nachfolgend in unsere Postfix-Konfigurationsdatei //**/etc/postfix/main.cf**// folgenden Block einfügen.
 +
 +<code># Django : 2014-10-15 - virtuelle Mail-Domains und Mailboxen mit Anbindung an
 +#          das mySQL-Datenbankbackend (Verwaltung mit Hilfe von postfixadmin)
 +# default: virtual_mailbox_domains = $virtual_mailbox_maps
 +#          virtual_alias_maps = $virtual_maps
 +#          virtual_mailbox_maps =
 +virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
 + 
 +virtual_alias_maps =      proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
 +                          proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf
 +                          proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf
 + 
 +virtual_mailbox_maps =    proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
 +                          proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf</code>
 +
 +Die zugehörigen Dateien, haben dann folgende Inhalte.
 +== mysql_virtual_domains_maps.cf ==
 +   # vim /etc/postfix/mysql_virtual_domains_maps.cf
 +<file bash /etc/postfix/mysql_virtual_domains_maps.cf># Django : 2013-02-07
 +# Definition der Datenbankanbindung zur Abfrage der virtuellen Domaenen
 +#
 +user = postfix_user
 +password = rbgsDK39DeM2b2btx9iMHfzd
 +hosts = mariadb.dmz.nausch.org
 +dbname = postfix
 +query = SELECT domain FROM domain WHERE domain='%s' AND active = '1'
 +</file>
 +
 +== mysql_virtual_alias_maps.cf ==
 +   # vim /etc/postfix/mysql_virtual_alias_maps.cf
 +<file bash /etc/postfix/mysql_virtual_alias_maps.cf># Django : 2012-02-07
 +# Definition der Datenbankanbindung zur Abfrage der virtual Alias Maps
 +#
 +user = postfix_user
 +password = rbgsDK39DeM2b2btx9iMHfzd
 +hosts = mariadb.dmz.nausch.org
 +dbname = postfix
 +query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
 +</file>
 +
 +== mysql_virtual_alias_domain_maps.cf ==
 +   # vim /etc/postfix/mysql_virtual_alias_domain_maps.cf
 +<file bash /etc/postfix/mysql_virtual_alias_domain_maps.cf># Django : 2013-02-07
 +# Definition der Datenbankanbindung zur Abfrage der virtual Alias Domain Maps
 +#
 +user = postfix_user
 +password = rbgsDK39DeM2b2btx9iMHfzd
 +hosts = mariadb.dmz.nausch.org
 +dbname = postfix
 +query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' AND
 +           alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1
 +           AND alias_domain.active='1'
 +</file>
 +
 +== mysql_virtual_alias_domain_catchall_maps.cf ==
 +   # vim /etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf
 +<file bash /etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf># Django : 2013-02-07
 +# Definition der Datenbankanbindung zur Abfrage der virtual Alias Domain Catchall Maps
 +#
 +user = postfix_user
 +password = rbgsDK39DeM2b2btx9iMHfzd
 +hosts = mariadb.dmz.nausch.org
 +dbname = postfix
 +query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' AND
 +           alias.address = CONCAT('@', alias_domain.target_domain) AND alias.active = 1
 +           AND alias_domain.active='1'
 +</file> 
 +
 +== mysql_virtual_mailbox_maps.cf ==
 +   # vim /etc/postfix/mysql_virtual_mailbox_maps.cf
 +<file bash /etc/postfix/mysql_virtual_mailbox_maps.cf># Django : 2013-02-07
 +# Definition der Datenbankanbindung zur Abfrage der virtual Mailbox Maps
 +#
 +user = postfix_user
 +password = rbgsDK39DeM2b2btx9iMHfzd
 +hosts = mariadb.dmz.nausch.org
 +dbname = postfix
 +query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'
 +</file>
 +
 +== mysql_virtual_alias_domain_mailbox_maps.cf ==
 +   # vim /etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf
 +<file bash /etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf># Django : 2012-10-09
 +# Definition der Datenbankanbindung zur Abfrage der virtual Alias Domain Mailbox Maps
 +#
 +user = postfix_user
 +password = rbgsDK39DeM2b2btx9iMHfzd
 +hosts = mariadb.dmz.nausch.org
 +dbname = postfix
 +query = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d'
 +           AND mailbox.username = CONCAT('%u', '@', alias_domain.target_domain) AND
 +           mailbox.active = 1 AND alias_domain.active='1'
 +</file>
  
 ==== bcc ==== ==== bcc ====
Zeile 2791: Zeile 2648:
     * **reject_rbl_client ix.dnsbl.manitu.net** Blockiert die eMail, wenn die Client-IP-Adresse bei **ix.dnsbl.manitu.net** geblacklistet ist.     * **reject_rbl_client ix.dnsbl.manitu.net** Blockiert die eMail, wenn die Client-IP-Adresse bei **ix.dnsbl.manitu.net** geblacklistet ist.
     * **reject_rbl_client bl.spamcop.net** Blockiert die eMail, wenn die Client-IP-Adresse bei **bl.spamcop.net** geblacklistet ist.     * **reject_rbl_client bl.spamcop.net** Blockiert die eMail, wenn die Client-IP-Adresse bei **bl.spamcop.net** geblacklistet ist.
-    * **reject_rbl_client dnsbl.njabl.org** Blockiert die eMail, wenn die Client-IP-Adresse bei **dnsbl.njabl.org** geblacklistet ist. 
   * **reject_rhsbl_client multi.uribl.com** \\ Blockiert die eMail, sofern der Client-Hostname in der verwendeten **rhsbl_domain**(**RHSBL**)((**R**ight-**H**and **S**ided **B**lacklist)) gelistet ist.   * **reject_rhsbl_client multi.uribl.com** \\ Blockiert die eMail, sofern der Client-Hostname in der verwendeten **rhsbl_domain**(**RHSBL**)((**R**ight-**H**and **S**ided **B**lacklist)) gelistet ist.
 +  * **reject_plaintext_session** \\ Liefert einen **REJECT**, wenn die Verbindung nicht TLS transportverschlüsselt ist. 
 ==== SMTP Recipient Restrictions ==== ==== SMTP Recipient Restrictions ====
 +Nachfolgende Definitionen fügen wir nun am Ende der //**/etc/postfix/main.cf**// ein. Hierzu benutzen wir wie immer den Editor unserer Wahl. 
 +   # vim /etc/postfix/main.cf
 +<code>...
  
 +################################################################################
 +## SMTP RECIPIENT RESTRICTIONS
 +#
 +# Django : 2014-10-29 - Schutz unserer Empfänger mit Hilfe der Recipient 
 +#          Restrictions 
 +# default: smtpd_recipient_restrictions =
 +smtpd_recipient_restrictions =
 +#          Postmaster, abuse und andere aufgaben- oder funktionsgebundene 
 +#          eMail-Adressen (Role-Accounts) whitelisten
 +           check_recipient_access btree:/etc/postfix/access_recipient-rfc
 +
 +#          Black- und Whitelisting       (Kapitel 8.2.3 White- und Blacklisting)
 +           check_client_access cidr:/etc/postfix/access_client
 +           check_helo_access btree:/etc/postfix/access_helo
 +           check_sender_access btree:/etc/postfix/access_sender
 +           check_recipient_access btree:/etc/postfix/access_recipient
 +
 +#          Unsere eigenen Nutzer zulassen-/erlauben             
 +#                                (Kapitel 8.2.2 Relaying erlauben und verbieten)
 +           permit_sasl_authenticated
 +           permit_mynetworks
 +
 +#          RBL überprüfen               (Kapitel 10.11 Realtime Blackhole Lists)
 +           reject_rbl_client zen.spamhaus.org
 +           reject_rbl_client ix.dnsbl.manitu.net
 +           reject_rbl_client bl.spamcop.net
 +           reject_rhsbl_client multi.uribl.com
 +
 +#          Greylisting via postgrey checken via Unix-Socket
 +#                                          (Kapitel 9.2.5 postgrey installieren)
 +#          check_policy_service unix:postgrey/socket,
 +
 +#          Policyd-Weight check over TCP-Connection 
 +#                                      (Kapitel 9.3 policyd-weight installieren)
 +#          check_client_access btree:/etc/postfix/policyd_weight_client_whitelist,
 +#          check_policy_service inet:127.0.0.1:12525,
 +
 +#          Dynamische Prüfung auf existente Relay-Empfänger
 +#                            (Kapitel 12.2.2 Dynamische Empfänger-Verifizierung)
 +           reject_unverified_recipient
 +
 +#          Backupserver (MX) erlauben
 +#          permit_mx_backup
 +
 +#          alles andere an relaying verbieten   
 +#                                (Kapitel 8.2.2 Relaying erlauben und verbieten)
 +           reject_unauth_destination
 +
 +#          Quota-Status-Policy-Daemon am Dovecot-Backend-System
 +#          Dovecotbuch (ISBN 978-3-95539-74-7) Seite 219 ff.  
 +#                          (Kapitel 11.11 "Der Quota-Policy-Server für Postfix")
 +           check_policy_service inet:10.0.0.77:10000
 +
 +#          Zu guter Letzt alles durchlassen, was bis jetzt noch nicht 
 +#          beanstandet wurde
 +           permit
 +</code>
  
 ==== SMTP Relay Restrictions ==== ==== SMTP Relay Restrictions ====
 +Nachfolgende Definitionen fügen wir nun am Ende der //**/etc/postfix/main.cf**// ein. 
 +   # vim /etc/postfix/main.cf
 +<code>...
 +
 +################################################################################
 +## SMTP RELAY RESTRICTIONS
 +#
 +# Django : 2014-10-27 - Definition, wer über unseren MX relayen darf oder nicht. 
 +#          http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions
 +# default: smtpd_relay_restrictions = permit_mynetworks, 
 +#          permit_sasl_authenticated, defer_unauth_destination
 +#
 +smtpd_relay_restrictions =
 +# Unsere eigenen Nutzer zulassen-/erlauben
 +           permit_sasl_authenticated
 +           permit_mynetworks
 +# Backupserver (MX) erlauben
 +#           permit_mx_backup
 +# alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen
 +           reject_unauth_destination
 +</code>
 +
 +===== main.cf =====
 +Somit ergibt sich vorerst folgende Hauptkonfigurationsdatei //**/etc/postfix/main.cf**//.
 +   # less /etc/postfix/main.cf
 +<file bash /etc/postfix/main.cf>################################################################################
 +#                                                                              #
 +#    Django : 2014-10-15 - Musterkonfiguration Postfix 2.11 unter CentOS 7     #
 +#                                                                              #
 +################################################################################
 +
 +################################################################################
 +## INSTALLATIONS-KONFIGURATIONS INFORMATIONEN 
 +#
 +# Folgende Default-Parameter werden benutzt, sobald eine neue Postfix-Version 
 +# installiert wird.
 +#
 +# Django : 2014-10-31 - Vollständiger Pfad zum Postfix sendmail Programm, dem
 +#          zu senmail kompatiblen sendmail Befehl.
 +# default: sendmail_path = /usr/sbin/sendmail
 +sendmail_path = /usr/sbin/sendmail.postfix
 +
 +# Django : 2014-10-31 - Vollständiger Pfad zum Postfix newaliases Programm, dem
 +#          zu sendmail kompatiblen Programm zum Anlegen der Alias Datenbanken.
 +# default: newaliases_path = /usr/bin/newaliases
 +newaliases_path = /usr/bin/newaliases.postfix
 +
 +# Django : 2014-10-31 - Vollständiger Pfad zum Postfix qmail-Programm, dem zu
 +#          sendmail kompatiblen Programm zum Anzeigen der Maile-Queues
 +# default: mailq_path = /usr/bin/mailq
 +mailq_path = /usr/bin/mailq.postfix
 +
 +# Django : 2014-10-31 - Gruppe für die Befehle mail submission und queue
 +#          management. Die Gruppe muss eine numerische eigene ID haben
 +#          und darf nicht mit anderen Benutzeraccounts geteilt werden,
 +#          auch nicht mit dem Postfix User! 
 +# default: setgid_group = postdrop 
 +setgid_group = postdrop
 +
 +# Django : 2014-10-31 - Pfad für die Postfix Postfix HTML Dokumentation.
 +# default: html_directory
 +html_directory = no
 +
 +# Django : 2014-10-31 - Pfad für die Postfix online man-pages.
 +# default: manpage_directory = /usr/local/man
 +manpage_directory = /usr/share/man
 +
 +# Django : 2014-10-31 - Pfadangabe für die Postfix Beispielkonfigurationsdateien.
 +#          Dieser Parameter ist obsolete seit Postfix 2.1.
 +# default: sample_directory = /etc/postfix
 +sample_directory = /usr/share/doc/postfix-2.11.3/samples
 +
 +# Django : 2014-10-31 - Pfadangabe für die Postfix README Dateien.
 +# default: readme_directory = no
 +readme_directory = /usr/share/doc/postfix-2.11.3/README_FILES
 +
 +
 +################################################################################
 +## PFADANGABEN DER LOKALEN INSTALLATION 
 +#
 +# Django : 2014-10-31 - Definition des Speicherortes für die Queue-Dateien von
 +#          Postfix. Dies ist auch der root-Pfad, falls Postfix in einer
 +#          chroot-Umgebung laufen sollte. In der Datei examples/chroot-setup
 +#          findet man bei Bedarf nützliche Hinweise und Beispiele, die 
 +#          beschreiben, wie man Postfix in einer chroot-Umgebung aufsetzen und 
 +#          betreiben kann. 
 +# default: queue_directory = /var/spool/postfix
 +queue_directory = /var/spool/postfix
 +
 +# Django : 2014-10-31 - Vollständiger Pfad zu allen postXXX-Programmen.
 +# default: command_directory = /usr/sbin
 +command_directory = /usr/sbin
 +
 +# Django : 2014-10-31 Vollständiger Pfad zum Verzeichnis, in dem sich alle
 +#          postfix Daemon Programme (die z.B. auch in der master.cf
 +#          aufgeführt sind) befinden. Das Verzeichnis muss root gehören!
 +# default: daemon_directory = /usr/libexec/postfix
 +daemon_directory = /usr/libexec/postfix
 +
 +# Django : 2014-10-31 - Datenverzeichnis, in dem Postfix alle variablen Daten
 +#          ablegt, wie z.B. Caches, Zufallszahlen ect. pp. Das Verzeichnis 
 +#          muss dem nachfolgendem "mail_owner" gehören!
 +# default: data_directory = /var/lib/postfix
 +data_directory = /var/lib/postfix
 +
 +
 +################################################################################
 +## RECHTE BEI QUEUES UND PROZESSEN
 +#
 +# Django : 2014-10-31 - Definition des Nutzers, unter dem die meisten Postfix
 +#          Daemons laufen und mit dem die Queue-Dateien geschrieben werden.
 +#          Die User muss unique sein, d.h. er darf weder einer anderen Gruppe 
 +#          noch einem Anderen User angehören, sowie fremde Dateirechte und 
 +#          Prozesse auf dem System besitzen! Also unbedingt einen separaten 
 +#          Nutzer verwenden! 
 +# default: mail_owner = postfix
 +mail_owner = postfix
 +
 +# Django : 2014-10-31 - Festlegung der Defaultrechte, die vom LDA (Local 
 +#          Delivery Agent) verwendet werden, wenn dieser Nachrichten in eine 
 +#          externe Datei schreibt, oder einem anderen Befehl übergibt.
 +#          Der Parameter wird auch verwendet, sollten keine userbezogenen
 +#          Vorgaben vorhanden sein. 
 +#          Auf keinen Fall einen privilegierten Nutzer oder gar den Benutzer
 +#          postfix verwenden!
 +# default: default_privs = nobody
 +default_privs = nobody
 +
 +################################################################################
 +## DEBUGGING 
 +#
 +# Django : 2014-10-31 - Mit dem Parameter "debug_peer_level" wird festgelegt
 +#          um welchen Faktor der Logging-Level erhöht wird, wenn ein SMTP 
 +#          Client, ein Hostname oder eine IP-Adresse zu den Definitionen des
 +#          nachfolgenden "debug_peer_list"-Parameters passt.
 +# default: debug_peer_level = 2
 +debug_peer_level = 2
 +
 +# Django : 2014-10-31 : Definition einer Liste aus Netzwerk-Adressen,
 +#          Namen, IP-Adressen oder entsprechender Postfix-Listen 
 +#          "type:name", für die der Loglevel gemäß dem obigen Loglevelwert
 +#          erhöht werden soll.
 +#          Bsp: debug_peer_list = 127.0.0.1
 +#               debug_peer_list = some.domain
 +#               cidr:/etc/postfix/debug_peer_list
 +# default: debug_peer_list =
 +
 +# Django : 2014-10-13 - Debugger-Befehlszeile
 +#          Die Option "debugger_command" definiert den kompletten Debug-Aufruf,
 +#          das ausgeführt werden soll, sofern der Postfix Daemon mit der 
 +#          Option -D gestartet wurde.
 +#          Am Ende der Befehlskette sollte man ein "... & sleep 5" anfügen, 
 +#          damit damit der Debugger genügend Zeit hat loszulegen, bevor das 
 +#          Programm aufgerufen wird.
 +#
 +#          Da wir kein X-System auf unserem Mailserver installiert haben (wozu 
 +#          auch?), verwenden wir nachfolgendes Beispiel. Als Ergebnis erhalten 
 +#          wir damit eine Datei mit dem Namen des Prozesses und der zugehörigen 
 +#          ID, die im Konfigurationsverzeichnis abgespeichert wird.
 +#
 +debugger_command =
 +           PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
 +           echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
 +           >$config_directory/$process_name.$process_id.log & sleep 5
 +
 +
 +################################################################################
 +## ZUSTÄNDIGKEITEN, VERTRAUENSWÜRDIGE NETZE UND NETZWERKK-DEFINITIONEN
 +#
 +# Django : 2014-10-15 - Hostname auf "offiziellen" DNS-MX-Record Namen gesetzt
 +# default: myhostname = FQDN
 +myhostname = mx01.nausch.org
 +
 +# Django : 2014-10-15 - Domainpart der lokal generierten Nachrichten gesetzt
 +# default: myorigin = $myhostname
 +myorigin = $mydomain
 +
 +# Django : 2014-10-15 - Für welche Domains ist unser Mailserver zuständig,
 +#          also final destination? Zusätzlich zu den Defaultwerten soll der MTA 
 +#          auch noch Nachrichten für die beiden Sub-Domains lists.nausch.org 
 +#          (Mailman) und dmarc.nausch.org (DMARC-Reportmails) annehmen.
 +# default: mydestination = $myhostname, localhost.$mydomain, localhost
 +mydestination = 
 +                $myhostname
 +                localhost.$mydomain
 +                localhost
 +                lists.nausch.org
 +                dmarc.nausch.org
 +
 +# default: unbekannte Empfänger sollen abgewiesen und nicht mit einem
 +#          temporären Fehler 450 abgewiesen werden.
 +unknown_local_recipient_reject_code = 550
 +
 +# Django : 2014-10-15 - Soll bei einem unbekanntem Ziel der genaue Tabellenname
 +#          bei der Ablehnung genannt werden?
 +# default: show_user_unknown_table_name = yes 
 +show_user_unknown_table_name = no
 +
 +# Django : 2014-10-15 - auf allen Interfaces und Protokollen (IPv4 und IPv6) 
 +#          soll gelauscht werden 
 +# default: inet_interfaces = all
 +# default: inet_protocols = all
 +
 +# Django : 2014-10-15 - Grundsätzlich soll erst einmal unser Mailserver nur dem
 +#          eigenen Host trauen, sonst niemanden! 
 +# default: mynetworks_style = subnet
 +mynetworks_style = host
 +
 +mynetworks =
 +                127.0.0.0/8
 +                [::1]/128
 +                10.0.0.0/24
 +                10.0.10.0/26
 +                130.185.109.34/32
 +                130.185.109.87/32
 +
 +# Django : 2015-10-15 - Backup-Mailserver explizit erlauben
 +# default: permit_mx_backup_networks =
 +permit_mx_backup_networks = 88.217.171.167/32
 +
 +
 +################################################################################
 +## ROUTING _ WEITERLEITEN VON NACHRICHTEN AN DAS EIGENTLICHE ZIEL
 +#
 +# Django : 2014-10-15 - Relayhost: Alle Nachrichten werden an den Relayhost
 +#          smtp-out.dmz.nausch.org gesendet.
 +# default: relayhost =
 +# relayhost = [smtp-out.dmz.nausch.org]
 +
 +# Django : 2014-10-15 - Backup-Relayhost: Sollte der $relayhost nicht erreichbar
 +#          sein, soll sich unser MTA an den backup-relayhost 
 +#          smtp-backup.dmz.nausch.org senden
 +# default: smtp_fallback_relay = $fallback_relay 
 +# smtp_fallback_relay = [smtp-backup.dmz.nausch.org]
 +
 +# Django : 2014-10-15 - Relay Domains: Postfix als eingehendes Mailrelay vor 
 +#          einem anderen Server
 +# default: relay_domains = $mydestination 
 +relay_domains = btree:/etc/postfix/relay_domains
 +
 +# Django : 2014-10-15 - Nachrichten für eine bestimmte Richtung sollen
 +#          abweichend von den MX-Definitionen im DNS an dedizierte Ziele
 +#          geroutet/weitergeleitet werden.
 +# default: transport_maps =
 +transport_maps = btree:/etc/postfix/transport_maps
 +
 +# Django : 2014-10-15 - Definition zur Erreichbarkeit unseres MDA-Servers 
 +#          Dovecot-IMAP
 +# default: virtual_transport = virtual
 +virtual_transport = lmtp:[10.0.0.77]:24
 +
 +
 +################################################################################
 +## QUEUEING-VERHALTEN
 +#
 +# Django : 2014-10-18 - Queue-Lifetime auf 3 Tage heruntersetzen, defininiert
 +#          die maximale Zeit, die der MX versuchen darf, eine Nachricht zuzu-
 +#          stellen
 +# default: maximal_queue_lifetime = 5d
 +maximal_queue_lifetime = 3d
 +
 +# Django : 2014-03-17- Bounce-Queue-Lifetime auf 3 Tage heruntersetzen, die
 +#          der MTA versuchen soll eine Bouncenachricht zuzustellen.
 +# default: bounce_queue_lifetime = 5d
 +bounce_queue_lifetime = 3d
 +
 +
 +################################################################################
 +## NACHRICHTENGROESSE UND ZUSTELLVERSUCHE/-MENGEN 
 +#
 +# Django : 2014-10-18 Maximale Nachrichtengröße festlegen. Maximale Nachrichten-
 +#          größe einer Nachricht incl. der Headerinformationen darf maximal 
 +#          50 MB ( 52428800 = 50*1024*1024 ) betragen, darüber verweigert 
 +#          Postfix die Annahme. 
 +# default: message_size_limit = 10240000
 +message_size_limit = 52428800
 +
 +# Django : 2014-10-18 Maximale Mailboxgröße einer einzelnen Mailbox bzw. 
 +#          Maildir-Fiels. Der Wert darf nicht kleiner als die maximale 
 +#          Nachrichtengröße (message_size_limit) sein.
 +# default: mailbox_size_limit = 10240000
 +mailbox_size_limit = 52428800
 +
 +# Django : 2010-10-28 - Rate Limiting (DOS-Attacken verhindern) maximale
 +#          Zustellung limitieren (Kapitel 24 des Buches Postfix)
 +#          (Kapitel 13.14 Rate-Limiting gegenüber Clients durchsetzen)
 +#          Basiszeiteinheit für die Kalkulation der rate-limits
 +# default: anvil_rate_time_unit = 60s
 +#
 +#          Maximale Anzahl gleichzeitiger Verbindungen pro einliefernenden Host
 +# default : smtpd_client_connection_count_limit = 50 
 +smtpd_client_connection_count_limit = 20
 +#
 +#          Maximale Anzahl von Verbindungsversuchen je definierter Zeiteinheit 
 +#          (anvil_rate_time_unit) pro einliefernden Host
 +# default: smtpd_client_connection_rate_limit = 0
 +smtpd_client_connection_rate_limit = 20
 +#
 +#          Maximale Anzahl von erlaubten Empfänger Adressen je definierter 
 +#          Zeiteinheit (anvil_rate_time_unit) pro einliefernden Host
 +# default: smtpd_client_recipient_rate_limit = 0
 +smtpd_client_recipient_rate_limit = 50
 +#
 +#          Maximale Anzahl von erlaubten Anzahl von eMails je definierter Zeit-
 +#          einheit (anvil_rate_time_unit) pro einliefernden Host
 +# deafault: smtpd_client_message_rate_limit = 0
 +smtpd_client_message_rate_limit = 50
 +#
 +#          Welche Cleints sollen vom Rate-Limeting ausgenommen werden? Per
 +#          Default sind dies alle Clients aus dem eigenen Netzwerk $mynetworks
 +# default: smtpd_client_event_limit_exceptions = 
 +#          ${smtpd_client_connection_limit_exceptions:$mynetworks}
 +#
 +#          Wie oft soll der anvil-Daemon Statistikdaten ins Maillog schreiben?
 +# default: anvil_status_update_time = 600s         
 +#
 +#          Ausgehende Verbindungen der Delivery-Clients limitieren. Für jeden
 +#          einzelnen Transport kann bei Bedarf eine eigene Rate definiert 
 +#          werden.
 +# default: default_destination_rate_delay = 0s
 +#          error_destination_rate_delay = $default_destination_rate_delay
 +#          lmtp_destination_rate_delay = $default_destination_rate_delay
 +#          local_destination_rate_delay = $default_destination_rate_delay
 +#          relay_destination_rate_delay = $default_destination_rate_delay
 +#          retry_destination_rate_delay = $default_destination_rate_delay
 +#          smtp_destination_rate_delay = $default_destination_rate_delay
 +#          virtual_destination_rate_delay = $default_destination_rate_delay
 +#          Ausgehende Nachrichten des MAilinglistenservers auf 2,5 Minuten
 +#          setzen
 +smtp_destination_rate_delay = 150s
 +
 +
 +################################################################################
 +## RÜCKMELDUNGEN BEEINFLUSSEN UND INDIVIDUALISIEREN
 +#
 +# Django : 2014-10-18 - Greeting Banner bei der 220er Begrüßung des MTA
 +smtpd_banner = $myhostname ESMTP $mail_name
 +
 +# Django : 2014-10-16 - Extra-Footer bls zweite Zeiler jeder Fehlermeldungen 
 +#          anfügen
 +smtpd_reject_footer = \c. Contact your postmaster/admin for technical assistance. He can achieve our postmaster via email: postmaster@nausch.org or via fax: +49 8121 883179. In any case, please provide the following information in your problem report: This error message, time ($localtime), client ($client_address) and server ($server_name).
 +
 +# Django : 2014-10-16 - Anzeige des Tabellen-Namens, in der der Empfänger
 +#          nicht gefunden wurde. Das unterdrücken macht unter Umständen die
 +#          Fehlersuche etwas aufwändiger, aber Externen geht diese Detailinfo
 +#          im Grunde nichts an. 
 +# default: show_user_unknown_table_name = yes
 +show_user_unknown_table_name = no
 +
 +# Django : 2014-10-24 - Adressverifikationsdetails unterdrücken
 +#          Weder den numerischen SMTP-reply-Code, noch den enhanced status code
 +#          zurückgeben. Lediglich "Recipient address lookup failed" zurückmelden.
 +# default: unverified_recipient_reject_reason =
 +unverified_recipient_reject_reason = Recipient address lookup failed
 +
 +# Django : 2014-10-24 - Adressverifikationsdetails unterdrücken
 +#          Weder den numerischen SMTP-reply-Code, noch den enhanced status code
 +#          zurückgeben. Lediglich "Recipient address lookup failed" zurückmelden.
 +# default: unverified_sender_reject_reason =
 +unverified_sender_reject_reason = Sender address lookup failed
 +
 +# Django : 2014-10-18 Definition der benutzerspezifischen und individualisierten 
 +#          Bounce-Nachrichten mit deutsch- und englischsprachigen Texten aktiviert
 +# default: bounce_template_file =
 +bounce_template_file = /etc/postfix/bounce.de-DE.cf
 +
 +# Django : 2014-10-18 - Delivery Status Notification (DSN) selectiv sperren
 +#          oder freigeben
 +# default: smtpd_discard_ehlo_keyword_address_maps =
 +smtpd_discard_ehlo_keyword_address_maps = cidr:/etc/postfix/esmtp_access
 +
 +# Django : 2014-10-18 - SMTP-Kommando VRFY sperren, mit dem eine einfache und
 +#          schnelle Addressverifizierung möglich ist.
 +# default: disable_vrfy_command = no
 +disable_vrfy_command = yes
 +
 +# Django : 2015-10-08 - Fehlercode bei Verwendung der Option
 +#          reject_plaintext_session beim Einsatz von verpflichtender
 +#          TLS-Transportverschlüsselung.
 +#          https://tools.ietf.org/html/rfc3463#section-3.8
 +# default: plaintext_reject_code = 450
 +# plaintext_reject_code = 573
 +
 +
 +################################################################################
 +## LOOKUP-TABELLEN
 +#
 +# Django : 2014-10-15 - default Datenbank Typ für die Befehle newaliases, 
 +#          postalias und postmap auf das performantere btree umgestellt.
 +# default default_database_type = hash
 +default_database_type = btree
 +
 +# Django : 2014-10-15 - Trennzeichen zwischen Usernamen und Adresserweiterung 
 +# default: recipient_delimiter =
 +recipient_delimiter = +
 +
 +# Django : 2014-10-15 - Alias-Tabelle für die Zustellung von lokalen Nachrichten
 +#          durch den MDA (Mail Delivery Agent) "local". Nach Änderungen an der
 +#          Tabelle /etc/aliases ist "newaliases" zum Neubau des Datenbankfiles
 +#          notwendig!
 +# default: alias_maps = hash:/etc/aliases, nis:mail.aliase
 +alias_maps = hash:/etc/aliases
 +#            btree:/etc/mailman/aliases
 +alias_database = hash:/etc/aliases
 +
 +# Django : 2014-10-15 - Optionale Lookup Tabelle mit allen gültigen Empfängern
 +#          der in $relay_domains aufgeführten Domains
 +# default: relay_recipient_maps =
 +relay_recipient_maps =
 +#                         btree:/etc/mailman/virtual-mailman
 +#                         btree:/etc/mailman/roleaccounts 
 +
 +# Django : 2014-10-15 - virtuelle Mail-Domains und Mailboxen mit Anbindung an
 +#          das mySQL-Datenbankbackend (Verwaltung mit Hilfe von postfixadmin)
 +# default: virtual_mailbox_domains = $virtual_mailbox_maps
 +#          virtual_alias_maps = $virtual_maps
 +#          virtual_mailbox_maps =
 +virtual_mailbox_domains = proxy:mysql:/etc/postfix/mysql_virtual_domains_maps.cf
 +
 +virtual_alias_maps =      proxy:mysql:/etc/postfix/mysql_virtual_alias_maps.cf
 +                          proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_maps.cf
 +                          proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_catchall_maps.cf
 +#
 +virtual_mailbox_maps =    proxy:mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
 +                          proxy:mysql:/etc/postfix/mysql_virtual_alias_domain_mailbox_maps.cf
 +
 +# Django : 2014-10-15 - BCC-Adress Lookup Tabelle mit deren Hilfe Nachrichten 
 +#          einzelner oder mehrerer Empfänger automatisch an einen weiteren 
 +#          Empfänger geschickt werden.
 +# default: recipient_bcc_maps = 
 +recipient_bcc_maps = btree:/etc/postfix/recipient_bcc_maps
 +
 +# Django : 2014-10-15 - BCC-Adress Lookup Tabelle mit deren Hilfe Nachrichten 
 +#          einzelner oder mehrerer Absender automatisch an einen weiteren 
 +#          Empfänger geschickt werden.
 +sender_bcc_maps = btree:/etc/postfix/sender_bcc_maps
 +
 +# Django : 2014-10-16 - SMTP Lookup Tabelle mit deren Hilfe eMail-Adressen der
 +#          Empfänger im SMTP-Envelope und im Header der eMail beim Verlassen
 +#          des MTA via SMTP umgeschrieben werden können.
 +# default: smtp_generic_maps =   
 +smtp_generic_maps = btree:/etc/postfix/smtp_generic_maps
 +
 +# Django : 2014-10-16 - LMTP Lookup Tabelle mit deren Hilfe eMail-Adressen der
 +#          Empfänger im SMTP-Envelope und im Header der eMail beim Verlassen
 +#          des MTA zum MDA via LMTP umgeschrieben werden können.
 +# default: smtp_generic_maps =   
 +lmtp_generic_maps = btree:/etc/postfix/lmtp_generic_maps
 +
 +# Django : 2014-10-16 - Lookup-Tabelle zum Umschreibungen von Absender-eMail-
 +#          -Adressen im SMTP-Envelop und/oder im Header der eMail. 
 +# default: sender_canonical_maps = 
 +sender_canonical_maps = btree:/etc/postfix/sender_canonical_maps
 +#                       SRS - Sender Rewriting Scheme mit postsrsd 
 +#                       tcp:127.0.0.1:10001
 +#          Definition welche Adressen umgeschrieben werden sollen
 +# default: sender_canonical_classes = envelope_sender, header_sender 
 +sender_canonical_classes = envelope_sender
 +
 +# Django : 2014-10-16 - Lookup-Tabelle zum Umschreibungen von Empfänger-eMail-
 +#          -Adressen im SMTP-Envelop und/oder im Header der eMail.
 +# default: recipient_canonical_maps =
 +recipient_canonical_maps = btree:/etc/postfix/recipient_canonical_maps
 +#                       SRS - Sender Rewriting Scheme mit postsrsd
 +#                       tcp:127.0.0.1:10002
 +#          Definition welche Adressen umgeschrieben werden sollen
 +# default: recipient_canonical_classes = envelope_recipient, header_recipient 
 +recipient_canonical_classes = envelope_recipient
 +
 +# Django : 2014-10-16 - Lookup-Tabelle zum Aktivieren von "Bounce-Nachrichten"
 +#          an den Absender einer eMail über nicht existierende eMail-Adressen 
 +#          mit Angabe der neu zu nutzenden eMailadresse des Empfängers.
 +# default: relocated_maps = 
 +relocated_maps = btree:/etc/postfix/relocated_maps
 +
 +# Django : 2015-10-15 - Ergebnisse der Adress-Verification cachen
 +#          Kapitel 12.2.2 Dynamische Empfänger-Verifizierung
 +#          Kapitel 9.5.5 envelope sender überprüfen
 +# default: address_verify_map = btree:$data_directory/verify_cache
 +
 +
 +################################################################################
 +## SMTP RECIPIENT RESTRICTIONS
 +#
 +# Django : 2014-10-29 - Schutz unserer Empfänger mit Hilfe der Recipient 
 +#          Restrictions 
 +# default: smtpd_recipient_restrictions =
 +smtpd_recipient_restrictions =
 +#          Postmaster, abuse und andere aufgaben- oder funktionsgebundene 
 +#          eMail-Adressen (Role-Accounts) whitelisten
 +           check_recipient_access btree:/etc/postfix/access_recipient-rfc
 +
 +#          Black- und Whitelisting       (Kapitel 8.2.3 White- und Blacklisting)
 +           check_client_access cidr:/etc/postfix/access_client
 +           check_helo_access btree:/etc/postfix/access_helo
 +           check_sender_access btree:/etc/postfix/access_sender
 +           check_recipient_access btree:/etc/postfix/access_recipient
 +
 +#          Unsere eigenen Nutzer zulassen-/erlauben             
 +#                                (Kapitel 8.2.2 Relaying erlauben und verbieten)
 +           permit_sasl_authenticated
 +           permit_mynetworks
 +
 +#          RBL überprüfen               (Kapitel 10.11 Realtime Blackhole Lists)
 +           reject_rbl_client zen.spamhaus.org
 +           reject_rbl_client ix.dnsbl.manitu.net
 +           reject_rbl_client bl.spamcop.net
 +           reject_rhsbl_client multi.uribl.com
 +
 +#          Greylisting via postgrey checken via Unix-Socket
 +#                                          (Kapitel 9.2.5 postgrey installieren)
 +#          check_policy_service unix:postgrey/socket,
 +
 +#          Policyd-Weight check over TCP-Connection 
 +#                                      (Kapitel 9.3 policyd-weight installieren)
 +#          check_client_access btree:/etc/postfix/policyd_weight_client_whitelist,
 +#          check_policy_service inet:127.0.0.1:12525,
 +
 +#          Dynamische Prüfung auf existente Relay-Empfänger
 +#                            (Kapitel 12.2.2 Dynamische Empfänger-Verifizierung)
 +           reject_unverified_recipient
 +
 +#          Backupserver (MX) erlauben
 +           permit_mx_backup
 +
 +#          alles andere an relaying verbieten   
 +#                                (Kapitel 8.2.2 Relaying erlauben und verbieten)
 +           reject_unauth_destination
 +
 +#          Quota-Status-Policy-Daemon am Dovecot-Backend-System
 +#          Dovecotbuch (ISBN 978-3-95539-74-7) Seite 219 ff.  
 +#                          (Kapitel 11.11 "Der Quota-Policy-Server für Postfix")
 +           check_policy_service inet:10.0.0.77:10000
 +
 +#          Zu guter Letzt alles durchlassen, was bis jetzt noch nicht 
 +#          beanstandet wurde
 +           permit
 +
 +
 +################################################################################
 +## SMTP RELAY RESTRICTIONS
 +#
 +# Django : 2014-10-27 - Definition, wer über unseren MX relayen darf oder nicht. 
 +#          http://www.postfix.org/postconf.5.html#smtpd_relay_restrictions
 +# default: smtpd_relay_restrictions = permit_mynetworks, 
 +#          permit_sasl_authenticated, defer_unauth_destination
 +#
 +smtpd_relay_restrictions =
 +# Unsere eigenen Nutzer zulassen-/erlauben
 +           permit_sasl_authenticated,
 +           permit_mynetworks,
 +# Backupserver (MX) erlauben
 +           permit_mx_backup,
 +# alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen
 +           reject_unauth_destination
 +</file>
 +===== Konfiguration aktivieren =====
 +Zur Aktivierung unserer Konfiguration benutzen wir **systemctl**.
 +   # systemctl restart postfix
 +
 +Da keine Rückmeldung erfolgte können wir davon ausgehen, dass alle unsere Konfigurationsoptionen unseren Wünschen entsprechend gesetzt wurden.
 +
 +Wir können aber auch den Status unseres Mailservers abfragen.
 +   # systemctl status postfix
 +<code>postfix.service - Postfix Mail Transport Agent
 +   Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
 +   Active: active (running) since Mon 2014-11-03 22:35:18 CET; 3s ago
 +  Process: 3222 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
 +  Process: 3206 ExecReload=/usr/sbin/postfix reload (code=exited, status=0/SUCCESS)
 +  Process: 3236 ExecStart=/usr/sbin/postfix start (code=exited, status=0/SUCCESS)
 +  Process: 3234 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
 +  Process: 3231 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
 + Main PID: 3309 (master)
 +   CGroup: /system.slice/postfix.service
 +           ├─3309 /usr/libexec/postfix/master -w
 +           ├─3310 pickup -l -t unix -u
 +           └─3311 qmgr -l -t unix -u
 +
 +Nov 03 22:35:17 vml000087.dmz.nausch.org systemd[1]: Starting Postfix Mail Transport Agent...
 +Nov 03 22:35:18 vml000087.dmz.nausch.org postfix/master[3309]: daemon started -- version 2.11.3, configuration /etc/postfix
 +Nov 03 22:35:18 vml000087.dmz.nausch.org systemd[1]: Started Postfix Mail Transport Agent.
 +</code>
 +
 +====== Links ======
 +  * **⇐ [[centos:mail_c7:mta_3|Zurück zum Kapitel "DNS Einstellungen rund um Mailserver"]]**
 +  * **⇒ [[centos:mail_c7:mta_5|Weiter zum Kapitel "SSL/TLS - Verbindungen verschlüsselte Kommunikation für Postfix 2.11 unter CentOS 7"]]**
 +  * **[[centos:mail_c7:start|Zurück zum Kapitel >>Mailserverinstallation unter CentOS 7<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
 +
 +
  • centos/mail_c7/mta_4.1415046010.txt.gz
  • Zuletzt geändert: 03.11.2014 20:20.
  • von django