Inhaltsverzeichnis
Postfix ArchLinux - Konfiguration: main server - smtps-Konfiguration
Postfix ist Wietse Venema's Mail-Server, welcher bei „IBM research“ als Alternative zum ehemals weit verbreiteten Programm Sendmail entwickelt wurde. Postfix erhebt den Anspruch ein schneller, einfach zu administrierender und sicherer Mail-Server zu sein.
Postfix wird von Wietse Venema entwickelt.
Beschreibung | Externer Link |
---|---|
Homepage | http://www.postfix.org |
Ankündigungen | http://www.postfix.org/announcements.html |
Dokumentation | http://www.postfix.org/documentation.html Postfix TLS Support Postfix Connection Cache TLS Forward Secrecy in Postfix Postfix - master.cf |
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password:
Vorhaben
Es soll für die Kommunikation via E-Mail mit Postfix nachfolgendes Konstrukt, wie in der gezeigten Skizze zu sehen ist, zum Einsatz kommen:
┌──────────────────────┐ ┌───┐ │ Postfix- │ │ I │ │ null client │ │ N │ ├──────────────────────┤ │ T │ │ │ │ E │ │ Listen 'localhost' │ │ R │ │ Cert 'self-signed' │ │ N │ │ │ │ E │ │ Relay: main client │ │ T │ │ │ │ │ └────▼─────────────────┘ └─▲─┘ │ │ │ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ Postfix- │ │ │ │ main server │ │ │ ├───────────────────────────────────────────┤ │ │ │ │ │ │ │ ┌───────────────────────────────────┐ │ │ │ │ │ IN Port: 25 OUT │ │ │ │ │ ├───────────────────────────────────┤ │ │ │ │ │ ✔ interne E-Mail │ │ │ │ │ │ ✘ externe E-Mail │ │ │ │ │ │ ✔ Verschlüsselungen: möglich │ │ │ │ │ │ ✘ Authentifizierung: KEINE │ │ │ │ │ └───────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌───────────────────────────────────┐ │ │ └───────────┼───► IN Port: 465 OUT ►───┼─────────────┘ │ ├───────────────────────────────────┤ │ │ │ ✔ interne E-Mail │ │ │ │ ✔ externe E-Mail │ │ │ │ ✔ Verschlüsselungen: möglich │ │ │ │ ✔ Authentifizierung: Zertifikat │ │ │ └───────────────────────────────────┘ │ │ │ │ ┌───────────────────────────────────┐ │ │ │ IN Port: 587 OUT │ │ │ ├───────────────────────────────────┤ │ │ │ ✔ interne E-Mail │ │ │ │ ✔ externe E-Mail │ │ │ │ ✔ Verschlüsselungen: möglich │ │ │ │ ✔ Authentifizierung: SASL │ │ │ └───────────────────────────────────┘ │ │ │ │ 'mx1.tachtler.net' │ │ │ └─────────────────────┬─────────────────────┘ │ ┌───────────▼───────────┐ │ │ │ 'imap.tachtler.net' │ │ │ │ Port: 24 │ │ ✔ TLS-verschlüsselt │ │ ✔ LMTP(s)-Transport │ │ │ └───────────────────────┘
Die interne Kommunikation vom Postfix-null client zum Postfix-main client soll via TLS-Verschlüsselung mittels „secure“ und ausschliessliche über Port: 465
(smtps) und mit einer Authentifizierung über das Zertifikats des Postfix-null client erzwungen werden.
Voraussetzungen
Für die nachfolgende Installation wird vorausgesetzt,
- dass eine lauffähige Version von Postfix ab Version 3.9
vorhanden ist und die unter nachfolgenden Links beschriebenen Installationen und Konfigurationen von Postfix als Mindestvoraussetzung zwingend durchgeführt wurden:
Konfiguration: main server - master.cf
syslog_name
Information | Beschreibung |
---|---|
Dokumentation | https://www.postfix.org/postconf.5.html#syslog_name Postfix TLS Support |
Defaultwert | syslog_name=${multi_instance_name?{$multi_instance_name}:{postfix}} |
Neuer Wert | syslog_name=postfix/smtps |
Beschreibung | Ein Präfix, das dem Prozessnamen in Syslog-Einträgen vorangestellt wird, so dass z. B. aus smtpd - prefix/smtpd wird. WARNUNG - Eine von den Standardwerten abweichende syslog_name -Einstellung wird erst wirksam, nachdem ein Postfix-Prozess seine Initialisierung abgeschlossen hat. Fehler während der Prozessinitialisierung werden mit dem Standardnamen protokolliert. Beispiele hierfür sind Fehler beim „Parsen“ der Befehlszeilenargumente und Fehler beim Zugriff auf die Postfix-Konfigurationsdatei - main.cf . |
smtpd_tls_wrappermode
Information | Beschreibung |
---|---|
Dokumentation | https://www.postfix.org/postconf.5.html#smtpd_tls_wrappermode Postfix TLS Support |
Defaultwert | smtpd_tls_wrappermode=no |
Neuer Wert | smtpd_tls_wrappermode=yes |
Beschreibung | Lässt den Postfix-SMTP-Server im TLS-Wrapper-Modus laufen, anstatt den STARTTLS-Befehl zu verwenden. Wenn dieser Dienst unterstützt werden soll, muss ein spezieller Port in der master.cf aktiviert werden und es muss -o smtpd_tls_wrappermode = yes in der Befehlszeile des SMTP-Servers angegeben werden. Der Port 465 (submissions/smtps ) ist für diesen Zweck reserviert. |
local_header_rewrite_clients
Information | Beschreibung |
---|---|
Dokumentation | https://www.postfix.org/postconf.5.html#local_header_rewrite_clients Postfix TLS Support |
Defaultwert | local_header_rewrite_clients=permit_inet_interfaces |
Neuer Wert | local_header_rewrite_clients=static:all |
Beschreibung | Umschreiben oder Hinzufügen von Nachrichtenkopfzeilen in E-Mails von diesen Clients, wobei unvollständige Adressen mit dem Domänennamen in myorigin oder mydomain aktualisiert und fehlende Kopfzeilen hinzugefügt werden. |
Es knn eine Liste mit null
oder mehr der folgenden Parameter angegeben werden:
Paramater | Beschreibung |
---|---|
permit_inet_interfaces | Hängt den Domänennamen in myorigin oder mydomain an, wenn die Client-IP-Adresse mit inet_interfaces übereinstimmt. Dies ist standardmäßig aktiviert. |
permit_mynetworks | Hängt den Domänennamen in myorigin oder mydomain an, wenn die Client-IP-Adresse mit einem der in mynetworks aufgeführten Netzwerke oder Netzwerkadressen übereinstimmt. Diese Einstellung verhindert nicht das Umschreiben von E-Mail-Header-Adressen, wenn E-Mails von einem entfernten Client von einem benachbarten System weitergeleitet werden. |
permit_sasl_authenticated | Hängt den Domänennamen in myorigin oder mydomain an, wenn der Client erfolgreich über das RFC 4954 (AUTH) Protokoll authentifiziert wurde. |
permit_tls_clientcerts | Hängt den Domänennamen in myorigin oder mydomain an, wenn der TLS-Zertifikatsfingerabdruck oder der Fingerabdruck des öffentlichen Schlüssels des entfernten SMTP-Clients (Postfix Version 2.9 und höher) in relay_clientcerts aufgeführt ist. Der Fingerprint-Digest-Algorithmus kann über den Parameter smtpd_tls_fingerprint_digest konfiguriert werden (vor Postfix-Version 2.5 als md5 fest codiert). Der Standardalgorithmus ist sha256 , wenn Postfix ≥ 3.6 und der compatibility_level auf Version 3.6 oder höher gesetzt ist. Mit Postfix ≤ 3.5 ist der Standardalgorithmus md5. Der bewährte Algorithmus ist jetzt sha256. Die jüngsten Fortschritte in der Kryptoanalyse von Hash-Funktionen haben dazu geführt, dass md5 und sha1 zugunsten von sha256 veraltet sind. Solange jedoch keine „Second-Pre-Image“-Angriffe gegen die älteren Algorithmen bekannt sind, ist ihre Verwendung in diesem Zusammenhang zwar nicht empfohlen, aber wahrscheinlich immer noch sicher. |
permit_tls_all_clientcerts | Hängt den Domänennamen in myorigin oder mydomain an, wenn das TLS-Zertifikat des entfernten SMTP-Clients erfolgreich überprüft wurde, unabhängig davon, ob es auf dem Server aufgelistet ist, und unabhängig von der Zertifizierungsstelle. |
check_address_map | Hängt den Domänennamen in myorigin oder mydomain an, wenn die Client-IP-Adresse mit der angegebenen Nachschlagetabelle übereinstimmt. Das Ergebnis der Suche wird ignoriert, und es wird keine Subnetzsuche durchgeführt. Dies ist z.B. für pop-before-smtp Nachschlagetabellen geeignet. |
smtpd_client_restrictions
Information | Beschreibung |
---|---|
Dokumentation | https://www.postfix.org/postconf.5.html#smtpd_client_restrictions Postfix TLS Support Postfix - master.cf |
Defaultwert | smtpd_client_restrictions= |
Neuer Wert | smtpd_client_restrictions= check_ccert_access lmdb:${config_directory}/check_ccert_access_maps, reject |
Beschreibung | Optionale Einschränkungen, die der Postfix-SMTP-Server im Zusammenhang mit einer Client-Verbindungsanfrage anwendet. Standardmässig werden alle Verbindungsanfragen zugelassen. Es kann eine Liste von Beschränkungen angegeben werden, die durch Kommas und/oder Leerzeichen getrennt sind. Bei langen Zeilen kann die nächste Zeile mit einem Leerzeichen begonnen werden. Die Einschränkungen werden in der angegebenen Reihenfolge angewendet; die erste übereinstimmende Einschränkung gewinnt. |
Die folgenden Einschränkungen sind spezifisch für Client-Hostnamen oder Client-Netzwerkadressinformationen:
Beschränkung | Beschreibung |
---|---|
check_ccert_access | Standardmässig wird der Fingerabdruck des Zertifikats des entfernten SMTP-Clients oder der Fingerabdruck des öffentlichen Schlüssels (ab Postfix 2.9) als Nachschlageschlüssel für die angegebene access -Datenbank verwendet; ab Postfix Version 2.2 muss auch das Zertifikat des entfernten SMTP-Clients erfolgreich überprüft werden. Der Fingerprint-Digest-Algorithmus ist über den Parameter smtpd_tls_fingerprint_digest konfigurierbar (vor Postfix Version 2.5 als md5 fest codiert). Diese Funktion erfordert „smtpd_tls_ask_ccert = yes“ und ist ab Postfix Version 2.2 verfügbar. Der Standardalgorithmus ist sha256, wenn Postfix ≥ 3.6 ist und der compatibility_level auf 3.6 oder höher gesetzt ist. Mit Postfix ≤ 3.5 ist der Standardalgorithmus md5. Der bewährte Algorithmus ist jetzt sha256. Die jüngsten Fortschritte in der Kryptoanalyse von Hash-Funktionen haben dazu geführt, dass md5 und sha1 zugunsten von sha256 veraltet sind. Solange jedoch keine „Second-Pre-Image“-Angriffe gegen die älteren Algorithmen bekannt sind, ist ihre Verwendung in diesem Zusammenhang zwar nicht empfohlen, aber wahrscheinlich immer noch sicher. Alternativ dazu akzeptiert check_ccert_access eine explizite Suchreihenfolge (Postfix Version 3.5 und höher). Die Standard-Suchreihenfolge wie oben beschrieben entspricht: check_ccert_access { type:table, { search_order = cert_fingerprint, pubkey_fingerprint } } |
check_client_access | Sucht in der angegebenen Zugangsdatenbank nach dem Hostnamen oder der IP-Adresse des Clients. |
check_client_a_access | Durchsucht die angegebene access -Datenbank nach den IP-Adressen für den Client-Hostnamen und führt die entsprechende Aktion aus. HINWEIS - Ein Ergebnis von OK ist aus Sicherheitsgründen nicht zulässig. Stattdessen sollte DUNNO verwendet werden, um bestimmte Hosts von der Denyliste auszuschliessen. |
check_client_mx_access | Durchsucht die angegebene access -Datenbank nach den MX-Hosts für den Client-Hostnamen und führt die entsprechende Aktion aus. Wenn kein MX-Eintrag gefunden wird, suchen Sie nach A- oder AAAA-Einträgen, genau wie es der Postfix-SMTP-Client tun würde. HINWEIS - Ein Ergebnis von OK ist aus Sicherheitsgründen nicht zulässig. Stattdessen sollte DUNNO verwendet werden, um bestimmte Hosts von der Denyliste auszuschliessen. |
check_client_ns_access | Durchsucht die angegebene access -Datenbank nach den DNS-Servern für den Client-Hostnamen und führt die entsprechende Aktion aus. HINWEIS - Ein Ergebnis von OK ist aus Sicherheitsgründen nicht zulässig. Stattdessen sollte DUNNO verwendet werden, um bestimmte Hosts von der Denyliste auszuschliessen. |
check_reverse_client_hostname_access | Durchsucht die angegebene access-Datenbank nach dem unverifizierten Reverse-Client-Hostnamen oder der IP-Adresse. Siehe die access -Manualseite für weitere Details. HINWEIS - Ein Ergebnis von OK ist aus Sicherheitsgründen nicht zulässig. Stattdessen sollte DUNNO verwendet werden, um bestimmte Hosts von der Denyliste auszuschliessen. |
check_reverse_client_hostname_a_access | Durchsucht die angegebene access -Datenbank nach den IP-Adressen für den nicht verifizierten Reverse-Client-Hostnamen und führt die entsprechende Aktion aus. HINWEIS - Ein Ergebnis von OK ist aus Sicherheitsgründen nicht zulässig. Stattdessen sollte DUNNO verwendet werden, um bestimmte Hosts von der Denyliste auszuschliessen. |
check_reverse_client_hostname_mx_access | Durchsucht die angegebene access -Datenbank nach den MX-Hosts für den nicht verifizierten Reverse-Client-Hostnamen und führt die entsprechende Aktion aus. Wenn kein MX-Eintrag gefunden wird, suchen Sie nach A- oder AAAA-Einträgen, genau wie es der Postfix-SMTP-Client tun würde. HINWEIS - Ein Ergebnis von OK ist aus Sicherheitsgründen nicht zulässig. Stattdessen sollte DUNNO verwendet werden, um bestimmte Hosts von der Denyliste auszuschliessen. |
check_reverse_client_hostname_ns_access | Durchsucht die angegebene access -Datenbank nach den DNS-Servern für den nicht verifizierten Reverse-Client-Hostnamen und führt die entsprechende Aktion aus. HINWEIS - Ein Ergebnis von OK ist aus Sicherheitsgründen nicht zulässig. Stattdessen sollte DUNNO verwendet werden, um bestimmte Hosts von der Denyliste auszuschliessen. |
check_sasl_access | Verwendet den SASL-Benutzernamen des entfernten SMTP-Clients als Nachschlageschlüssel für die angegebene access -Datenbank. Der Nachschlageschlüssel hat die Form „username@domainname“, wenn der Wert des Parameters smtpd_sasl_local_domain nicht leer ist. Anders als check_client_access führt check_sasl_access keine Vergleiche mit übergeordneten Domains oder IP-Subnetzbereichen durch. |
permit_inet_interfaces | Erlaubt die Anfrage, wenn die IP-Adresse des Clients mit inet_interfaces übereinstimmt. |
permit_mynetworks | Erlaubt die Anfrage, wenn die IP-Adresse des Clients mit einem in mynetworks aufgeführten Netzwerk oder einer Netzwerkadresse übereinstimmt. |
permit_sasl_authenticated | Lassen Sie die Anfrage zu, wenn der Client erfolgreich über das Protokoll RFC 4954 (AUTH) authentifiziert wurde. |
permit_tls_all_clientcerts | Die Anfrage zulassen, wenn das Zertifikat des entfernten SMTP-Clients erfolgreich überprüft wurde. Diese Option darf nur verwendet werden, wenn eine spezielle CA die Zertifikate ausstellt und nur diese CA als vertrauenswürdige CA aufgeführt ist. Andernfalls würden auch Clients mit einem Zertifikat eines Drittanbieters zur Weiterleitung zugelassen werden. Wenn tls_append_default_CA = no angegeben ist, wenn die vertrauenswürdige CA mit smtpd_tls_CAfile oder smtpd_tls_CApath angegeben wird, um zu verhindern, dass Postfix die vom System bereitgestellten Standard-CAs anhängt. Diese Funktion erfordert smtpd_tls_ask_ccert = yes . |
permit_tls_clientcerts | Erlaubt die Anfrage, wenn der Fingerabdruck des Zertifikats des entfernten SMTP-Clients oder der Fingerabdruck des öffentlichen Schlüssels (Postfix Version 2.9 und höher) in relay_clientcerts aufgeführt ist. Der Fingerprint-Digest-Algorithmus kann über den Parameter smtpd_tls_fingerprint_digest konfiguriert werden (vor Postfix Version 2.5 als md5 fest codiert). Diese Funktion erfordert smtpd_tls_ask_ccert = yes und ist ab Postfix Version 2.2 verfügbar. Der Standardalgorithmus ist sha256, wenn Postfix ≥ 3.6 ist und der compatibility_level auf 3.6 oder höher gesetzt ist. Mit Postfix ≤ 3.5 ist der Standardalgorithmus md5. Der bewährte Algorithmus ist jetzt sha256. Die jüngsten Fortschritte in der Kryptoanalyse von Hash-Funktionen haben dazu geführt, dass md5 und sha1 zugunsten von sha256 veraltet sind. Solange jedoch keine „Second-Pre-Image“-Angriffe gegen die älteren Algorithmen bekannt sind, ist ihre Verwendung in diesem Zusammenhang zwar nicht empfohlen, aber wahrscheinlich immer noch sicher. |
reject_rbl_client rbl_domain | Weist die Anfrage zurück, wenn die umgekehrte Client-Netzwerkadresse mit dem A-Eintrag „d.d.d.d“ unter rbl_domain aufgeführt ist (nur Postfix Version 2.1 und höher). Jedes „d“ ist eine Zahl oder ein Muster innerhalb von „[]“, das eine oder mehrere „;“-getrennte Zahlen oder Zahlenbereiche enthält (Postfix ab Version 2.8). Wenn kein „=d.d.d.d“ angegeben ist, wird die Anfrage zurückgewiesen, wenn die umgekehrte Client-Netzwerkadresse mit einem beliebigen A-Eintrag unter rbl_domain aufgeführt ist. Der Parameter maps_rbl_reject_code gibt den Antwortcode für abgelehnte Anfragen an (Standard: 554), der Parameter default_rbl_reply gibt die Standardantwort des Servers an, und der Parameter rbl_reply_maps gibt Tabellen mit Serverantworten an, die durch rbl_domain indiziert sind. |
permit_dnswl_client dnswl_domain | Akzeptieren Sie die Anfrage, wenn die umgekehrte Client-Netzwerkadresse mit dem A-Eintrag „d.d.d.d“ unter dnswl_domain aufgeführt ist. Jedes „d“ ist eine Zahl oder ein Muster innerhalb von „[]“, das eine oder mehrere „;“-getrennte Zahlen oder Zahlen..-Zahlenbereiche enthält. Wenn kein „=d.d.d.d“ angegeben ist, wird die Anfrage akzeptiert, wenn die umgekehrte Client-Netzwerkadresse mit einem beliebigen A-Eintrag unter dnswl_domain aufgeführt ist. Zur Sicherheit wird permit_dnswl_client stillschweigend ignoriert, wenn es reject_unauth_destination ausser Kraft setzen würde. Das Ergebnis ist DEFER_IF_REJECT , wenn die Suche nach Allowlist fehlschlägt. |
reject_rhsbl_client rbl_domain | Weist die Anfrage zurück, wenn der Client-Hostname mit dem A-Eintrag „d.d.d.d“ unter rbl_domain aufgeführt ist (nur Postfix Version 2.1 und höher). Jedes „d“ ist eine Zahl oder ein Muster innerhalb von [] , das eine oder mehrere ; getrennte Zahlen oder Zahlenbereiche enthält (Postfix ab Version 2.8). Wenn kein „=d.d.d.d“ angegeben ist, wird die Anfrage zurückgewiesen, wenn der Client-Hostname mit einem beliebigen A-Eintrag unter rbl_domain aufgeführt ist. |
permit_rhswl_client rhswl_domain | Akzeptieren Sie die Anfrage, wenn der Hostname des Kunden mit dem A-Eintrag „d.d.d.d“ unter rhswl_domain aufgeführt ist. Jedes „d“ ist eine Zahl oder ein Muster innerhalb von [] , das eine oder mehrere ; getrennte Zahlen oder Zahlen..-Zahlenbereiche enthält. Wenn kein „=d.d.d.d“ angegeben ist, wird die Anfrage akzeptiert, wenn der Client-Hostname mit einem beliebigen A-Eintrag unter rhswl_domain aufgeführt ist. Vorsicht: Die Auflistung von Client-Namen ist anfällig, da die Suche nach dem Client-Namen aufgrund von vorübergehenden Ausfällen fehlschlagen kann. Client Name Allowlisting sollte nur verwendet werden, um Fehlalarme in z.B. DNS-basierten Blocklisten zu reduzieren, und nicht, um Ausnahmen von Zugriffsregeln zu machen. Zur Sicherheit wird permit_rhswl_client stillschweigend ignoriert, wenn es reject_unauth_destination ausser Kraft setzen würde. Das Ergebnis ist DEFER_IF_REJECT , wenn die Suche nach Allowlist fehlschlägt. |
reject_rhsbl_reverse_client rbl_domain | Weisen Sie die Anfrage zurück, wenn der ungeprüfte Reverse-Client-Hostname mit dem A-Eintrag „d.d.d.d“ unter rbl_domain aufgeführt ist. Jedes „d“ ist eine Zahl oder ein Muster innerhalb von [] , das eine oder mehrere ; getrennte Zahlen oder Zahlen..-Zahlenbereiche enthält. Wenn kein „=d.d.d.d“ angegeben ist, wird die Anfrage zurückgewiesen, wenn der nicht verifizierte Reverse-Client-Hostname mit einem beliebigen A-Eintrag unter rbl_domain aufgeführt ist. Siehe die obige Beschreibung von reject_rbl_client für weitere RBL-bezogene Konfigurationsparameter. |
reject_unknown_client_hostname | Ablehnung der Anfrage, wenn 1) die Zuordnung Client-IP-Adresse→Name fehlschlägt, oder 2) die Zuordnung Name→Adresse fehlschlägt, oder 3) die Zuordnung Name→Adresse nicht mit der Client-IP-Adresse übereinstimmt. Dies ist eine stärkere Einschränkung als die Funktion reject_unknown_reverse_client_hostname , die nur unter der obigen Bedingung 1) ausgelöst wird. Der Parameter unknown_client_reject_code gibt den Antwortcode für abgelehnte Anfragen an (Standard: 450). Die Antwort lautet immer 450, wenn die Suche nach Adresse→Name oder Name→Adresse aufgrund eines vorübergehenden Problems fehlgeschlagen ist. |
reject_unknown_reverse_client_hostname | Ablehnung der Anfrage, wenn die Client-IP-Adresse keine Adresse→Name-Zuordnung hat. Dies ist eine schwächere Einschränkung als die Funktion reject_unknown_client_hostname , die nicht nur erfordert, dass die Zuordnungen Adresse→Name und Name→Adresse existieren, sondern auch, dass die beiden Zuordnungen die Client-IP-Adresse wiedergeben. Der Parameter unknown_client_reject_code gibt den Antwortcode für abgelehnte Anfragen an (Standard: 450 ). Die Antwort lautet immer 450 , wenn die Suche nach Adresse→Name aufgrund eines vorübergehenden Problems fehlgeschlagen ist. |
check_policy_service servername | Fragt den angegebenen Richtlinienserver ab. |
defer | Verschieben Sie die Anfrage. Der Kunde wird aufgefordert, es später erneut zu versuchen. Diese Einschränkung ist am Ende einer Einschränkungsliste nützlich, um die Standardrichtlinie explizit zu machen. Der Parameter defer_code gibt den Antwortcode des SMTP-Servers an (Standard: 450 ). |
defer_if_permit | Verschieben Sie die Anfrage, wenn eine spätere Einschränkung zu einer expliziten oder impliziten PERMIT -Aktion führen würde. Dies ist nützlich, wenn eine Denylisting-Funktion aufgrund eines vorübergehenden Problems fehlschlägt. |
defer_if_reject | Verschieben Sie die Anfrage, wenn eine spätere Einschränkung zu einer REJECT-Aktion führen würde. Dies ist nützlich, wenn eine Erlaubnislistenfunktion aufgrund eines vorübergehenden Problems fehlschlägt. |
permit | Erlaube die Anfrage. Diese Einschränkung ist am Ende einer Einschränkungsliste nützlich, um die Standardrichtlinie explizit zu machen. |
reject_multi_recipient_bounce | Weist die Anfrage zurück, wenn der Absender des Umschlags die Adresse null ist und die Nachricht mehrere Umschlag-Empfänger hat. Diese Verwendung hat seltene, aber legitime Anwendungen: Unter bestimmten Bedingungen kann eine E-Mail mit mehreren Empfängern, die mit der DSN-Option NOTIFY=NEVER verschickt wurde, mit der Absenderadresse Null weitergeleitet werden. HINWEIS - Diese Einschränkung kann nur zuverlässig funktionieren, wenn sie in smtpd_data_restrictions oder smtpd_end_of_data_restrictions verwendet wird, da die Gesamtzahl der Empfänger in einem früheren Stadium der SMTP-Konversation nicht bekannt ist. Bei Verwendung in der RCPT -Phase wird nur der zweite usw. Empfänger zurückgewiesen. Der Parameter multi_recipient_bounce_reject_code gibt den Antwortcode für abgelehnte Anfragen an (Standard: 550 ). |
reject_plaintext_session | Ablehnen der Anfrage, wenn die Verbindung nicht verschlüsselt ist. Diese Einschränkung sollte nicht verwendet werden, bevor der Client die Möglichkeit hatte, die Verschlüsselung mit den Befehlen AUTH oder STARTTLS auszuhandeln. Der Parameter plaintext_reject_code gibt den Antwortcode für abgelehnte Anfragen an (Standard: 450 ). |
reject_unauth_pipelining | Weist die Anfrage zurück, wenn der Client SMTP-Befehle vorzeitig sendet, wo dies nicht erlaubt ist, oder wenn der Client SMTP-Befehle vorzeitig sendet, ohne zu wissen, dass Postfix tatsächlich ESMTP -Befehls-Pipelining unterstützt. Dies verhindert, dass Mails von Massensendungen, die ESMTP-Befehls-Pipelining missbräuchlich verwenden, um die Zustellung zu beschleunigen. Ab Postfix Version 2.6 setzt der SMTP-Server ein Flag pro Sitzung, wenn er illegales Pipelining feststellt, einschliesslich HELO - oder EHLO -Befehle, die in der Pipeline sind. Die Funktion reject_unauth_pipelining testet einfach, ob das Flag zu irgendeinem Zeitpunkt während der Sitzung gesetzt war. Bei älteren Postfix-Versionen prüft reject_unauth_pipelining den aktuellen Status der Input-Read-Queue, und seine Verwendung wird in anderen Kontexten als smtpd_data_restrictions nicht empfohlen. |
reject | Ablehnung der Anfrage. Diese Einschränkung ist am Ende einer Einschränkungsliste nützlich, um die Standardrichtlinie explizit zu machen. Der Konfigurationsparameter reject_code gibt den Antwortcode für abgelehnte Anfragen an (Standard: 554 ). |
sleep seconds | Pausieren Sie für die angegebene Anzahl von Sekunden und fahren Sie mit der nächsten Einschränkung in der Liste fort, falls vorhanden. |
warn_if_reject | Ein Sicherheitsnetz für Tests. Wenn warn_if_reject vor einer Beschränkung vom Typ reject , einer Zugriffstabellenabfrage oder einer check_policy_service -Abfrage steht, wird eine reject_warning -Meldung protokolliert, anstatt eine Anfrage abzulehnen (wenn eine Beschränkung vom Typ reject aufgrund eines temporären Fehlers fehlschlägt, wird eine reject_warning -Meldung für alle impliziten defer_if_permit -Aktionen protokolliert, die normalerweise verhindern würden, dass Mails von einer späteren Zugriffsbeschränkung akzeptiert werden). Diese Funktion hat keine Auswirkungen auf defer_if_reject -Beschränkungen. |
milter_macro_daemon_name
Information | Beschreibung |
---|---|
Dokumentation | https://www.postfix.org/postconf.5.html#milter_macro_daemon_name Postfix TLS Support |
Defaultwert | milter_macro_daemon_name=$myhostname |
Neuer Wert | milter_macro_daemon_name=ORIGINATING |
Beschreibung | Der {daemon_name} Makrowert für Milter (Mailfilter) Anwendungen. Siehe MILTER_README für eine Liste der verfügbaren Makronamen und ihrer Bedeutung. |
check_ccert_access type:access
Information | Beschreibung |
---|---|
Dokumentation | http://www.postfix.org/postconf.5.html#check_ccert_access |
Defaultwert | check_ccert_access |
Neuer Wert | check_ccert_access lmdb:${config_directory}/check_ccert_access_maps |
Beschreibung | Standardmässig wird der Fingerabdruck des Zertifikats des entfernten SMTP-Clients oder der Fingerabdruck des öffentlichen Schlüssels (ab Postfix 2.9) als Nachschlageschlüssel für die angegebene access -Datenbank verwendet; ab Postfix Version 2.2 muss auch das Zertifikat des entfernten SMTP-Clients erfolgreich überprüft werden. Der Fingerprint-Digest-Algorithmus ist über den Parameter smtpd_tls_fingerprint_digest konfigurierbar (vor Postfix Version 2.5 als md5 fest codiert). Diese Funktion erfordert „smtpd_tls_ask_ccert = yes“ und ist ab Postfix Version 2.2 verfügbar. Der Standardalgorithmus ist sha256, wenn Postfix ≥ 3.6 ist und der compatibility_level auf 3.6 oder höher gesetzt ist. Mit Postfix ≤ 3.5 ist der Standardalgorithmus md5. Der bewährte Algorithmus ist jetzt sha256. Die jüngsten Fortschritte in der Kryptoanalyse von Hash-Funktionen haben dazu geführt, dass md5 und sha1 zugunsten von sha256 veraltet sind. Solange jedoch keine „Second-Pre-Image“-Angriffe gegen die älteren Algorithmen bekannt sind, ist ihre Verwendung in diesem Zusammenhang zwar nicht empfohlen, aber wahrscheinlich immer noch sicher. Alternativ dazu akzeptiert check_ccert_access eine explizite Suchreihenfolge (Postfix Version 3.5 und höher). Die Standard-Suchreihenfolge wie oben beschrieben entspricht: check_ccert_access { type:table, { search_order = cert_fingerprint, pubkey_fingerprint } } |
/etc/postfix/check_ccert_access_maps
Der Inhalt besteht aus dem Fingerprint des in nachfolgendem Schritt für den Postfix-null client erstellten Zertifikats (Self-Signed-Certificate)
und kann durch Anwendung des nachfolgenden Befehls erstellt werden:
# openssl x509 -fingerprint -noout -sha256 -in /etc/postfix/ssl/certs/client.idmz.tachtler.net.pem sha256 Fingerprint=26:C7:BA:A6:20:4E:2C:70:FD:61:57:20:43:73:25:2F:DF:7A:48:AB:88:23:C4:D9:14:D7:4F:0B:98:C9:34:17
Mit nachfolgendem Befehl wird die Konfigurationsdatei /etc/postfix/check_ccert_access_maps
angelegt:
# vim /etc/postfix/check_ccert_access_maps
# vim /etc/postfix/check_ccert_access_maps 26:C7:BA:A6:20:4E:2C:70:FD:61:57:20:43:73:25:2F:DF:7A:48:AB:88:23:C4:D9:14:D7:4F:0B:98:C9:34:17 OK
WICHTIG - Nach dem Fingerprint MUSS noch eine beliebige Information hinzugefügt werden - hier z.B. OK
!!!
Anschliessend ist sind die Änderungen noch in ein für Postfix besser lesbares Datenbankformat umzuwandeln, was erstmals mit nachfolgendem Befehl durchgeführt werden kann:
# postmap lmdb:/etc/postfix/check_ccert_access_maps
HINWEIS - Es erfolgt keine Ausgabe, nach Befehlsausführung!
Abschliessend kann mit nachfolgendem Befehl überprüft werden, ob die Änderungen übernommen wurden:
# ls -l /etc/postfix/check_ccert_access_maps* -rw-r--r-- 1 root root 264 Dec 4 19:28 /etc/postfix/check_ccert_access_maps -rw-r--r-- 1 root root 12288 Dec 4 19:29 /etc/postfix/check_ccert_access_maps.lmdb
reject
Information | Beschreibung |
---|---|
Dokumentation | http://www.postfix.org/postconf.5.html#reject |
Defaultwert | reject |
Neuer Wert | reject |
Beschreibung | Ablehnung der Anfrage. Diese Einschränkung ist am Ende einer Einschränkungsliste nützlich, um die Standardrichtlinie explizit zu machen. Der Konfigurationsparameter reject_code gibt den Antwortcode für abgelehnte Anfragen an (Standard: 554 ). |
/etc/postfix/master.cf
Nachfolgende Änderungen sind in der Konfigurationsdatei /etc/postfix/master.cf
erforderlich:
(Nur relevanter Ausschnitt):
# Choose one: enable submissions for loopback clients only, or for any client. #127.0.0.1:submissions inet n - n - - smtpd # Tachtler - ENABLE submissions/smtps - submissions inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes # -o smtpd_sasl_auth_enable=yes -o local_header_rewrite_clients=static:all # -o smtpd_reject_unlisted_recipient=no # Instead of specifying complex smtpd_<xxx>_restrictions here, # specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions" # here, and specify mua_<xxx>_restrictions in main.cf (where # "<xxx>" is "client", "helo", "sender", "relay", or "recipient"). -o { smtpd_client_restrictions= check_ccert_access lmdb:${config_directory}/check_ccert_access_maps,reject } # -o smtpd_helo_restrictions= # -o smtpd_sender_restrictions= # -o smtpd_relay_restrictions= # -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING
Hier werden aus kommentierte Zeilen, wie folgt ein kommentiert.
Erklärung: known_tcp_ports |
---|
Optionale Einstellung, die Nachforschungen in der services -Datenbank vermeidet. Diese Funktion wurde implementiert, um Unstimmigkeiten im Namen des Port „465“-Dienstes zu beseitigen. Die ABNF lautet: known_tcp_ports = empty %%|%% name-to-port *(„,“ name-to-port) name-to-port = 1*(dienstname „=') port-number Das Komma ist erforderlich. Ein Leerzeichen ist optional, darf aber nicht innerhalb eines Dienstnamens oder einer Portnummer stehen. vvvvvvvv |
Bevor der der postfix/master
-Daemon/Dienst zum ersten mal gestartet werden soll, ist eine Überprüfung der korrekten Konfiguration der /etc/postfix/master.cf
durch nachfolgenden Befehl, zu empfehlen
postconf -M
und es sollte eine Ausgabe, in etwa wie die nachfolgend gezeigte erscheinen:
# postconf -M smtp inet n - n - - smtpd tlsproxy unix - - n - 0 tlsproxy submissions inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o local_header_rewrite_clients=static:all -o {smtpd_client_restrictions=check_ccert_access lmdb:${config_directory}/check_ccert_access_maps,reject} -o milter_macro_daemon_name=ORIGINATING pickup unix n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr unix n - n 300 1 qmgr tlsmgr unix - - n 1000? 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce trace unix - - n - 0 bounce verify unix - - n - 1 verify flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap proxywrite unix - - n - 1 proxymap smtp unix - - n - - smtp relay unix - - n - - smtp -o syslog_name=postfix/$service_name showq unix n - n - - showq error unix - - n - - error retry unix - - n - - error discard unix - - n - - discard local unix - n n - - local virtual unix - n n - - virtual lmtp unix - - n - - lmtp anvil unix - - n - 1 anvil scache unix - - n - 1 scache postlog unix-dgram n - n - 1 postlogd
/etc/postfix/main.cf
HINWEIS - Es sind keine zusätzliche Änderungen notwendig!
Falls vorstehende Änderungen durchgeführt wurden, sollte ein Neustart von Postfix nichts mehr im Wege stehen.
Bevor der der postfix/master
-Daemon/Dienst zum ersten mal gestartet werden soll, ist eine Überprüfung der korrekten Konfiguration durch nachfolgenden Befehl, zu empfehlen
postconf -n
und es sollte eine Ausgabe, in etwa wie die nachfolgend gezeigte erscheinen:
# postconf -n alias_database = $alias_maps alias_maps = lmdb:${config_directory}/aliases compatibility_level = 3.9 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, server.idmz.$mydomain myhostname = mx1.tachtler.net mynetworks = 127.0.0.0/32 10.0.0.0/24 192.168.0.0/24 [::1]/128 [fd00:0:0:10::]/64 [fe80:0:0:10::]/64 [fd00:0:0:192::]/64 myorigin = server.idmz.$mydomain proxy_interfaces = 88.217.171.167 recipient_canonical_maps = lmdb:${config_directory}/recipient_canonical_maps smtp_dns_support_level = dnssec smtp_tls_CApath = ${config_directory}/ssl/certs smtp_tls_block_early_mail_reply = yes smtp_tls_chain_files = ${config_directory}/ssl/certs/server-chain.pem smtp_tls_connection_reuse = yes smtp_tls_exclude_ciphers = ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA, DHE-RSA-AES256-GCM-SHA384, DHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA, ECDHE-RSA-CAMELLIA256-SHA384, DHE-RSA-CAMELLIA256-SHA256, DHE-RSA-CAMELLIA256-SHA, AES256-SHA256, AES256-SHA, CAMELLIA256-SHA256, CAMELLIA256-SHA, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES128-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA, ECDHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA, AES128-SHA256, AES128-SHA, CAMELLIA128-SHA256, CAMELLIA128-SHA smtp_tls_loglevel = 1 smtp_tls_mandatory_exclude_ciphers = ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA, DHE-RSA-AES256-GCM-SHA384, DHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA, ECDHE-RSA-CAMELLIA256-SHA384, DHE-RSA-CAMELLIA256-SHA256, DHE-RSA-CAMELLIA256-SHA, AES256-SHA256, AES256-SHA, CAMELLIA256-SHA256, CAMELLIA256-SHA, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES128-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA, ECDHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA, AES128-SHA256, AES128-SHA, CAMELLIA128-SHA256, CAMELLIA128-SHA smtp_tls_mandatory_protocols = >=TLSv1.2, <=TLSv1.3 smtp_tls_protocols = >=TLSv1.2, <=TLSv1.3 smtp_tls_security_level = dane smtp_tls_session_cache_database = lmdb:${data_directory}/smtp_scache smtpd_tls_CApath = ${config_directory}/ssl/certs smtpd_tls_ask_ccert = yes smtpd_tls_chain_files = ${config_directory}/ssl/certs/server-chain.pem smtpd_tls_exclude_ciphers = ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA, DHE-RSA-AES256-GCM-SHA384, DHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA, ECDHE-RSA-CAMELLIA256-SHA384, DHE-RSA-CAMELLIA256-SHA256, DHE-RSA-CAMELLIA256-SHA, AES256-SHA256, AES256-SHA, CAMELLIA256-SHA256, CAMELLIA256-SHA, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES128-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA, ECDHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA, AES128-SHA256, AES128-SHA, CAMELLIA128-SHA256, CAMELLIA128-SHA smtpd_tls_loglevel = 1 smtpd_tls_mandatory_exclude_ciphers = ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA, DHE-RSA-AES256-GCM-SHA384, DHE-RSA-AES256-SHA256, DHE-RSA-AES256-SHA, ECDHE-RSA-CAMELLIA256-SHA384, DHE-RSA-CAMELLIA256-SHA256, DHE-RSA-CAMELLIA256-SHA, AES256-SHA256, AES256-SHA, CAMELLIA256-SHA256, CAMELLIA256-SHA, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES128-SHA, DHE-RSA-AES128-SHA256, DHE-RSA-AES128-SHA, ECDHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA256, DHE-RSA-CAMELLIA128-SHA, AES128-SHA256, AES128-SHA, CAMELLIA128-SHA256, CAMELLIA128-SHA smtpd_tls_mandatory_protocols = >=TLSv1.2, <=TLSv1.3 smtpd_tls_protocols = >=TLSv1.2, <=TLSv1.3 smtpd_tls_received_header = yes smtpd_tls_security_level = may smtpd_tls_session_cache_database = lmdb:${data_directory}/smtpd_scache tls_append_default_CA = yes tls_preempt_cipherlist = yes tls_random_bytes = 255
HINWEIS - die Konfiguration des postfix/master
-Daemon/Dienst konnte korrekt gelesen werden, wenn die Konfiguration ohne Fehlermeldungen erscheint, was letztendlich zwar nicht bedeutet, das Sie auch korrekt ist, aber zumindest syntaktische Fehler ausschliesst !!!
Neustart
Zuerst sollte nun der postfix-Server mit nachfolgendem Befehle neu gestartet werden:
# systemctl restart postfix.service
Mit nachfolgendem Befehl kann der Status des Postfix-Servers abgefragt werden:
# systemctl status postfix.service ● postfix.service - Postfix Mail Transport Agent Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: > Active: active (running) since Wed 2024-12-04 20:52:29 CET; 15s ago Invocation: 3c3814531cc843e7b1b58e253a9deb4d Process: 9796 ExecStart=/usr/bin/postfix start (code=exited, status=0/SUCCE> Main PID: 9865 (master) Tasks: 3 (limit: 2315) Memory: 2.7M (peak: 4M) CPU: 277ms CGroup: /system.slice/postfix.service ├─9865 /usr/lib/postfix/bin/master -w ├─9866 pickup -l -t unix -u └─9868 qmgr -l -t unix -u Dec 04 20:52:29 server systemd[1]: Starting Postfix Mail Transport Agent... Dec 04 20:52:29 server postfix[9863]: postfix/postlog: starting the Postfix mai> Dec 04 20:52:29 server postfix/postfix-script[9863]: starting the Postfix mail > Dec 04 20:52:29 server postfix/master[9865]: daemon started -- version 3.9, con> Dec 04 20:52:29 server systemd[1]: Started Postfix Mail Transport Agent.
Nachfolgender Befehl listet die IP-Adressen und die Ports auf, auf denen der Postfix-Server lauscht. Port 465
sollte hinzugekommen sein!:
# ss -taubenp | grep postfix tcp LISTEN 0 100 0.0.0.0:465 0.0.0.0:* users:(("master",pid=9865,fd=21)) ino:48920 sk:3 cgroup:/system.slice/postfix.service <-> tcp LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master",pid=9865,fd=13)) ino:48911 sk:5 cgroup:/system.slice/postfix.service <-> tcp LISTEN 0 100 [::]:465 [::]:* users:(("master",pid=9865,fd=22)) ino:48921 sk:9 cgroup:/system.slice/postfix.service v6only:1 <-> tcp LISTEN 0 100 [::]:25 [::]:* users:(("master",pid=9865,fd=14)) ino:48912 sk:c cgroup:/system.slice/postfix.service v6only:1 <->
Test
Ein Test, ob die interne Kommunikation vom Postfix-null client zum Postfix-main client via TLS/StartTLS-Verschlüsselung und mittels „secure“ erzwungen wird und auf den Fingerprint des Client-Zertifikats überprüft wird, kann erst erfolgen, wenn die nachfolgenden Konfigurationen innerhalb des Konstrukts
wie folgt durchgeführt werden.
Es kann mit einem kleinen Test vom
- Postfix-null client
aus herausgefunden werden, ob lokal erzeugte e-Mails auch intern Zugestellt werden können, was ausnahmsweise mit nachfolgendem Befehl (und nicht mit telnet
) durchgeführt werden soll:
# echo "Test E-Mail - SMTPS - null client und main server" | /usr/sbin/sendmail root
Als Ergebnis sollten zwei Dinge kontrolliert werden:
- Die Log-Einträge im
systemd-journald
- Der Inhalt in der (falls nicht schon vorhandenen) neu im mbox-Format erstellten Datei
/var/spool/mail/klaus
Der Inhalte der Log-Einträge im systemd-journald
auf dem
- Postfix-null client
sollte eine Ausgabe wie nachfolgend dargestellt ergeben, was mit nachfolgendem Befehl durchgeführt werden kann:
# journalctl -u postfix*
wonach eine Ausgabe, in etwa wie die nachfolgend gezeigte erscheinen sollte: (Nur relevanter Ausschnitt):
Dec 04 21:07:36 client postfix/pickup[2260]: 7E3CC8D: uid=0 from=<root> Dec 04 21:07:36 client postfix/cleanup[2329]: 7E3CC8D: message- id=<20241204140736.7E3CC8D@client.idmz.tachtler.net> Dec 04 21:07:36 client postfix/qmgr[2136]: 7E3CC8D: from=<root@client.idmz.tachtler.net>, size=314, nrcpt=1 (queue active) Dec 04 21:07:36 client postfix/tlsproxy[2338]: CONNECT to [10.0.0.60]:465 Dec 04 21:07:36 client postfix/tlsproxy[2338]: Verified TLS connection established to mx1.tachtler.net[10.0.0.60]:465: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256 Dec 04 21:07:36 client postfix/smtp[2336]: Verified TLS connection established to mx1.tachtler.net[10.0.0.60]:465: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256 Dec 04 21:07:36 client postfix/tlsproxy[2338]: DISCONNECT [10.0.0.60]:465 Dec 04 21:07:36 client postfix/smtp[2336]: 7E3CC8D: to=<root@tachtler.net>, orig_to=<root>, relay=mx1.tachtler.net[10.0.0.60]:465, delay=0.14, delays=0.03/0.03/0.06/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 90B87180083) Dec 04 21:07:36 client postfix/qmgr[2136]: 7E3CC8D: removed
HINWEIS - Wichtig ist hier das auftauchen von
Verified TLS connection established …
Der Inhalte der Log-Einträge im systemd-journald
auf dem
- Postfix-main server
sollte eine Ausgabe wie nachfolgend dargestellt ergeben, was mit nachfolgendem Befehl durchgeführt werden kann:
# journalctl -u postfix*
wonach eine Ausgabe, in etwa wie die nachfolgend gezeigte erscheinen sollte: (Nur relevanter Ausschnitt):
Dec 04 21:07:36 server postfix/smtps/smtpd[12226]: connect from client.idmz.tachtler.net[10.0.0.80] Dec 04 21:07:36 server postfix/smtps/smtpd[12226]: Trusted TLS connection established from client.idmz.tachtler.net[10.0.0.80]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256 Dec 04 21:07:36 server postfix/smtps/smtpd[12226]: 90B87180083: client=client.idmz.tachtler.net[10.0.0.80] Dec 04 21:07:36 server postfix/cleanup[12230]: 90B87180083: message- id=<20241204140736.7E3CC8D@client.idmz.tachtler.net> Dec 04 21:07:36 server postfix/qmgr[12157]: 90B87180083: from=<root@client.idmz.tachtler.net>, size=805, nrcpt=1 (queue active) Dec 04 21:07:36 server postfix/smtps/smtpd[12226]: disconnect from client.idmz.tachtler.net[10.0.0.80] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5 Dec 04 21:07:36 server postfix/local[12231]: 90B87180083: to=<klaus@server.idmz.tachtler.net>, orig_to=<root@tachtler.net>, relay=local, delay=0.02, delays=0.01/0.01/0/0, dsn=2.0.0, status=sent (delivered to mailbox) Dec 04 21:07:36 server postfix/qmgr[12157]: 90B87180083: removed
WICHTIG - Die E-Mail liegt nicht auf dem „null client“, sondern auf dem unter relayhost
definierten Ziel!
Auf dem „main server“ kann der Inhalt der im mbox-Format angelegten Datei /var/spool/mail/klaus
angesehen werden und sollte ebenfalls eine Ausgabe wie nachfolgend dargestellt ergeben, was mit nachfolgendem Befehl durchgeführt werden kann:
# cat /var/spool/mail/klaus
wonach eine Ausgabe, in etwa wie die nachfolgend gezeigte erscheinen sollte:
# cat /var/spool/mail/klaus From root@client.idmz.tachtler.net Wed Dec 4 21:07:36 2024 Return-Path: <root@client.idmz.tachtler.net> X-Original-To: root@tachtler.net Delivered-To: root@tachtler.net Received: from client.idmz.tachtler.net (client.idmz.tachtler.net [10.0.0.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "*.idmz.tachtler.net", Issuer "www.tachtler.net" (verified OK)) by mx1.tachtler.net (Postfix) with ESMTPS id 90B87180083 for <root@tachtler.net>; Wed, 04 Dec 2024 21:07:36 +0100 (CET) Received: by client.idmz.tachtler.net (Postfix, from userid 0) id 7E3CC8D; Wed, 04 Dec 2024 21:07:36 +0100 (CET) Message-Id: <20241204140736.7E3CC8D@client.idmz.tachtler.net> Date: Wed, 04 Dec 2024 21:07:36 +0100 (CET) From: root@client.idmz.tachtler.net Test E-Mail - SMTPS - null client und main server
Prüfung
HINWIES - Wenn der Fingerprint des Client-Zertifikats NICHT übereinstimmt, sollte nachfolgende Meldung im LOG erscheinen:
Postfix-null client
Dec 04 19:29:27 client postfix/smtp[1442]: ABED894: to=<root@tachtler.net>, orig_to=<root@client.idmz.tachtler.net>, relay=mx1.tachtler.net[fd00::10:10:0:0:60]:465, delay=0.02, delays=0/0/0.02/0, dsn=5.7.1, status=bounced (host mx1.tachtler.net[fd00::10:10:0:0:60] said: 554 5.7.1 <client.idmz.tachtler.net[fd00::10:10:0:0:80]>: Client host rejected: Access denied (in reply to RCPT TO command))
Postfix-main server
Dec 04 19:29:27 server postfix/smtps/smtpd[8419]: NOQUEUE: reject: RCPT from client.idmz.tachtler.net[fd00::10:10:0:0:80]: 554 5.7.1 <client.idmz.tachtler.net[fd00::10:10:0:0:80]>: Client host rejected: Access denied; from=<> to=<root@tachtler.net> proto=ESMTP helo=<client.idmz.tachtler.net>