Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:postfix_archlinux_konfigurationnull_client_dane_konfiguration

Postfix ArchLinux - Konfiguration: null client - DANE-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.

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-       │                 │       Postfix-       │        │ I │
 │     null client      │                 │     main client      │        │ N │
 ├──────────────────────┤                 ├──────────────────────┤        │ T │
 │                      │    dane-only    │                      │  dane  │ E │
 │  Listen 'localhost'  ┼─────────────────►  Listen 'interface'  ┼────────► R │
 │  Cert 'self-signed'  │                 │  Cert 'officialone'  ◄────────┼ N │
 │                      │                 │                      │  may   │ E │
 │  Relay: main client  │                 │  'mx1.tachtler.net'  │        │ T │
 │                      │                 │                      │        │   │
 └──────────────────────┘                 └──────────────────────┘        └───┘

Damit der Postfix-null client via TLS/StartTLS-Verschlüsselung senden kann, muss zuerst ein Zertifikat erzeugt werden. Dabei soll ein sogenanntes Self-Signed-Certificate (Selbst erstelltes/unterschriebenes) Zertifikat zum Einsatz kommen.

Damit der Postfix-main client via TLS/StartTLS-Verschlüsselung senden und empfangen kann, ist ein Zertifikat von einer „offiziellen“ Zertifizierungsstelle erforderlich. Dies dient dann zur TLS/StartTLS-Verschlüsselung in beide Richtungen für eingehend und ausgehend.

Die interne Kommunikation vom Postfix-null client zum Postfix-main client soll via TLS/StartTLS-Verschlüsselung mittels „dane-only“ erzwungen werden.

Die externe Kommunikation vom und zum Postfix-main client via TLS/StartTLS-Verschlüsselung soll mittels „dane“ versucht werden.

Siehe auch nachfolgenden internen Link weiter unten:

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:

DANE-Konfiguration: smtp

:!: WICHTIG - Bei der TLS-Konfiguration: smtp handelt es sich um die verschlüsselte Kommunikation, bei der der Postfix (MTA) als client agiert!

Nachfolgend soll die interne Kommunikation vom Postfix-null client zum Postfix-main server via TLS/StartTLS-Verschlüsselung mittels „dane-only“ erzwungen werden.

Transport Layer Security (TLS, früher SSL genannt) bietet zertifikatsbasierte Authentifizierung und verschlüsselte Sitzungen. Eine verschlüsselte Sitzung schützt die Informationen, die mit SMTP-Mail oder mit SASL-Authentifizierung übertragen werden.

smtp_tls_security_level

:!: HINWEIS - Parameter: smtp_tls_security_level

  • Da eine vollständige Konfiguration für dane-only jetzt durchgeführt wurde, kann nun der Parameter jetzt auf dane-only abgeändert werden!

Der Postfix SMTP/LMTP-Client implementiert mehrere TLS-Sicherheitsstufen. Diese Stufen werden in den folgenden Abschnitten ausführlicher beschrieben

Stufe der Verschlüsselung Beschreibung
none Auf dieser Ebene werden keine zusätzlichen Attribute unterstützt.
may Die optionalen Attribute „ciphers“, „exclude“ und „protocols“ (verfügbar für opportunistisches TLS mit Postfix ≥ 2.6) und das Attribut „connection_reuse“ (Postfix ≥ 3.4) überschreiben die Konfigurationsparameter smtp_tls_ciphers, smtp_tls_exclude_ciphers, smtp_tls_protocols und smtp_tls_connection_reuse. Auf dieser Ebene und höher setzt das optionale Attribut „servername“ (verfügbar mit Postfix ≥ 3.4) den globalen Parameter smtp_tls_servername ausser Kraft und ermöglicht die Konfiguration der SNI-Erweiterung, die an den entfernten SMTP-Server gesendet wird, pro Ziel. Das optionale Attribut „enable_rpk“ (Postfix ≥ 3.9) übersteuert den Parameter main.cf smtp_tls_enable_rpk. Wenn opportunistische TLS-Handshakes fehlschlagen, versucht Postfix die Verbindung mit deaktiviertem TLS erneut. Dies ermöglicht die E-Mail-Zustellung an Standorte mit nicht interoperablen TLS-Implementierungen.

