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 18:22. ] – [manpage] 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 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 / | ||
+ | |||
+ | # wget http:// | ||
+ | |||
+ | |||
+ | |||
===== Lookup-Tabellen ===== | ===== Lookup-Tabellen ===== | ||
+ | Bevor wir uns nun die einzelnen Lookup-Tabellen genauer ansehen, werfen wir noch einen Blick in die nachfolgende Übersicht um festzustellen, | ||
+ | |||
+ | {{page> | ||
+ | |||
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 1002: | Zeile 1027: | ||
| **5xx**// | | **5xx**// | ||
| **WARN**// | | **WARN**// | ||
+ | | **restriction** | ||
Zeile 1022: | Zeile 1047: | ||
# Postfix die ASCII-Konfigurationsdatei direkt auswertet! | # Postfix die ASCII-Konfigurationsdatei direkt auswertet! | ||
# | # | ||
+ | # | ||
+ | # | ||
</ | </ | ||
Zeile 1071: | Zeile 1098: | ||
# die zugehörige Datenbank erzeugt werden. | # die zugehörige Datenbank erzeugt werden. | ||
# | # | ||
+ | # | ||
</ | </ | ||
Zeile 2066: | Zeile 2094: | ||
- | ==== " | + | ==== virtual ==== |
+ | Lookup-Tabelle zum Verwalten der virtuellen Domains und virtuellen eMail-Adressen. | ||
+ | === manpage === | ||
+ | In der Manpage zu **virtual** bzw. in der Datei // | ||
+ | # man 5 transport | ||
+ | < | ||
+ | |||
+ | NAME | ||
+ | | ||
+ | |||
+ | SYNOPSIS | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | DESCRIPTION | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | The main applications of virtual aliasing are: | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | addresses in other domains. | ||
+ | |||
+ | Virtual | ||
+ | that are implemented with the Postfix virtual(8) | ||
+ | virtual mailbox domains, each recipient address can have its own mailbox. | ||
+ | |||
+ | | ||
+ | | ||
+ | in general. | ||
+ | |||
+ | | ||
+ | to the postmap(1) command. | ||
+ | for fast searching by the mail system. Execute the command " | ||
+ | | ||
+ | |||
+ | When the table is provided via other means such as NIS, LDAP or SQL, the same lookups | ||
+ | are done as for ordinary indexed files. | ||
+ | |||
+ | | ||
+ | are given as regular expressions, | ||
+ | those case, the lookups are done in a slightly different way as described below under | ||
+ | " | ||
+ | |||
+ | CASE FOLDING | ||
+ | The search string is folded to lowercase before database lookup. As of Postfix | ||
+ | | ||
+ | whose lookup fields can match both upper and lower case. | ||
+ | |||
+ | TABLE FORMAT | ||
+ | The input format for the postmap(1) command is as follows: | ||
+ | |||
+ | | ||
+ | When pattern matches a mail address, replace it by the corresponding address. | ||
+ | |||
+ | blank lines and comments | ||
+ | Empty lines and whitespace-only lines are ignored, as are lines whose first | ||
+ | non-whitespace character is a `#'. | ||
+ | |||
+ | | ||
+ | A logical line starts with non-whitespace text. A line that starts with white‐ | ||
+ | space continues a logical line. | ||
+ | |||
+ | TABLE SEARCH ORDER | ||
+ | With lookups from indexed files such as DB or DBM, or from networked tables | ||
+ | NIS, LDAP or SQL, patterns are tried in the order as listed below: | ||
+ | |||
+ | user@domain address, address, ... | ||
+ | Redirect | ||
+ | dence. | ||
+ | |||
+ | user address, address, ... | ||
+ | Redirect mail for user@site to address when site is equal to $myorigin, | ||
+ | site is listed in $mydestination, | ||
+ | $proxy_interfaces. | ||
+ | |||
+ | This functionality overlaps with functionality of the local aliases(5) | ||
+ | base. The difference | ||
+ | addresses. | ||
+ | |||
+ | | ||
+ | Redirect mail for other users in domain to address. | ||
+ | precedence. | ||
+ | |||
+ | Note: @domain is a wild-card. With this form, the Postfix SMTP server accepts | ||
+ | mail for any recipient in domain, regardless of whether that recipient exists. | ||
+ | This may turn your mail system | ||
+ | accepts mail for non-existent recipients and then tries to return that mail as | ||
+ | | ||
+ | |||
+ | RESULT ADDRESS REWRITING | ||
+ | The lookup result is subject to address rewriting: | ||
+ | |||
+ | | ||
+ | otherdomain. | ||
+ | result. | ||
+ | |||
+ | | ||
+ | " | ||
+ | |||
+ | | ||
+ | " | ||
+ | |||
+ | ADDRESS EXTENSION | ||
+ | | ||
+ | | ||
+ | user, and @domain. | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | VIRTUAL ALIAS DOMAINS | ||
+ | | ||
+ | | ||
+ | to addresses in other domains. | ||
+ | |||
+ | | ||
+ | are implemented with the Postfix virtual(8) mail delivery agent. With virtual mailbox | ||
+ | | ||
+ | |||
+ | With a virtual alias domain, the virtual domain has its own user name space. | ||
+ | | ||
+ | lar, local aliases(5) and local mailing lists are not visible | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | / | ||
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | / | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | The virtual-alias.domain anything entry is required for a virtual alias domain. With‐ | ||
+ | | ||
+ | loops back to myself" | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | With a virtual alias domain, the Postfix SMTP server accepts mail for known-user@vir‐ | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | you may also specify it via the main.cf virtual_alias_domains | ||
+ | | ||
+ | | ||
+ | |||
+ | REGULAR EXPRESSION TABLES | ||
+ | This section describes how the table lookups change when the table is given in the | ||
+ | | ||
+ | | ||
+ | |||
+ | Each pattern is a regular expression that is applied | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | that matches the search string. | ||
+ | |||
+ | | ||
+ | | ||
+ | |||
+ | TCP-BASED TABLES | ||
+ | This section describes how the table lookups change when lookups are directed | ||
+ | | ||
+ | | ||
+ | |||
+ | Each lookup operation uses the entire address once. Thus, user@domain mail addresses | ||
+ | are not broken up into their user and @domain constituent parts, nor is user+foo bro‐ | ||
+ | ken up into user and foo. | ||
+ | |||
+ | | ||
+ | |||
+ | BUGS | ||
+ | The table format does not understand quoting conventions. | ||
+ | |||
+ | CONFIGURATION PARAMETERS | ||
+ | The following main.cf parameters are especially relevant to this topic. See the Post‐ | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | List of virtual aliasing tables. | ||
+ | |||
+ | | ||
+ | List of virtual alias domains. This uses the same syntax as the mydestination | ||
+ | parameter. | ||
+ | |||
+ | | ||
+ | A list of address rewriting or forwarding mechanisms that propagate an address | ||
+ | extension from the original address to the result. | ||
+ | canonical, virtual, alias, forward, include, or generic. | ||
+ | |||
+ | Other parameters of interest: | ||
+ | |||
+ | | ||
+ | The network | ||
+ | to stop and start Postfix when this parameter changes. | ||
+ | |||
+ | | ||
+ | List of domains that this mail system considers local. | ||
+ | |||
+ | | ||
+ | The domain that is appended to any address that does not have a domain. | ||
+ | |||
+ | | ||
+ | Give special treatment to owner-xxx and xxx-request addresses. | ||
+ | |||
+ | | ||
+ | Other interfaces that this machine receives mail on by way of a proxy agent or | ||
+ | network address translator. | ||
+ | |||
+ | SEE ALSO | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | README FILES | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | LICENSE | ||
+ | The Secure Mailer license must be distributed with this software. | ||
+ | |||
+ | AUTHOR(S) | ||
+ | | ||
+ | IBM T.J. Watson Research | ||
+ | P.O. Box 704 | ||
+ | | ||
+ | |||
+ | VIRTUAL(5) | ||
+ | </ | ||
+ | === virtual-Dateien === | ||
+ | == virtual_alias_domains == | ||
+ | * **virtual_alias_domains** Lookup-Tabelle zum Verwalten der virtuellen Domains. \\ **virtual_alias_domains.db** | ||
+ | # Lookup-Tabelle zum Verwalten der virtuellen Domains. | ||
+ | # Nach dem Ändern und/oder Erweitern der Tabelle, muß noch mittels | ||
+ | # | ||
+ | # $ postmap / | ||
+ | # | ||
+ | # die zugehörige Datenbank erzeugt werden. | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | * **virtual_alias_maps** Lookup-Tabelle zum Verwalten der virtuellen eMail-Adressen. \\ **virtual_alias_maps.db** | ||
+ | # Lookup-Tabelle zum Verwalten der virtuellen eMailadressen. | ||
+ | # Nach dem Ändern und/oder Erweitern der Tabelle, muß noch mittels | ||
+ | # | ||
+ | # $ postmap / | ||
+ | # | ||
+ | # die zugehörige Datenbank erzeugt werden. | ||
+ | # | ||
+ | # catch all - Sämtliche eMailadressen werden 1:1 umgeschrieben. Aus | ||
+ | # webmaster@wetter.nausch.org wird webmaster@nausch.org. | ||
+ | @wetter.nausch.org | ||
+ | |||
+ | # eine einzelne Adresse gezielt umschreiben. Alle Nachrichten die an | ||
+ | # admin@wetterstation-pliening.info addressiert sind, gehen an | ||
+ | # michael@nausch.org. | ||
+ | admin@wetterstation-pliening.info | ||
+ | michael@nausch.org | ||
+ | root@nausch.org | ||
+ | virusalert@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 ==== | ||
+ | Ergänzend zu den aus dem **RPM** enthaltenen Loogup_Tabellen, | ||
+ | === bcc-Dateien === | ||
+ | == recipient_bcc_maps == | ||
+ | * **recipient_bcc_maps** Lookup-Tabelle für Blindcopies einer oder mehrerer Empfangsadressen zu einem oder mehrer Zieladressen. \\ **recipient_bcc_maps.db** | ||
+ | # Kapitel 5.2.3 bcc-Tabelle: | ||
+ | # | ||
+ | # Nach dem Ändern und/oder Erweitern der Tabelle, muß noch mittels | ||
+ | # $ postmap / | ||
+ | # die zugehörige Datenbank erzeugt werden. | ||
+ | # | ||
+ | # catch all, alle Nachrichten einer bestimmten (Empfangs-)Domäne kopieren | ||
+ | # | ||
+ | # | ||
+ | # alle Nachrichten eines einzelnen Empfängers kopieren | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | * **sender_bcc_maps** Lookup-Tabelle für Blindcopies einer oder mehrerer Absenderadressen zu einem oder mehrer Zieladressen. \\ **sender_bcc_maps.db** | ||
+ | # Kapitel 5.2.3 bcc-Tabelle: | ||
+ | # | ||
+ | # Nach dem Ändern und/oder Erweitern der Tabelle, muß noch mittels | ||
+ | # $ postmap / | ||
+ | # die zugehörige Datenbank erzeugt werden. | ||
+ | # | ||
+ | # catch all, alle Nachrichten einer bestimmten Domäne kopieren | ||
+ | # | ||
+ | # | ||
+ | # alle Nachrichten eines einzelnen Absenders kopieren | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | |||
+ | In der Sektion **LOOKUP-TABELLEN** definieren wir nun die zuvor vorgestellten Lookup-Tabellen in der Hauptkonfigurationsdatei **main.cf**. | ||
+ | # vim / | ||
+ | <code bash> | ||
+ | |||
+ | ################################################################################ | ||
+ | ## 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) " | ||
+ | # Tabelle / | ||
+ | # notwendig! | ||
+ | # default: alias_maps = hash:/ | ||
+ | alias_maps = hash:/ | ||
+ | # btree:/ | ||
+ | alias_database = hash:/ | ||
+ | |||
+ | # 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 = | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # 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: | ||
+ | |||
+ | virtual_alias_maps = proxy: | ||
+ | proxy: | ||
+ | proxy: | ||
+ | |||
+ | virtual_mailbox_maps = proxy: | ||
+ | proxy: | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | # SRS - Sender Rewriting Scheme mit postsrsd | ||
+ | # | ||
+ | # Definition welche Adressen umgeschrieben werden sollen | ||
+ | # default: sender_canonical_classes = envelope_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:/ | ||
+ | # SRS - Sender Rewriting Scheme mit postsrsd | ||
+ | # | ||
+ | # Definition welche Adressen umgeschrieben werden sollen | ||
+ | # default: recipient_canonical_classes = envelope_recipient, | ||
+ | recipient_canonical_classes = envelope_recipient | ||
+ | |||
+ | # Django : 2014-10-16 - Lookup-Tabelle zum Aktivieren von " | ||
+ | # 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 | ||
+ | |||
+ | # 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 | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
===== Absicherung mit Hilfe von Restrictions ===== | ===== Absicherung mit Hilfe von Restrictions ===== | ||
- | Bevor wir uns nun die einzelnen | + | Bevor wir uns nun tiefer in die einzelnen |
Zeile 2094: | 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 ==== | ||
+ | Nachfolgende Definitionen fügen wir nun am Ende der // | ||
+ | # vim / | ||
+ | < | ||
+ | |||
+ | ################################################################################ | ||
+ | ## 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 | ||
+ | | ||
+ | |||
+ | # Black- und Whitelisting | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # Unsere eigenen Nutzer zulassen-/ | ||
+ | # (Kapitel 8.2.2 Relaying erlauben und verbieten) | ||
+ | | ||
+ | | ||
+ | |||
+ | # RBL überprüfen | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # Greylisting via postgrey checken via Unix-Socket | ||
+ | # (Kapitel 9.2.5 postgrey installieren) | ||
+ | # check_policy_service unix: | ||
+ | |||
+ | # Policyd-Weight check over TCP-Connection | ||
+ | # (Kapitel 9.3 policyd-weight installieren) | ||
+ | # check_client_access btree:/ | ||
+ | # check_policy_service inet: | ||
+ | |||
+ | # Dynamische Prüfung auf existente Relay-Empfänger | ||
+ | # (Kapitel 12.2.2 Dynamische Empfänger-Verifizierung) | ||
+ | | ||
+ | |||
+ | # Backupserver (MX) erlauben | ||
+ | # permit_mx_backup | ||
+ | |||
+ | # alles andere an relaying verbieten | ||
+ | # (Kapitel 8.2.2 Relaying erlauben und verbieten) | ||
+ | | ||
+ | |||
+ | # 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" | ||
+ | | ||
+ | |||
+ | # Zu guter Letzt alles durchlassen, | ||
+ | # beanstandet wurde | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ==== SMTP Relay Restrictions ==== | ||
+ | Nachfolgende Definitionen fügen wir nun am Ende der // | ||
+ | # vim / | ||
+ | < | ||
+ | |||
+ | ################################################################################ | ||
+ | ## SMTP RELAY RESTRICTIONS | ||
+ | # | ||
+ | # Django : 2014-10-27 - Definition, wer über unseren MX relayen darf oder nicht. | ||
+ | # http:// | ||
+ | # default: smtpd_relay_restrictions = permit_mynetworks, | ||
+ | # permit_sasl_authenticated, | ||
+ | # | ||
+ | smtpd_relay_restrictions = | ||
+ | # Unsere eigenen Nutzer zulassen-/ | ||
+ | | ||
+ | | ||
+ | # Backupserver (MX) erlauben | ||
+ | # | ||
+ | # alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== main.cf ===== | ||
+ | Somit ergibt sich vorerst folgende Hauptkonfigurationsdatei // | ||
+ | # less / | ||
+ | <file bash / | ||
+ | # # | ||
+ | # 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 = / | ||
+ | sendmail_path = / | ||
+ | |||
+ | # Django : 2014-10-31 - Vollständiger Pfad zum Postfix newaliases Programm, dem | ||
+ | # zu sendmail kompatiblen Programm zum Anlegen der Alias Datenbanken. | ||
+ | # default: newaliases_path = / | ||
+ | newaliases_path = / | ||
+ | |||
+ | # Django : 2014-10-31 - Vollständiger Pfad zum Postfix qmail-Programm, | ||
+ | # sendmail kompatiblen Programm zum Anzeigen der Maile-Queues | ||
+ | # default: mailq_path = / | ||
+ | mailq_path = / | ||
+ | |||
+ | # 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 = / | ||
+ | manpage_directory = / | ||
+ | |||
+ | # Django : 2014-10-31 - Pfadangabe für die Postfix Beispielkonfigurationsdateien. | ||
+ | # Dieser Parameter ist obsolete seit Postfix 2.1. | ||
+ | # default: sample_directory = / | ||
+ | sample_directory = / | ||
+ | |||
+ | # Django : 2014-10-31 - Pfadangabe für die Postfix README Dateien. | ||
+ | # default: readme_directory = no | ||
+ | readme_directory = / | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## 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/ | ||
+ | # findet man bei Bedarf nützliche Hinweise und Beispiele, die | ||
+ | # beschreiben, | ||
+ | # betreiben kann. | ||
+ | # default: queue_directory = / | ||
+ | queue_directory = / | ||
+ | |||
+ | # 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, | ||
+ | # postfix Daemon Programme (die z.B. auch in der master.cf | ||
+ | # aufgeführt sind) befinden. Das Verzeichnis muss root gehören! | ||
+ | # default: daemon_directory = / | ||
+ | daemon_directory = / | ||
+ | |||
+ | # Django : 2014-10-31 - Datenverzeichnis, | ||
+ | # ablegt, wie z.B. Caches, Zufallszahlen ect. pp. Das Verzeichnis | ||
+ | # muss dem nachfolgendem " | ||
+ | # default: data_directory = / | ||
+ | data_directory = / | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## 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, | ||
+ | # 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 " | ||
+ | # um welchen Faktor der Logging-Level erhöht wird, wenn ein SMTP | ||
+ | # Client, ein Hostname oder eine IP-Adresse zu den Definitionen des | ||
+ | # nachfolgenden " | ||
+ | # 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 | ||
+ | # " | ||
+ | # erhöht werden soll. | ||
+ | # Bsp: debug_peer_list = 127.0.0.1 | ||
+ | # | ||
+ | # | ||
+ | # default: debug_peer_list = | ||
+ | |||
+ | # Django : 2014-10-13 - Debugger-Befehlszeile | ||
+ | # Die Option " | ||
+ | # 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 = | ||
+ | | ||
+ | echo where) | gdb $daemon_directory/ | ||
+ | > | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## ZUSTÄNDIGKEITEN, | ||
+ | # | ||
+ | # Django : 2014-10-15 - Hostname auf " | ||
+ | # 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? | ||
+ | # auch noch Nachrichten für die beiden Sub-Domains lists.nausch.org | ||
+ | # (Mailman) und dmarc.nausch.org (DMARC-Reportmails) annehmen. | ||
+ | # default: mydestination = $myhostname, | ||
+ | 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/ | ||
+ | 130.185.109.34/ | ||
+ | 130.185.109.87/ | ||
+ | |||
+ | # Django : 2015-10-15 - Backup-Mailserver explizit erlauben | ||
+ | # default: permit_mx_backup_networks = | ||
+ | permit_mx_backup_networks = 88.217.171.167/ | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## 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: | ||
+ | # 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:/ | ||
+ | |||
+ | # Django : 2014-10-15 - Nachrichten für eine bestimmte Richtung sollen | ||
+ | # abweichend von den MX-Definitionen im DNS an dedizierte Ziele | ||
+ | # geroutet/ | ||
+ | # default: transport_maps = | ||
+ | transport_maps = btree:/ | ||
+ | |||
+ | # Django : 2014-10-15 - Definition zur Erreichbarkeit unseres MDA-Servers | ||
+ | # Dovecot-IMAP | ||
+ | # default: virtual_transport = virtual | ||
+ | virtual_transport = lmtp: | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## QUEUEING-VERHALTEN | ||
+ | # | ||
+ | # Django : 2014-10-18 - Queue-Lifetime auf 3 Tage heruntersetzen, | ||
+ | # 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, | ||
+ | # der MTA versuchen soll eine Bouncenachricht zuzustellen. | ||
+ | # default: bounce_queue_lifetime = 5d | ||
+ | bounce_queue_lifetime = 3d | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## NACHRICHTENGROESSE UND ZUSTELLVERSUCHE/ | ||
+ | # | ||
+ | # 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: | ||
+ | # | ||
+ | # 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/ | ||
+ | |||
+ | # Django : 2014-10-16 - Anzeige des Tabellen-Namens, | ||
+ | # nicht gefunden wurde. Das unterdrücken macht unter Umständen die | ||
+ | # Fehlersuche etwas aufwändiger, | ||
+ | # 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, | ||
+ | # zurückgeben. Lediglich " | ||
+ | # 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, | ||
+ | # zurückgeben. Lediglich " | ||
+ | # 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 = / | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:// | ||
+ | # 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) " | ||
+ | # Tabelle / | ||
+ | # notwendig! | ||
+ | # default: alias_maps = hash:/ | ||
+ | alias_maps = hash:/ | ||
+ | # btree:/ | ||
+ | alias_database = hash:/ | ||
+ | |||
+ | # 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 = | ||
+ | # | ||
+ | # | ||
+ | |||
+ | # 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: | ||
+ | |||
+ | virtual_alias_maps = proxy: | ||
+ | proxy: | ||
+ | proxy: | ||
+ | # | ||
+ | virtual_mailbox_maps = proxy: | ||
+ | proxy: | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | |||
+ | # 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:/ | ||
+ | # SRS - Sender Rewriting Scheme mit postsrsd | ||
+ | # | ||
+ | # Definition welche Adressen umgeschrieben werden sollen | ||
+ | # default: sender_canonical_classes = envelope_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:/ | ||
+ | # SRS - Sender Rewriting Scheme mit postsrsd | ||
+ | # | ||
+ | # Definition welche Adressen umgeschrieben werden sollen | ||
+ | # default: recipient_canonical_classes = envelope_recipient, | ||
+ | recipient_canonical_classes = envelope_recipient | ||
+ | |||
+ | # Django : 2014-10-16 - Lookup-Tabelle zum Aktivieren von " | ||
+ | # 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:/ | ||
+ | |||
+ | # 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: | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## 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 | ||
+ | | ||
+ | |||
+ | # Black- und Whitelisting | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # Unsere eigenen Nutzer zulassen-/ | ||
+ | # (Kapitel 8.2.2 Relaying erlauben und verbieten) | ||
+ | | ||
+ | | ||
+ | |||
+ | # RBL überprüfen | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | # Greylisting via postgrey checken via Unix-Socket | ||
+ | # (Kapitel 9.2.5 postgrey installieren) | ||
+ | # check_policy_service unix: | ||
+ | |||
+ | # Policyd-Weight check over TCP-Connection | ||
+ | # (Kapitel 9.3 policyd-weight installieren) | ||
+ | # check_client_access btree:/ | ||
+ | # check_policy_service inet: | ||
+ | |||
+ | # Dynamische Prüfung auf existente Relay-Empfänger | ||
+ | # (Kapitel 12.2.2 Dynamische Empfänger-Verifizierung) | ||
+ | | ||
+ | |||
+ | # Backupserver (MX) erlauben | ||
+ | | ||
+ | |||
+ | # alles andere an relaying verbieten | ||
+ | # (Kapitel 8.2.2 Relaying erlauben und verbieten) | ||
+ | | ||
+ | |||
+ | # 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" | ||
+ | | ||
+ | |||
+ | # Zu guter Letzt alles durchlassen, | ||
+ | # beanstandet wurde | ||
+ | | ||
+ | |||
+ | |||
+ | ################################################################################ | ||
+ | ## SMTP RELAY RESTRICTIONS | ||
+ | # | ||
+ | # Django : 2014-10-27 - Definition, wer über unseren MX relayen darf oder nicht. | ||
+ | # http:// | ||
+ | # default: smtpd_relay_restrictions = permit_mynetworks, | ||
+ | # permit_sasl_authenticated, | ||
+ | # | ||
+ | smtpd_relay_restrictions = | ||
+ | # Unsere eigenen Nutzer zulassen-/ | ||
+ | | ||
+ | | ||
+ | # Backupserver (MX) erlauben | ||
+ | | ||
+ | # alles andere an relaying verbieten, d.h. mit einem finalen error 550 abweisen | ||
+ | | ||
+ | </ | ||
+ | ===== 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 | ||
+ | < | ||
+ | | ||
+ | | ||
+ | Process: 3222 ExecStop=/ | ||
+ | Process: 3206 ExecReload=/ | ||
+ | Process: 3236 ExecStart=/ | ||
+ | Process: 3234 ExecStartPre=/ | ||
+ | Process: 3231 ExecStartPre=/ | ||
+ | Main PID: 3309 (master) | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 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/ | ||
+ | Nov 03 22:35:18 vml000087.dmz.nausch.org systemd[1]: Started Postfix Mail Transport Agent. | ||
+ | </ | ||
+ | |||
+ | ====== Links ====== | ||
+ | * **⇐ [[centos: | ||
+ | * **⇒ [[centos: | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||