Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| centos:mail_c7:mta_4 [03.11.2014 21:52. ] – django | centos:mail_c7:mta_4 [22.07.2020 20:13. ] (aktuell) – [Reject-Regeln] django | ||
|---|---|---|---|
| Zeile 15: | Zeile 15: | ||
| In der Vergangenheit, | In der Vergangenheit, | ||
| - | 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 anlegen. folgende vier Schritte sind hierzu | + | 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 anlegen; folgende vier Schritte sind hierzu |
| - Wir stoppen den vorhandenen Postfix-SMTP-Server. < | - Wir stoppen den vorhandenen Postfix-SMTP-Server. < | ||
| - Anschließend wechseln wir in das Konfigurationsverzeichnis // | - Anschließend wechseln wir in das Konfigurationsverzeichnis // | ||
| - | - Nun löschen | + | - Nun löschen |
| - **löschen** < | - **löschen** < | ||
| - **verschieben** < | - **verschieben** < | ||
| Zeile 40: | Zeile 40: | ||
| # | # | ||
| - | Wir werden später die einzelnen Konfigurationsoptionen strukturieren, | + | Wir werden später die einzelnen Konfigurationsoptionen strukturieren, |
| ==== 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: |
| + | # unverified_recipient_reject_code = 450 | ||
| + | # | ||
| # 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: | ||
| </ | </ | ||
| ==== Routing ==== | ==== Routing ==== | ||
| - | In der Section | + | In der Sektion |
| <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, | + | Auch wenn es für einen kleinen Server erst einmal als Overkill erscheinen mag, den IMAP-Server via **LMTP** anzusprechen, |
| </ | </ | ||
| # vim / | # vim / | ||
| <code bash>################################################################################ | <code bash>################################################################################ | ||
| - | ## ROUTING | + | ## ROUTING |
| # | # | ||
| # 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 | + | # Ausgehende Nachrichten des Mailinglistenservers |
| # setzen | # setzen | ||
| smtp_destination_rate_delay = 150s | smtp_destination_rate_delay = 150s | ||
| </ | </ | ||
| + | <WRAP center round important 90%> | ||
| + | **WICHTIG**: | ||
| + | </ | ||
| + | |||
| ==== 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:// | ||
| + | # default: plaintext_reject_code = 450 | ||
| + | # plaintext_reject_code = 571 | ||
| </ | </ | ||
| - | 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 | + | 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 |
| # cd / | # cd / | ||
| 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, | Bevor wir uns nun die einzelnen Lookup-Tabellen genauer ansehen, werfen wir noch einen Blick in die nachfolgende Übersicht um festzustellen, | ||
| - | <uml width=910 title=" | + | {{page>centos:mail_c7:postfix& |
| - | + | ||
| - | state " | + | |
| - | qmqp : QMQP-Modul | + | |
| - | + | ||
| - | state "/ | + | |
| - | sendmail | + | |
| - | sendmail : " | + | |
| - | + | ||
| - | state "MTA - MTA Verkehr" | + | |
| - | smtp_in : TCP/IP - Port 25 | + | |
| - | + | ||
| - | state "MUA - MSA Verkehr" | + | |
| - | submission : TCP/IP - Port 587 | + | |
| - | + | ||
| - | state " | + | |
| - | lmtp_24 : (Mail Delivery Agent) | + | |
| - | lmtp_24 : Dovecot IMAP-Server | + | |
| - | lmtp_24 : TCP/IP - Port 24 | + | |
| - | + | ||
| - | state " | + | |
| - | 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 : Weitergabe der eMail | + | |
| - | mailman : an Mailinglisten / wie Mailman | + | |
| - | mailman : oder via UUCP ... | + | |
| - | + | ||
| - | state " | + | |
| - | mailbox : Postfix - Queue | + | |
| - | mailbox : " | + | |
| - | mailbox : lokale Zustellung | + | |
| - | + | ||
| - | state master { | + | |
| - | state " | + | |
| - | maildrop : └── maildrop | + | |
| - | + | ||
| - | state " | + | |
| - | pickup : └── pickup | + | |
| - | + | ||
| - | state " | + | |
| - | anvil : └── | + | |
| - | + | ||
| - | state " | + | |
| - | dnsblog : └── | + | |
| - | + | ||
| - | state " | + | |
| - | tlsproxy : └── | + | |
| - | + | ||
| - | state " | + | |
| - | postscreen : └── | + | |
| - | + | ||
| - | state " | + | |
| - | verify : └── | + | |
| - | + | ||
| - | state " | + | |
| - | tlsmgr: └── | + | |
| - | + | ||
| - | state " | + | |
| - | scache: └── | + | |
| - | + | ||
| - | state " | + | |
| - | qmqpd: └── | + | |
| - | + | ||
| - | state " | + | |
| - | discard: └── | + | |
| - | + | ||
| - | state " | + | |
| - | error : ├── error | + | |
| - | error : └── retry | + | |
| - | + | ||
| - | state " | + | |
| - | virtual: └── | + | |
| - | + | ||
| - | state " | + | |
| - | cleanup : └── cleanup | + | |
| - | + | ||
| - | state " | + | |
| - | showq : └── | + | |
| - | + | ||
| - | state " | + | |
| - | rewrite : └── trivial-rewrite | + | |
| - | + | ||
| - | state " | + | |
| - | bounce : ├── bounce | + | |
| - | bounce : ├── defer | + | |
| - | bounce : └── trace | + | |
| - | + | ||
| - | state " | + | |
| - | smtpd : └── smtpd | + | |
| - | + | ||
| - | state " | + | |
| - | incoming : └── incoming | + | |
| - | + | ||
| - | state " | + | |
| - | hold : └── hold | + | |
| - | + | ||
| - | state " | + | |
| - | corrupt : └── corrupt | + | |
| - | + | ||
| - | state " | + | |
| - | active : └── active | + | |
| - | + | ||
| - | state " | + | |
| - | deferred : └── deferred | + | |
| - | + | ||
| - | state " | + | |
| - | qmgr : └── qmgr | + | |
| - | + | ||
| - | state " | + | |
| - | flush : └── flush | + | |
| - | + | ||
| - | state " | + | |
| - | resolve : └── resolve | + | |
| - | + | ||
| - | state " | + | |
| - | local : └── local | + | |
| - | + | ||
| - | state " | + | |
| - | pipe : └── pipe | + | |
| - | + | ||
| - | state " | + | |
| - | lmtp : └── lmtp | + | |
| - | + | ||
| - | state " | + | |
| - | smtp_out : └── smtp | + | |
| - | + | ||
| - | state " | + | |
| - | proxymap : ├── proxymap | + | |
| - | proxymap : └── proxywrite | + | |
| - | } | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| - | + | ||
| - | qmqp -right-> qmqpd | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | anvil --> smtpd | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | qmqpd --> cleanup | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | + | ||
| - | | + | |
| - | qmgr --> deferred | + | |
| - | qmgr --> active | + | |
| - | qmgr --> hold | + | |
| - | qmgr --> corrupt | + | |
| - | | + | |
| - | | + | |
| - | qmgr --> local | + | |
| - | qmgr -right-> smtp_out | + | |
| - | qmgr --> pipe | + | |
| - | qmgr --> lmtp | + | |
| - | qmgr -left-> virtual | + | |
| - | | + | |
| - | error --> qmgr | + | |
| - | flush --> qmgr | + | |
| - | showq --> qmgr | + | |
| - | | + | |
| - | + | ||
| - | lmtp --> lmtp_24 | + | |
| - | | + | |
| - | | + | |
| - | 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 / | + | |
| - | 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 | + | |
| - | + | ||
| - | </ | + | |
| 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**// | | **5xx**// | ||
| | **WARN**// | | **WARN**// | ||
| + | | **restriction** | ||
| Zeile 1289: | Zeile 1047: | ||
| # Postfix die ASCII-Konfigurationsdatei direkt auswertet! | # Postfix die ASCII-Konfigurationsdatei direkt auswertet! | ||
| # | # | ||
| + | # | ||
| + | # | ||
| </ | </ | ||
| Zeile 1338: | Zeile 1098: | ||
| # die zugehörige Datenbank erzeugt werden. | # die zugehörige Datenbank erzeugt werden. | ||
| # | # | ||
| + | # | ||
| </ | </ | ||
| Zeile 2621: | Zeile 2382: | ||
| virusalert@nausch.org | virusalert@nausch.org | ||
| postmaster@nausch.org | postmaster@nausch.org | ||
| + | |||
| + | === virtual_alias files in Verbindung mit postfixadmin === | ||
| + | Verwalten wir die Domänen und Nutzerkonten mit Hilfe von **[[centos: | ||
| + | |||
| + | < | ||
| + | # 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: | ||
| + | |||
| + | virtual_alias_maps = proxy: | ||
| + | proxy: | ||
| + | proxy: | ||
| + | |||
| + | virtual_mailbox_maps = proxy: | ||
| + | proxy: | ||
| + | |||
| + | Die zugehörigen Dateien, haben dann folgende Inhalte. | ||
| + | == mysql_virtual_domains_maps.cf == | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # 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=' | ||
| + | </ | ||
| + | |||
| + | == mysql_virtual_alias_maps.cf == | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # 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=' | ||
| + | </ | ||
| + | |||
| + | == mysql_virtual_alias_domain_maps.cf == | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # 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, | ||
| + | | ||
| + | AND alias_domain.active=' | ||
| + | </ | ||
| + | |||
| + | == mysql_virtual_alias_domain_catchall_maps.cf == | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # 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, | ||
| + | | ||
| + | AND alias_domain.active=' | ||
| + | </ | ||
| + | |||
| + | == mysql_virtual_mailbox_maps.cf == | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # 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=' | ||
| + | </ | ||
| + | |||
| + | == mysql_virtual_alias_domain_mailbox_maps.cf == | ||
| + | # vim / | ||
| + | <file bash / | ||
| + | # 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, | ||
| + | AND mailbox.username = CONCAT(' | ||
| + | | ||
| + | </ | ||
| ==== 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 // | Nachfolgende Definitionen fügen wir nun am Ende der // | ||
| Zeile 2841: | Zeile 2697: | ||
| # Backupserver (MX) erlauben | # Backupserver (MX) erlauben | ||
| - | permit_mx_backup | + | # |
| # alles andere an relaying verbieten | # alles andere an relaying verbieten | ||
| Zeile 2872: | Zeile 2728: | ||
| smtpd_relay_restrictions = | smtpd_relay_restrictions = | ||
| # Unsere eigenen Nutzer zulassen-/ | # Unsere eigenen Nutzer zulassen-/ | ||
| - | | + | |
| - | | + | |
| # Backupserver (MX) erlauben | # Backupserver (MX) erlauben | ||
| - | permit_mx_backup, | + | # permit_mx_backup |
| # alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen | # alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen | ||
| | | ||
| Zeile 3233: | Zeile 3089: | ||
| # 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:// | ||
| + | # default: plaintext_reject_code = 450 | ||
| + | # plaintext_reject_code = 573 | ||
| Zeile 3441: | Zeile 3304: | ||
| * **[[http:// | * **[[http:// | ||
| - | ~~DISCUSSION~~ | ||