https://www.postfix.org/postconf.5.html#smtp_tls_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_exclude_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_protocols
https://www.postfix.org/postconf.5.html#smtp_tls_connection_reuse
https://www.postfix.org/postconf.5.html#smtp_tls_enable_rpk
encrypt E-Mails werden nur zugestellt, wenn der entfernte SMTP-Server STARTTLS anbietet und der TLS-Handshake erfolgreich ist. Auf dieser Ebene und höher setzt das optionale Attribut „protocols“ den Parameter main.cf smtp_tls_mandatory_protocols ausser Kraft, das optionale Attribut „ciphers“ setzt den Parameter main.cf smtp_tls_mandatory_ciphers ausser Kraft, das optionale Attribut „exclude“ (Postfix ≥ 2. 6) überschreibt den Parameter main.cf smtp_tls_mandatory_exclude_ciphers, und das optionale Attribut „connection_reuse“ (Postfix ≥ 3.4) überschreibt den Parameter main.cf smtp_tls_connection_reuse. Das optionale Attribut „enable_rpk“ (Postfix ≥ 3.9) übersteuert den Parameter main.cf smtp_tls_enable_rpk.

https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_protocols
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_exclude_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_connection_reuse
https://www.postfix.org/postconf.5.html#smtp_tls_enable_rpk
dane Die TLS-Richtlinie für das Ziel wird über TLSA-Einträge in DNSSEC ermittelt. Wenn keine TLSA-Datensätze gefunden werden, wird die effektive Sicherheitsstufe may verwendet. Wenn TLSA-Einträge gefunden werden, aber keine verwendbar sind, ist die effektive Sicherheitsstufe encrypt. Wenn brauchbare TLSA-Einträge für den entfernten SMTP-Server gefunden werden, muss das Serverzertifikat mit den TLSA-Einträgen übereinstimmen (und der SNI-Name wird bedingungslos auf die TLSA-Basisdomäne gesetzt). RFC 7672 (DANE) TLS-Authentifizierung und DNSSEC-Unterstützung sind mit Postfix 2.11 und höher verfügbar. Das optionale Attribut „connection_reuse“ (Postfix ≥ 3.4) setzt den Parameter main.cf smtp_tls_connection_reuse ausser Kraft. Wenn die effektiv verwendete Sicherheitsstufe may ist, überschreiben die optionalen Attribute „ciphers“, „exclude“ und „protocols“ (Postfix ≥ 2.6) die Konfigurationsparameter smtp_tls_ciphers, smtp_tls_exclude_ciphers und smtp_tls_protocols. Wenn die effektive Sicherheitsstufe verschlüsselt ist, überschreiben die optionalen Attribute „ciphers“, „exclude“ und „protocols“ (Postfix ≥ 2.6) die Konfigurationsparameter smtp_tls_mandatory_ciphers, smtp_tls_mandatory_exclude_ciphers und smtp_tls_mandatory_protocols.

https://www.postfix.org/postconf.5.html#smtp_tls_connection_reuse
https://www.postfix.org/postconf.5.html#smtp_tls_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_exclude_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_protocols
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_exclude_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_protocols
dane-only Die TLS-Richtlinie für das Ziel wird über TLSA-Einträge in DNSSEC ermittelt. Wenn keine TLSA-Einträge gefunden werden oder keine verwendbar sind, wird keine Verbindung mit dem Server hergestellt. Wenn brauchbare TLSA-Einträge für den entfernten SMTP-Server gefunden werden, muss das Serverzertifikat mit den TLSA-Einträgen übereinstimmen. RFC 7672 (DANE) TLS-Authentifizierung und DNSSEC-Unterstützung sind mit Postfix 2.11 und höher verfügbar. Die optionalen Attribute „ciphers“, „exclude“ und „protocols“ (Postfix ≥ 2.6) setzen die Konfigurationsparameter smtp_tls_mandatory_ciphers, smtp_tls_mandatory_exclude_ciphers und smtp_tls_mandatory_protocols ausser Kraft. Das optionale Attribut „connection_reuse“ (Postfix ≥ 3.4) übersteuert den Parameter main.cf smtp_tls_connection_reuse.

