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:04. ] – [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 1778: | Zeile 1806: | ||
| michael.nausch@omni128.de | michael.nausch@omni128.de | ||
| </ | </ | ||
| - | ==== " | + | ==== transport ==== |
| + | Lookup-Tabelle zum Aktivieren einer alternativen Mailrouting bei der Zustellung an einen weiteren Mailserver. | ||
| + | === manpage === | ||
| + | In der Manpage zu **transport** bzw. in der Datei // | ||
| + | # man 5 transport | ||
| + | < | ||
| + | |||
| + | NAME | ||
| + | | ||
| + | |||
| + | SYNOPSIS | ||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | DESCRIPTION | ||
| + | | ||
| + | | ||
| + | | ||
| + | cally hosts or domain names. The table is searched by the trivial-rewrite(8) daemon. | ||
| + | |||
| + | This mapping overrides the default transport: | ||
| + | | ||
| + | |||
| + | | ||
| + | This is the default for final delivery to domains listed with mydestination, | ||
| + | and for [ipaddress] destinations that match $inet_interfaces or $proxy_inter‐ | ||
| + | faces. The default nexthop destination is the MTA hostname. | ||
| + | |||
| + | | ||
| + | This is the default for final delivery to domains listed with virtual_mail‐ | ||
| + | box_domains. The default nexthop destination is the recipient domain. | ||
| + | |||
| + | | ||
| + | This is the default for remote delivery to domains listed with relay_domains. | ||
| + | In order of decreasing | ||
| + | relay_transport, | ||
| + | recipient domain. | ||
| + | |||
| + | | ||
| + | This is the default for remote delivery to other destinations. | ||
| + | decreasing precedence, the nexthop destination | ||
| + | dent_default_transport_maps, | ||
| + | host_maps, relayhost, or from the recipient domain. | ||
| + | |||
| + | | ||
| + | the postmap(1) command. | ||
| + | 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. | ||
| + | |||
| + | | ||
| + | | ||
| + | those case, the lookups are done in a slightly different way as described below under | ||
| + | " | ||
| + | |||
| + | CASE FOLDING | ||
| + | | ||
| + | the search string is not case folded with database types such as regexp: | ||
| + | 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 | ||
| + | result. | ||
| + | |||
| + | 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. | ||
| + | |||
| + | The pattern specifies an email address, a domain name, or a domain name hierarchy, as | ||
| + | | ||
| + | |||
| + | | ||
| + | mail. This is described in section " | ||
| + | |||
| + | 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: | ||
| + | |||
| + | | ||
| + | Deliver mail for user+extension@domain through transport to nexthop. | ||
| + | |||
| + | | ||
| + | Deliver mail for user@domain through transport to nexthop. | ||
| + | |||
| + | | ||
| + | Deliver mail for domain through transport to nexthop. | ||
| + | |||
| + | | ||
| + | Deliver | ||
| + | applies only when the string | ||
| + | ent_domain_matches_subdomains configuration setting. | ||
| + | matches itself and its subdomains. | ||
| + | |||
| + | * transport: | ||
| + | The special pattern * represents any address (i.e. it functions as the wild- | ||
| + | card pattern, and is unique to Postfix transport tables). | ||
| + | |||
| + | | ||
| + | name (default: mailer-daemon@hostname). | ||
| + | |||
| + | Note 2: user@domain or user+extension@domain lookup is available in Postfix | ||
| + | | ||
| + | |||
| + | RESULT FORMAT | ||
| + | | ||
| + | mail delivery transport such as smtp or local. The nexthop field specifies where and | ||
| + | how to deliver mail. | ||
| + | |||
| + | | ||
| + | of a mail delivery service entry in the Postfix master.cf file). | ||
| + | |||
| + | The interpretation of the nexthop field is transport dependent. In the case of SMTP, | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | did not exist. | ||
| + | |||
| + | | ||
| + | to the recipient domain. | ||
| + | |||
| + | A null transport field with non-null nexthop field does not modify | ||
| + | | ||
| + | |||
| + | EXAMPLES | ||
| + | | ||
| + | mail, specify a null entry for internal destinations | ||
| + | | ||
| + | | ||
| + | |||
| + | my.domain | ||
| + | .my.domain | ||
| + | * smtp: | ||
| + | |||
| + | In order to send mail for example.com and its subdomains via the uucp transport | ||
| + | the UUCP host named example: | ||
| + | |||
| + | example.com | ||
| + | .example.com | ||
| + | |||
| + | | ||
| + | For example, the following directs mail for user@example.com via the slow transport | ||
| + | | ||
| + | at most one delivery process at a time: | ||
| + | |||
| + | example.com | ||
| + | |||
| + | When no transport is specified, Postfix uses the transport that matches | ||
| + | | ||
| + | and its subdomains to host gateway.example.com: | ||
| + | |||
| + | example.com | ||
| + | .example.com | ||
| + | |||
| + | In the above example, the [] suppress MX lookups. | ||
| + | when your machine is primary MX host for example.com. | ||
| + | |||
| + | | ||
| + | | ||
| + | |||
| + | example.com | ||
| + | |||
| + | This directs mail for user@example.com to host bar.example port 2025. Instead | ||
| + | | ||
| + | | ||
| + | |||
| + | The error mailer can be used to bounce mail: | ||
| + | |||
| + | .example.com | ||
| + | |||
| + | This causes all mail for user@anything.example.com to be bounced. | ||
| + | |||
| + | 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 | ||
| + | | ||
| + | is user+foo@domain looked up as user@domain. | ||
| + | |||
| + | | ||
| + | that matches the search string. | ||
| + | |||
| + | The trivial-rewrite(8) server disallows regular expression substitution of $1 etc. in | ||
| + | | ||
| + | | ||
| + | |||
| + | TCP-BASED TABLES | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | | ||
| + | |||
| + | CONFIGURATION PARAMETERS | ||
| + | | ||
| + | only a parameter summary. See postconf(5) for more details including examples. | ||
| + | |||
| + | | ||
| + | The address that is looked up instead of the null sender address. | ||
| + | |||
| + | | ||
| + | List of Postfix features that use domain.tld patterns to match sub.domain.tld | ||
| + | (as opposed to requiring .domain.tld patterns). | ||
| + | |||
| + | | ||
| + | List of transport lookup tables. | ||
| + | |||
| + | 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 | ||
| + | | ||
| + | |||
| + | TRANSPORT(5) | ||
| + | </ | ||
| + | |||
| + | === transport-Datei === | ||
| + | * **transport_maps** Lookup-Tabelle zum Aktivieren einer alternativen Mailrouting bei der Zustellung an einen weiteren Mailserver. \\ **transport_maps.db** Datenbankfile zur // | ||
| + | # Lookup-Tabelle zum Aktivieren einer alternativen Mailrouting bei der | ||
| + | # Zustellung an einen weiteren Mailserver. Nach dem Ändern und/oder | ||
| + | # Erweitern der Tabelle, muß noch mittels: | ||
| + | # $ postmap / | ||
| + | # | ||
| + | # die zugehörige Datenbank erzeugt werden. | ||
| + | # | ||
| + | # Alle eMails, die an Subdomains von nausch.org gerichtet sind | ||
| + | # (" | ||
| + | # intra.nausch.org (MX-Records) weitergeleitet. (keine " | ||
| + | # | ||
| + | |||
| + | # Alle eMails, die an die Domain tachtler.net gerichtet sind, werden an | ||
| + | # den bzw. die Mailserver der Mail-Domäne t-offline.de (MX-Records) | ||
| + | # weitergeleitet. (keine " | ||
| + | # tachtler.net | ||
| + | |||
| + | # Mails an backup.nausch.org werden an den Mailserver (A-Record) auf Port 25 | ||
| + | # mit Namen mail.intra.nausch.org geschickt. | ||
| + | # | ||
| + | |||
| + | # Django : 2013-02-21 | ||
| + | # eMails an den Fax-Server an den Host vml000020 weiterleiten | ||
| + | fax.nausch.org | ||
| + | # eMails an den Key-Server sollen an den Host vml000030 weitergeleitet | ||
| + | # werden. | ||
| + | keyserver.nausch.org | ||
| + | |||
| + | # Django : 2013-02-22 | ||
| + | # eMails an den Mailinglisten-Server an das Programm mailman weiterreichen | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== 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: | ||
| + | |||
| + | | ||
| + | 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 = 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 | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== 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 1806: | 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:// | ||