https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_exclude_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_protocols
https://www.postfix.org/postconf.5.html#smtp_tls_connection_reuse
fingerprint Verfügbar mit Postfix 2.5 und höher. Bei dieser Sicherheitsstufe gibt es keine vertrauenswürdigen Zertifizierungsstellen. Die Vertrauenskette des Zertifikats, das Ablaufdatum, … werden nicht überprüft. Stattdessen listet das optionale Attribut „match“ oder der Parameter main.cf smtp_tls_fingerprint_cert_match die Zertifikatsfingerabdrücke bzw. die Fingerabdrücke des öffentlichen Schlüssels (ab Postfix 2.9) von akzeptablen Serverzertifikaten auf. Der zur Berechnung des Fingerabdrucks verwendete Digest-Algorithmus wird mit dem Parameter smtp_tls_fingerprint_digest ausgewählt. Mehrere Fingerabdrücke können mit einem „pipe“-Trennzeichen in einem einzigen Übereinstimmungsattribut kombiniert werden, oder es können mehrere Übereinstimmungsattribute verwendet werden. Das Zeichen „:“ wird nicht als Trennzeichen verwendet, da es zwischen jedem Paar von Fingerabdruckziffern (hexadezimal) steht. Die optionalen Attribute „ciphers“, „exclude“ und „protocols“ (Postfix ≥ 2.6) setzen die Konfigurationsparameter smtp_tls_mandatory_ciphers, smtp_tls_mandatory_exclude_ciphers und smtp_tls_mandatory_protocols ausser Kraft. Das optionale Attribut „connection_reuse“ (Postfix ≥ 3.4) übersteuert den Parameter main.cf smtp_tls_connection_reuse. Das optionale Attribut „enable_rpk“ (Postfix ≥ 3.9) setzt den Parameter main.cf smtp_tls_enable_rpk ausser Kraft.

https://www.postfix.org/postconf.5.html#smtp_tls_fingerprint_cert_match
https://www.postfix.org/postconf.5.html#smtp_tls_fingerprint_digest
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_exclude_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_protocols
https://www.postfix.org/postconf.5.html#smtp_tls_connection_reuse
https://www.postfix.org/postconf.5.html#smtp_tls_enable_rpk
verify E-Mails werden nur zugestellt, wenn der TLS-Handshake erfolgreich ist, die Zertifikatskette des entfernten SMTP-Servers validiert werden kann und ein DNS-Name im Zertifikat den angegebenen Übereinstimmungskriterien entspricht. Bei dieser Sicherheitsstufe wird davon ausgegangen, dass DNS-MX-Lookups sicher genug sind, und der im Serverzertifikat überprüfte Name wird möglicherweise über nicht authentifizierte DNS-MX-Lookups ermittelt. Der Name des Serverzertifikats muss entweder mit dem optionalen Attribut „match“ oder dem Wert des Parameters main.cf smtp_tls_verify_cert_match übereinstimmen. Mit Postfix ≥ 2.11 modifiziert das Attribut „tafile“ optional die Verifizierung der Vertrauenskette auf die gleiche Weise wie der Parameter smtp_tls_trust_anchor_file. Das „tafile“-Attribut kann mehrfach angegeben werden, um mehrere Vertrauensanker-Dateien zu laden. Das optionale Attribut „connection_reuse“ (Postfix ≥ 3.4) übersteuert den Parameter main.cf smtp_tls_connection_reuse.

https://www.postfix.org/postconf.5.html#smtp_tls_verify_cert_match
https://www.postfix.org/postconf.5.html#smtp_tls_trust_anchor_file
https://www.postfix.org/postconf.5.html#smtp_tls_connection_reuse
secure E-Mails werden nur zugestellt, wenn der TLS-Handshake erfolgreich ist, die Zertifikatskette des entfernten SMTP-Servers validiert werden kann und ein DNS-Name im Zertifikat den angegebenen Übereinstimmungskriterien entspricht. Auf dieser Sicherheitsstufe werden DNS MX-Lookups, obwohl sie potenziell zur Bestimmung der IP-Adressen der Next-Hop-Gateways verwendet werden können, nicht als sicher genug für die TLS-Peername-Verifizierung angesehen. Stattdessen wird der im Serverzertifikat verifizierte Standardname direkt vom Next-Hop bezogen oder explizit über das optionale Attribut „match“ angegeben, das den Parameter main.cf smtp_tls_secure_cert_match ausser Kraft setzt. Die optionalen Attribute „ciphers“, „exclude“ und „protocols“ (Postfix ≥ 2.6) setzen die Konfigurationsparameter „smtp_tls_mandatory_ciphers“, „smtp_tls_mandatory_exclude_ciphers“ und smtp_tls_mandatory_protocols ausser Kraft. Mit Postfix ≥ 2.11 modifiziert das Attribut „tafile“ optional die Verifizierung der Vertrauenskette auf die gleiche Weise wie der Parameter smtp_tls_trust_anchor_file. Das „tafile“-Attribut kann mehrfach angegeben werden, um mehrere Vertrauensanker-Dateien zu laden. Das optionale Attribut „connection_reuse“ (Postfix ≥ 3.4) übersteuert den Parameter main.cf smtp_tls_connection_reuse.

https://www.postfix.org/postconf.5.html#smtp_tls_secure_cert_match
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_exclude_ciphers
https://www.postfix.org/postconf.5.html#smtp_tls_mandatory_protocols
https://www.postfix.org/postconf.5.html#smtp_tls_trust_anchor_file
https://www.postfix.org/postconf.5.html#smtp_tls_connection_reuse

smtp_dns_support_level

Information Beschreibung
Dokumentation https://www.postfix.org/postconf.5.html#smtp_dns_support_level
Postfix TLS Support
Defaultwert
smtp_dns_support_level =
Neuer Wert
smtp_dns_support_level = dnssec
Beschreibung Grad der DNS-Unterstützung im Postfix-SMTP-Client. Wenn smtp_dns_support_level auf dem leeren Standardwert belassen wird, steuert der „Legacy-Parameter disable_dns_lookups, ob DNS im Postfix-SMTP-Client aktiviert ist, ansonsten wird der „Legacy-Parameter“ ignoriert.

Der Postfix SMTP-Client betrachtet nicht-MX [nexthop] und [nexthop]:port Ziele als gleichwertig mit statisch validierten MX-Einträgen der Form nexthop. IN MX 0 nexthop. Bei eingeschalteter dnssec-Unterstützung gelten daher validierte Hostname-zu-Adresse-Lookups für die nexthop-Domäne eines beliebigen [nexthop]- oder [nexthop]:port-Ziels. Dies gilt auch für LMTP-inet:host- und inet:host:port-Ziele, da LMTP-Hostnamen nie Gegenstand von MX-Lookups sind.

:!: HINWEIS - Die Einstellung smtp_dns_support_level = dnssec wird nur dann empfohlen, wenn die TLS-Sicherheitsstufen dane oder dane-only verwendet werden.

Andernfalls bietet die Aktivierung der DNSSEC-Unterstützung in Postfix keine zusätzliche Sicherheit. Die DNSSEC-Unterstützung von Postfix hängt von einem vorgeschalteten rekursiven Nameserver ab, der DNSSEC-Signaturen validiert. Ein solcher DNS-Server wird immer gefälschte DNS-Antworten herausfiltern, auch wenn Postfix selbst nicht für die Verwendung von DNSSEC konfiguriert ist.

Bei Verwendung der Postfix-DANE-Unterstützung sollte der Parameter smtp_host_lookup den Wert dns enthalten, da DANE nicht auf Hosts anwendbar ist, die über native Lookups aufgelöst werden.

Wie bereits erwähnt, ist Postfix kein validierender Stub-Resolver; er verlässt sich auf den konfigurierten DNSSEC-validierenden rekursiven Nameserver des Systems, um die gesamte DNSSEC-Validierung durchzuführen. Da die DNSSEC-validierten Antworten dieses Nameservers vollständig vertrauenswürdig sind, wird dringend empfohlen, dass der MTA-Host über einen lokalen DNSSEC-validierenden rekursiven Caching-Nameserver verfügt, der auf einer Loopback-Adresse lauscht, und so konfiguriert ist, dass er nur diesen Nameserver für alle Lookups verwendet. Andernfalls kann Postfix für „Man-in-the-Middle-Angriffe“ anfällig sein, die Antworten vom rekursiven Nameserver fälschen.

:!: HINWEIS - Die DNSSEC-Unterstützung erfordert eine Version von Postfix, die gegen eine halbwegs moderne DNS-Resolver-Bibliothek kompiliert wurde, die die Resolver-Optionen RES_USE_DNSSEC und RES_USE_EDNS0 implementiert.
DNS-Unterstützung Beschreibung
disabled Deaktiviert DNS-Lookups. Es werden keine MX-Lookups durchgeführt und Hostname-zu-Adresse-Lookups sind bedingungslos „nativ“. Diese Einstellung ist nicht für Hosts geeignet, die Mails an das öffentliche Internet zustellen.

:!: HINWEIS - In einigen veralteten Anleitungsdokumenten wird empfohlen, DNS-Lookups in einigen Konfigurationen mit content_filters zu deaktivieren. Dies ist nicht mehr erforderlich und es wird dringend davon abgeraten.
enabled Aktiviert DNS-Lookups. Für Nexthop-Zieldomänen, die nicht in [] eingeschlossen sind, werden MX-Lookups durchgeführt. Wenn dns und native im smtp_host_lookup-Parameterwert enthalten sind, wird zuerst DNS abgefragt, um MX-Host-A-Datensätze aufzulösen, gefolgt von nativen Suchvorgängen, wenn in DNS keine Antwort gefunden wird.
dnssec Aktiviert DNSSEC-Suchvorgänge. Die Einstellung dnssec unterscheidet sich in folgenden Punkten von der obigen Einstellung enabled:

Alle MX-Lookups setzen RES_USE_DNSSEC und RES_USE_EDNS0, um DNSSEC-validierte Antworten anzufordern. Wenn die MX-Antwort DNSSEC-validiert ist, werden die entsprechenden Hostnamen als validiert betrachtet.

Die Adressabfragen von validierten Hostnamen werden ebenfalls validiert (vorausgesetzt natürlich, smtp_host_lookup enthält dns.

Vorübergehende Ausfälle bei der DNSSEC-aktivierten Auflösung von Hostnamen in Adressen blockieren alle nativen Suchvorgänge. Zusätzliche native Nachforschungen finden nur statt, wenn DNSSEC-Anfragen schwer fehlschlagen (NODATA oder NXDOMAIN).

/etc/postfix/main.cf

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
inet_interfaces = loopback-only
mydestination =
myhostname = client.idmz.tachtler.net
recipient_canonical_maps = lmdb:${config_directory}/recipient_canonical_maps
relayhost = tachtler.net
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/client-chain.pem
smtp_tls_ciphers = high
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_ciphers = high
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-only
smtp_tls_session_cache_database = lmdb:${data_directory}/smtp_scache
tls_append_default_CA = yes
tls_random_bytes = 255
tlsproxy_tls_CApath = $smtp_tls_CApath
tlsproxy_tls_ask_ccert = yes
tlsproxy_tls_chain_files = $smtp_tls_chain_files
tlsproxy_tls_ciphers = $smtp_tls_ciphers
tlsproxy_tls_exclude_ciphers = $smtp_tls_exclude_ciphers
tlsproxy_tls_loglevel = $smtp_tls_loglevel
tlsproxy_tls_mandatory_ciphers = $smtp_tls_mandatory_ciphers
tlsproxy_tls_mandatory_exclude_ciphers = $smtp_tls_mandatory_exclude_ciphers
tlsproxy_tls_mandatory_protocols = $smtp_tls_mandatory_protocols
tlsproxy_tls_protocols = $smtp_tls_protocols
tlsproxy_tls_security_level = encrypt

:!: 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 Tue 2024-11-26 06:31:38 CET; 2min 11s ago
 Invocation: 72b01e328d9b4689a06b3cb0a7b45f51
    Process: 2075 ExecStart=/usr/bin/postfix start (code=exited, status=0/SUCCE>
   Main PID: 2143 (master)
      Tasks: 3 (limit: 2315)
     Memory: 2.6M (peak: 4.1M)
        CPU: 238ms
     CGroup: /system.slice/postfix.service
             ├─2143 /usr/lib/postfix/bin/master -w
             ├─2144 pickup -l -t unix -u
             └─2145 qmgr -l -t unix -u

Nov 26 06:31:38 client systemd[1]: Starting Postfix Mail Transport Agent...
Nov 26 06:31:38 client postfix[2141]: postfix/postlog: starting the Postfix mai>
Nov 26 06:31:38 client postfix/postfix-script[2141]: starting the Postfix mail >
Nov 26 06:31:38 client postfix/master[2143]: daemon started -- version 3.9, con>
Nov 26 06:31:38 client systemd[1]: Started Postfix Mail Transport Agent.

Nachfolgender Befehl listet die IP-Adressen und die Ports auf, auf denen der Postfix-Server lauscht:

# ss -taubenp | grep postfix
tcp   LISTEN 0      100               127.0.0.1:25        0.0.0.0:*     users:(("master",pid=2143,fd=13))
ino:16624 sk:3 cgroup:/system.slice/postfix.service <->
tcp   LISTEN 0      100                   [::1]:25           [::]:*     users:(("master",pid=2143,fd=14))
ino:16625 sk:a 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 „dane-only“ erzwungen wird, kann erst erfolgen, wenn die nachfolgenden Konfigurationen innerhalb des Konstrukts

wie folgt durchgeführt werden.

Es kann mit einem kleinen Test vom

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 - DANE - null client und main server" | /usr/sbin/sendmail root

Als Ergebnis sollten zwei Dinge kontrolliert werden:

  1. Die Log-Einträge im systemd-journald
  2. 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

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):

Nov 26 12:00:46 client postfix/pickup[2609]: 060138A: uid=0 from=<root>
Nov 26 12:00:46 client postfix/cleanup[2630]: 060138A:
 message-id=<20241126110046.060138A@client.idmz.tachtler.net>
Nov 26 12:00:46 client postfix/qmgr[2145]: 060138A: from=<root@client.idmz.tachtler.net>, size=313,
 nrcpt=1 (queue active)
Nov 26 12:00:46 client postfix/tlsproxy[2639]: CONNECT to [fd00::10:10:0:0:60]:25
Nov 26 12:00:46 client postfix/tlsproxy[2639]: Verified TLS connection established to
 mx1.tachtler.net[fd00::10:10:0:0:60]:25: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bit raw public key) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256
Nov 26 12:00:46 client postfix/smtp[2637]: Verified TLS connection established to
 mx1.tachtler.net[fd00::10:10:0:0:60]:25: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bit raw public key) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256
Nov 26 12:00:46 client postfix/tlsproxy[2639]: DISCONNECT [fd00::10:10:0:0:60]:25
Nov 26 12:00:46 client postfix/smtp[2637]: 060138A: to=<root@tachtler.net>, orig_to=<root>,
 relay=mx1.tachtler.net[fd00::10:10:0:0:60]:25, delay=0.18, delays=0.03/0.04/0.1/0.02, dsn=2.0.0,
 status=sent (250 2.0.0 Ok: queued as 0D4BA180089)
Nov 26 12:00:46 client postfix/qmgr[2145]: 060138A: removed

:!: HINWEIS - Wichtig ist hier das auftauchen von

  • Verified TLS connection established …

Der Inhalte der Log-Einträge im systemd-journald auf dem

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):

Nov 26 12:00:45 server postfix/smtpd[4316]: connect from client.idmz.tachtler.net[fd00::10:10:0:0:80]
Nov 26 12:00:46 server postfix/smtpd[4316]: Trusted TLS connection established from
 client.idmz.tachtler.net[fd00::10:10:0:0:80]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
 key-exchange X25519 server-signature RSA-PSS (4096 bit raw public key) server-digest SHA256
 client-signature RSA-PSS (2048 bits) client-digest SHA256
Nov 26 12:00:46 server postfix/smtpd[4316]: 0D4BA180089:
 client=client.idmz.tachtler.net[fd00::10:10:0:0:80]
Nov 26 12:00:46 server postfix/cleanup[4320]: 0D4BA180089:
 message-id=<20241126110046.060138A@client.idmz.tachtler.net>
Nov 26 12:00:46 server postfix/qmgr[3095]: 0D4BA180089: from=<root@vml080.idmz.tachtler.net>, size=832,
 nrcpt=1 (queue active)
Nov 26 12:00:46 server postfix/smtpd[4316]: disconnect from client.idmz.tachtler.net[fd00::10:10:0:0:80]
 ehlo=2 starttls=1 mail=1 rcpt=1 data=1 quit=1 commands=7
Nov 26 12:00:46 server postfix/local[4321]: 0D4BA180089: 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)
Nov 26 12:00:46 server postfix/qmgr[3095]: 0D4BA180089: 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:

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/postfix_archlinux_konfigurationnull_client_dane_konfiguration.txt · Zuletzt geändert: 2024/12/03 14:45 von klaus