IT security, FreeBSD, Linux, mail server hardening, post-quantum crypto, DNS, retro computing & hands-on hardware hacks. Privater Tech-Blog seit 2003.

Kategorie: Kernel-Error-Blog (Seite 14 von 47)

Persönlicher Tech-Blog von Sebastian van de Meer — Beiträge zu IT-Security, Netzwerken, FreeBSD, Linux, Elektronik und Maker-Projekten.

internet.nl: Mailserver-Sicherheit testen mit dem niederländischen Standard

Die niederländische Regierung betreibt mit internet.nl ein kostenloses Testtool für Webserver und Mailserver. Im Gegensatz zu Qualys SSL Labs, das sich auf TLS-Konfiguration konzentriert, prüft internet.nl das gesamte E-Mail-Sicherheitsbild einer Domain.

Was getestet wird

Der Mailserver-Test prüft:

STARTTLSOb der MX TLS anbietet und welche Protokollversionen und Cipher unterstützt werden
ZertifikatGültigkeit, Kette, Hostname-Match
DANE/TLSAOb TLSA-Records im DNS vorhanden und korrekt sind
SPFOb ein SPF-Record existiert und syntaktisch korrekt ist
DKIMOb ausgehende Mails DKIM-signiert sind
DMARCOb eine DMARC-Policy veröffentlicht ist und welche Einstellung sie hat
MTA-STSOb MTA-STS konfiguriert ist und die Policy konsistent ist
DNSSECOb die Domain mit DNSSEC gesichert ist

Für jede Kategorie gibt es Punkte. 100 Prozent erreicht man nur wenn alles korrekt konfiguriert ist. Domains die sowohl beim Web- als auch beim Mailtest 100 Prozent erreichen, landen in der Hall of Fame.

Strenge Anforderungen

internet.nl ist strenger als die meisten anderen Testtools. TLS 1.0 und 1.1 geben Abzug. Ohne DANE ist kein voller Score möglich. Die Cipher-Anforderungen orientieren sich an den niederländischen IT-Sicherheitsrichtlinien, die auch für Behörden gelten.

Das macht den Test besonders nützlich als Benchmark. Wer dort 100 Prozent hat, hat sein E-Mail-Setup nach aktuellem Stand abgesichert. Wer Abzüge bekommt, sieht genau wo es hakt.

Fremde Domains testen

Man kann beliebige Domains testen, nicht nur die eigene. Das ist praktisch um Dienstleister, Geschäftspartner oder den eigenen Provider zu prüfen. Ein kurzer Test zeigt schnell ob der Mailserver auf der anderen Seite zeitgemäß konfiguriert ist oder ob dort noch SSLv3 mit RC4 läuft.

Siehe auch: MTA-STS einrichten

Fragen? Einfach melden.

IPv6 ULA (fd00::/8), fc00::/7 und warum die Priorität oft anders ist als erwartet

Pv6 Unique Local Address fd00::/8 vs IPv4 – Priorität, Prefix Policy und Default Address Selection

Unique Local IPv6 Addresses sind eines dieser Themen, über die man meist erst stolpert, wenn man IPv6 ernsthaft benutzt. Nicht beim ersten „IPv6 ist an“-Häkchen, sondern dann, wenn man anfängt, Netze sauber zu trennen, VPNs aufzubauen, interne Services umzuziehen oder einfach keine Lust mehr auf NAT und IPv4-Private hat. Wer die IPv6-Grundlagen auffrischen will, findet dort den Einstieg.

ULA sollen genau das sein: lokal, eindeutig genug, nicht global routbar. Im Prinzip der IPv6-Nachfolger von 10/8 & Co. Klingt simpel. Ist es auch – bis man merkt, dass Betriebssysteme mit ULA manchmal Dinge tun, die man nicht intuitiv erwartet.

Fangen wir vorne an.

Der reservierte Adressraum für ULA ist fc00::/7. Das liest man oft so, und formal ist das auch korrekt. Praktisch relevant ist davon aber nur fd00::/8. Das sogenannte L-Bit (local) muss gesetzt sein. Der andere Teil, also fc00::/8, ist bis heute nicht weiter definiert und sollte in realen Netzen schlicht nicht verwendet werden. Wenn man ULA nutzt, dann immer fd….

Eine typische ULA sieht dann so aus:

fdXX:XXXX:XXXX::/48

Aufgeschlüsselt:

| 8 Bit | 40 Bit    | 16 Bit | 64 Bit        |
| fd    | Global ID | Subnet | Interface ID |
  • fd → Local-Bit gesetzt
  • Global ID → pseudozufällig, soll Kollisionen vermeiden
  • Subnet → klassische Subnetzstruktur
  • Interface ID → wie bei anderen IPv6-Unicast-Adressen

Die Global ID ist nicht „zentral vergeben“, sondern wird lokal generiert. Ziel ist nicht Sicherheit, sondern praktische Eindeutigkeit, falls Netze später zusammengeführt werden. In der Praxis funktioniert das erstaunlich gut.

Bis hierhin ist alles noch harmlos. Die eigentliche Verwirrung beginnt in dem Moment, in dem ein Host mehrere mögliche Wege zum Ziel hat.

Dual-Stack ist heute der Normalfall. IPv4 und IPv6 gleichzeitig. Und plötzlich steht ein System vor der Frage:
Nehme ich IPv4? Nehme ich IPv6? Und wenn IPv6 – welche Adresse eigentlich?

Die Antwort darauf regelt RFC 6724. Dort ist die Default Address Selection definiert. Vereinfacht gesagt: eine Prioritätenliste für Adresspräfixe. Jedes Präfix bekommt eine Präzedenz. Höher gewinnt.

Und genau hier liegt der Punkt, der viele überrascht:
IPv6 ULA haben nach RFC 6724 eine niedrigere Priorität als IPv4.

Das heißt ganz konkret:
Ist ein Ziel sowohl über IPv4 als auch über IPv6-ULA erreichbar, wird IPv4 bevorzugt.

Das fühlt sich erstmal kontraintuitiv an. IPv6 ist doch „das Neue“. Aber aus Sicht des Standards ist die Logik klar: ULA sind bewusst lokal begrenzt. IPv4 ist – trotz aller Altlasten – global eindeutig. Also gewinnt IPv4.

In der Praxis sieht man dieses Verhalten regelmäßig, vor allem auf Linux- und FreeBSD-Systemen, die sich sehr nah am RFC orientieren. Windows und Apple-Systeme mischen zusätzlich noch Happy-Eyeballs-Mechanismen hinein, was das Verhalten manchmal schwerer nachvollziehbar macht, am Grundprinzip aber nichts ändert.

Wenn man verstehen will, was ein System tatsächlich tut, hilft ein Blick in die jeweilige Prefix-Policy.

Diagnose: Welche Prioritäten nutzt mein System?

Linux:

ip -6 addr show
ip -6 route show
ip -f inet6 addrlabel show

Interessant ist vor allem die Ausgabe der Address-Labels. Dort sieht man, mit welcher Präzedenz fd00::/8, IPv4-Mapped-Adressen und andere Präfixe bewertet werden.

Windows:

netsh interface ipv6 show prefixpolicies

Hier sieht man sehr direkt, welche Präzedenz Windows den einzelnen Präfixen zuordnet. In der Default-Konfiguration liegt ULA unter IPv4.

FreeBSD:

ip6addrctl

Auch hier ist die RFC-6724-Policy gut sichtbar.

Spätestens an dieser Stelle wird klar, warum ein interner Dienst trotz sauber konfigurierter IPv6-ULA plötzlich doch über IPv4 angesprochen wird. Das System macht exakt das, was der Standard vorsieht.

Nun kann man sagen: „Okay, verstanden.“
Oder man kann sagen: „Das ist nicht das Verhalten, das ich will.“

Beides ist legitim.

Anpassung: ULA bewusst höher priorisieren

Wenn ULA für interne Kommunikation wichtiger sind als IPv4 – etwa in reinen IPv6-Infrastrukturen mit IPv4 nur als Fallback – kann man die Präzedenz anpassen.

Linux (/etc/gai.conf):

# IPv6 ULA höher priorisieren als IPv4
precedence fd00::/8  45

Nach einem Reload des Stacks oder Neustart gilt die neue Reihenfolge.

Windows:

netsh interface ipv6 set prefixpolicy fd00::/8 precedence=45 label=1

Damit liegt ULA über IPv4. Windows speichert diese Einstellung persistent.

FreeBSD:

Je nach Version über ip6addrctl oder entsprechende rc-Settings.

Wichtig: Das ist keine rein kosmetische Änderung. Man greift hier bewusst in die Adressauswahl ein. Das sollte man nur tun, wenn man das Netzdesign verstanden hat und weiß, warum man es will.

ULA sind kein Ersatz für Global Unicast Addresses. Sie sind auch kein Allheilmittel. Sie sind ein Werkzeug. Ein gutes – aber eben eines mit klar definiertem Scope.

Spannend ist, dass es inzwischen Entwürfe gibt, die das Verhalten von RFC 6724 weiterentwickeln. Ziel ist unter anderem, ULA-zu-ULA-Kommunikation besser zu priorisieren und bestimmte unerwünschte IPv4-Fallbacks zu vermeiden (ähnlich dem Problem mit Carrier Grade NAT und IPv6). Stand heute ist das aber noch nicht flächendeckend umgesetzt. Man sollte sich also nicht darauf verlassen, sondern das Verhalten der eigenen Systeme prüfen.

Am Ende bleibt:

ULA funktionieren. Sie sind sauber spezifiziert. Aber ihre Priorität ist kein Zufall, sondern eine bewusste Designentscheidung. Wer sie einsetzt, sollte wissen, warum IPv4 manchmal „gewinnt“ – und dann entscheiden, ob das so bleiben soll oder nicht.

Wie so oft bei IPv6 liegt das eigentliche Problem nicht im Protokoll, sondern in den Erwartungen, die man aus der IPv4-Welt mitbringt.

Siehe auch: IPv6 Grundlagen

Fragen? Einfach melden.

Der curl Wetterbericht

Ein Kollege hat mir folgenden curl Tipp gegeben:

➜  ~ curl v2.wttr.in

Das Ergebnis ist tatsächlich der Wetterbericht für die GeoIP Daten der abfragenden IP Adresse in der Konsole!

➜  ~ curl v2.wttr.in
┌┤  weather report for: Hilden, Germany  ├───────────────────────────────┐
│                                                                        │
│                                                                        │
│       Thu 27 Feb              Fri 28 Feb              Sat 29 Feb       │
│                       ╷                       ╷                        │
│                                                                        │
│                                                                        │
│+6                                                   ⡠⠔⠊⠉⠉⠉⠢⡀           │
│                                     ⡠⠒⠉⠉⠑⠢⡀       ⡠⠊       ⠑⢄          │
│                                   ⢀⡊      ⠑⢆    ⢀⠊           ⠑⠢⢄⣀      │
│                                  ⢀⠎         ⠑⠤⡠⠔⠁                ⠑⠢⣀   │
│                                 ⢀⠎                                  ⠑⡀ │
│0                               ⡠⠃                                    ⠉⠂│
│⡇      ⣀⠤⠒⠉⠉⠒⢄  ⢀⠒⠑⠄      ⢀⠔⠒⠒⠒⠊                                        │
│⠡⣀  ⣀⠔⠊       ⠉⠊⠁  ⢣     ⡔⠁                                             │
│  ⠉⠉                ⢇   ⡜                                               │
│-5                  ⠈⢆⢀⠎                                                │
│                                                                        │
│─────┴─────┼─────┴─────╂─────┴─────┼─────┴─────╂─────┴─────┼─────┴─────╂│
│     6    12    18           6    12    18           6    12    18      │
│                                                                        │
│                                             5.53mm|85%                 │
│                  ▂_                             ▇█▁                    │
│                ▁███▂                           ▇███_                   │
│               ▂█████▂                         ▁█████▃▁▁                │
│              ▄███████▃                        ██████████▅▁    _____    │
│ ________  _▂▇██████████▅▃▂▁▁__              ▂████████████████████████▅▃│
│                                                                        │
│                                                                        │
│❄️  ❄️  ❄️  ❄️  ☁️  ❄️  ? ?  ?  ?  ❄️  ❄️  ☁️  ☁️  ☁️  ☁️  ?  ?  ?  ?  ?  ?  ?  ?  │
│ →  →  ↗  ↑  ↑  ↑  ↗  ↗  →  →  →  →  ↗  ↑  ↑  ↖  ↑  ↑  ↗  ↗  ↗  ↗  ↗  → │
│ 15 14 12 15 22 27 25 24 28 28 23 17 12 11 13 20 21 19 17 16 23 25 20 18│
│                                                                        │
│?                      ?                      ?                   ? │
│       ─━━━━━━━━━━━            ─━━━━━━━━━━━            ─━━━━━━━━━━━     │
│                                                                        │
│                                                                        │
└────────────────────────────────────────────────────────────────────────┘
Weather: ? Light Rain, Rain, +3°C, 93%, ←19 km/h, 994hPa
Timezone: Europe/Berlin
  Now:    15:04:14+0100 | Dawn:    06:49:42  | Sunrise: 07:23:08
  Zenith: 12:45:09      | Sunset:  18:07:10  | Dusk:    18:40:36

Lustig oder?

Fragen? Einfach melden.

Mein IPv6 Samsung/HP Problem wurde gelöst!

Ich bin absolut überrascht. Das gesammte Thema war für mich nach der letzten Kommunikation „erledigt“. In den nächsten Jahren hätte ich nicht mehr mit einer Veränderung gerechnet…

Da kam heute aus dem Nichts folgende E-Mail:

Hallo Herr van de Meer,
 
manchmal geschehen noch kleine Wunder. Ich habe heute ein .par File für unsere IPv6 Herausforderung bekommen und erfolgreich bei meiner Maschine testen können.
Es ist jetzt also auch mit Samsung Maschinen möglich, eine „saubere und korrekte IP Adresse“ zuzuweisen.
Wenn noch Bedarf besteht, stelle ich ihnen gerne ein Link zum Download zur Verfügung.
 
Beste Grüße nach Bonn

Ich habe natürlich diesen Patch angefragt, blitzartig bekommen und eingespielt.

macbook-s-meer:~ kernel$ ping6 -c3 fd00:118f:335:62::253
PING6(56=40+8+8 bytes) fd00:118f:335:42:c3:51f8:2949:1641 --> fd00:118f:335:62::253
16 bytes from fd00:118f:335:62::253, icmp_seq=0 hlim=63 time=0.884 ms
16 bytes from fd00:118f:335:62::253, icmp_seq=1 hlim=63 time=0.703 ms
16 bytes from fd00:118f:335:62::253, icmp_seq=2 hlim=63 time=0.718 ms

--- fd00:118f:335:62::253 ping6 statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.703/0.768/0.884/0.082 ms

Das geht jetzt einfach! Das geht wirklich. Ich kann dem Drucker eine feste IP Adresse meiner Wahl geben.

Siehe auch: IPv6 ULA und Priorität

Fragen? Einfach melden.

E-Mail Adressen

Das ist eine Kontaktliste mit E-Mail Adressen, an welche man unbedingt Angebote schicken muss. Wer fragen zur Kontaktliste hat, bitte einfach melden!

wurstmann@kernel-error.org

kleinmann@kernel-error.org

hundebauch.balem@kernel-error.org

info@kernel-error.org

buchhaltung@kernel-error.org

management@kernel-error.org

ceo@kernel-error.org

wurstmann@tagesmutter-rheinbach.de

kleinmann@tagesmutter-rheinbach.de

hundebauch.balem@tagesmutter-rheinbach.de

info@tagesmutter-rheinbach.de

buchhaltung@tagesmutter-rheinbach.de

management@tagesmutter-rheinbach.de

ceo@tagesmutter-rheinbach.de

wurstmann@van-alst.de

kleinmann@van-alst.de

hundebauch.balem@van-alst.de

info@van-alst.de

buchhaltung@van-alst.de

management@van-alst.de

ceo@van-alst.de

wurstmann@linux-rheinbach.de

kleinmann@linux-rheinbach.de

hundebauch.balem@linux-rheinbach.de

info@linux-rheinbach.de

buchhaltung@linux-rheinbach.de

management@linux-rheinbach.de

ceo@linux-rheinbach.de

wurstmann@kindertagespflege-sprockhoevel.de

kleinmann@kindertagespflege-sprockhoevel.de

hundebauch.balem@kindertagespflege-sprockhoevel.de

info@kindertagespflege-sprockhoevel.de

buchhaltung@kindertagespflege-sprockhoevel.de

management@kindertagespflege-sprockhoevel.de

ceo@kindertagespflege-sprockhoevel.de

wurstmann@geekbundle.de

kleinmann@geekbundle.de

hundebauch.balem@geekbundle.de

info@geekbundle.de

buchhaltung@geekbundle.de

management@geekbundle.de

ceo@geekbundle.de

Fragen? Einfach melden.

Der Matrix Messanger Riot wurde in Version 1.0 veröffentlicht

Riot im Logo

Etwas über ein Jahr betreibe ich nun bereits meinen eigenen Matrix Homeserver. Als Client dazu nutze ich Riot. Diesen Client gibt es für alle gängigen Geräte, egal ob Smartphone, Laptop oder Browser. Nun ist er in der Version 1.0 veröffentlicht worden.

Nachdem Frankreich nun die Idee verfolgt Matrix zu nutzen. Bin ich sehr gespannt welche Auswirkungen dieses auf Matrix und natürlich Riot haben wird. Wir setzten diese Konstellation schon länger als alternative zu anderen Messangern für Familie, Freunde und Bekannte ein. Der neue Client gefällt allen wirklich gut und er ist sogar noch etwas einfacher und angenehmer zu bedienen als sein Vorgänger. Schaut euch Matrix / Riot doch einfach mal an, ich bin erreichbar über: @kernel-error:kernel-error.com

Siehe auch: Eigenen Jabber-Server betreiben

Fragen? Einfach melden.

TLS 1.3 für Postfix & Dovecot: Einrichtung und Konfiguration

TLS 1.3 ist im Mailbetrieb der Normalfall. Sobald Postfix und Dovecot gegen ein aktuelles OpenSSL gelinkt sind, wird es ohne Zutun verwendet. Die Konfigurationsarbeit dreht sich nicht mehr darum, TLS 1.3 zu aktivieren, sondern darum, die alten Protokollversionen sauber abzuschalten und für den verbleibenden TLS-1.2-Fallback eine kontrollierte Cipher-Policy zu definieren.

Illustration zu TLS 1.3 im Mailbetrieb: Symbolische Darstellung von Postfix und Dovecot mit Schloss und Schlüssel vor Server-Hintergrund, steht für verschlüsselte SMTP- und IMAP-Verbindungen mit modernen TLS-Standards.

Voraussetzungen

Auf jedem aktuellen Linux oder BSD ist OpenSSL 3.x längst Default. OpenSSL 1.1.1 ist seit September 2023 End-of-Life und sollte nicht mehr im Einsatz sein. Postfix und Dovecot übernehmen den TLS-Stack vollständig aus der Library, eine eigene Aktivierung von TLS 1.3 entfällt. Welche Version tatsächlich verwendet wird, lässt sich auf dem Server eindeutig prüfen:

postconf -a | grep -i tls
dovecot --version
ldd $(which dovecot) | grep ssl
openssl version

Erscheint OpenSSL 3.x, ist alles an Bord was man braucht. Auch ältere 1.1.1-Builds beherrschen TLS 1.3, sind heute aber kein Argument mehr.

Postfix

Postfix verwendet TLS 1.3 automatisch, sobald die Gegenstelle es anbietet. Wichtig ist die Mindestversion. TLS 1.0 und TLS 1.1 sind kryptografisch tot und gehören aus der Aushandlung ausgeschlossen. Für Submission auf 587 und 465 ist heute realistisch sogar TLS 1.3 only sinnvoll, weil dort nur Mail-Clients hochkommen die eine moderne Library mitbringen. Für SMTP-Relay auf Port 25 zwischen Mailservern bleibt TLS 1.2 als Fallback notwendig, weil die Internet-Realität dort heterogener ist.

Eine solide Basis-Konfiguration für Postfix sieht so aus:

smtpd_tls_protocols = >=TLSv1.2
smtp_tls_protocols  = >=TLSv1.2

smtpd_tls_security_level = may
smtp_tls_security_level  = may

smtpd_tls_cert_file = /etc/letsencrypt/live/DOMAIN/fullchain.pem
smtpd_tls_key_file  = /etc/letsencrypt/live/DOMAIN/privkey.pem

Die Cipher-Optionen in Postfix wirken ausschließlich auf TLS 1.2 und älter. TLS 1.3 hat eine fest definierte Liste von AEAD-Cipher-Suites und ignoriert die Postfix-Optionen vollständig. Trotzdem ist es sinnvoll, für den Fallback eine saubere Policy zu setzen:

tls_preempt_cipherlist = yes

smtpd_tls_ciphers = high
smtp_tls_ciphers  = high

smtpd_tls_mandatory_ciphers = high
smtp_tls_mandatory_ciphers  = high

Damit greifen ausschließlich AEAD-Cipher mit Forward Secrecy. Welche das konkret sind, regelt OpenSSL über seine Defaults der jeweiligen Distribution. Für die Submission-Ports darf man strenger sein und auf encrypt oder secure hochziehen, während Port 25 mit may opportunistisch bleibt.

Session-Caching reduziert Handshake-Overhead und sollte aktiv sein:

smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database  = btree:${data_directory}/smtp_scache

Dovecot

Dovecot nutzt TLS 1.3 ebenfalls automatisch, sofern OpenSSL es liefert. Konfiguriert wird die minimale Protokollversion, alles darunter wird hart abgeschaltet:

ssl = required
ssl_min_protocol = TLSv1.2

Wer nur noch moderne Clients erwartet, kann das auf TLSv1.3 heben. Eigene Praxiserfahrung: für IMAPS auf 993 und Submission auf 587/465 ist das auf einem privat betriebenen Server problemlos machbar. Auf öffentlichen Hostern mit unbekannter Client-Basis lieber bei TLS 1.2 als Untergrenze bleiben.

Die Cipher-Liste betrifft auch in Dovecot nur TLS 1.2 und älter. Eine restriktive Liste verhindert unsaubere Fallbacks bei alten Clients:

ssl_cipher_list = \
ECDHE-ECDSA-CHACHA20-POLY1305:\
ECDHE-RSA-CHACHA20-POLY1305:\
ECDHE-ECDSA-AES256-GCM-SHA384:\
ECDHE-RSA-AES256-GCM-SHA384

ssl_prefer_server_ciphers = yes

Zertifikate werden wie gewohnt eingebunden:

ssl_cert = </etc/letsencrypt/live/DOMAIN/fullchain.pem
ssl_key  = </etc/letsencrypt/live/DOMAIN/privkey.pem

TLS 1.3 und Cipher-Suites

TLS 1.3 unterscheidet sich grundlegend von älteren Versionen. Die Cipher-Suites sind in RFC 8446 fest definiert und bestehen ausschließlich aus AEAD-Verfahren mit integrierter Authentifizierung und Forward Secrecy. Der Mailbetrieb sieht in der Praxis vor allem drei Suites: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256 und TLS_AES_128_GCM_SHA256.

Postfix und Dovecot bieten keine Möglichkeit, diese Cipher direkt anzusteuern. Die Auswahl erfolgt während des Handshakes durch OpenSSL. Das ist kein Mangel, sondern Absicht und reduziert Fehlkonfigurationen erheblich.

Wer trotzdem versucht, TLS-1.3-Cipher über Applikationsoptionen zu beeinflussen, konfiguriert in Wahrheit nur TLS 1.2.

Der vollständige Mail-Crypto-Stack

TLS 1.3 alleine schützt eine SMTP-Verbindung nur dann zuverlässig, wenn die Gegenstelle die Verschlüsselung auch wirklich erwartet. Bei opportunistischem TLS auf Port 25 entscheidet jeder Server selbst, ob er sich auf eine unverschlüsselte Verbindung einlässt. Damit das nicht passiert, gibt es zwei Mechanismen die heute zum Standard gehören:

  • DANE nutzt DNSSEC und einen TLSA-Record, um den erwarteten Zertifikat-Fingerprint im DNS zu hinterlegen. Postfix kann das nativ verifizieren, sobald smtp_dns_support_level = dnssec und smtp_tls_security_level = dane gesetzt sind. Voraussetzung ist eine funktionierende DNSSEC-Validierung im lokalen Resolver.
  • MTA-STS publiziert die TLS-Erwartung über HTTPS und einen DNS-TXT-Record. Während DANE auf DNSSEC angewiesen ist, kommt MTA-STS ohne aus und wird daher von Anbietern wie Google, Microsoft und Apple breit unterstützt.
  • TLS-RPT liefert die Reports zurück, wenn ein Empfangsserver die TLS-Erwartung gerissen hat. Ohne TLS-RPT merkt man Konfigurationsdrift nur durch Zufall, mit TLS-RPT als JSON-Bericht ins Postfach.

In der Praxis lohnt sich keiner der drei Mechanismen alleine. DANE, MTA-STS und TLS-RPT bilden zusammen die durchgängige Kette aus Erwartung, Verifikation und Auditing. Wer nur einen davon hat, verliert eine Etappe.

Logging, Monitoring und Adoption messen

Ohne TLS-Logging fliegt man blind. Postfix bringt das frei Haus mit:

smtpd_tls_loglevel = 1
smtp_tls_loglevel  = 1

Damit landet pro Verbindung eine Zeile im Log mit Protokoll, Cipher und Schlüsselaustausch. Aus diesen Zeilen lässt sich auch die TLS-Adoption auswerten, also wer mit welcher Version und welchem Cipher kommt. Das gleiche Vorgehen habe ich für die Webseite mit dem Beitrag Post-Quantum TLS auf Nginx: 15 Tage $ssl_curve ausgewertet dokumentiert. Für SMTP funktioniert das analog, der einzige Unterschied ist die Logquelle.

Bei Dovecot reicht ein verbose_ssl = yes in der relevanten Service-Sektion, wenn man im Detail wissen will, was der TLS-Handshake gerade tut. Im Normalbetrieb genügt der Default.

Verifikation

Ob TLS 1.3 wirklich genutzt wird, lässt sich von außen sauber prüfen.

SMTP mit STARTTLS:

openssl s_client -starttls smtp -connect mail.example.com:25 -tls1_3

Submission und IMAPS direkt:

openssl s_client -starttls smtp -connect mail.example.com:587 -tls1_3
openssl s_client -connect mail.example.com:465 -tls1_3
openssl s_client -connect mail.example.com:993 -tls1_3

Wird der Handshake mit einem AEAD-Cipher aufgebaut, ist TLS 1.3 aktiv. Fällt die Verbindung auf TLS 1.2 zurück, greift die konfigurierte Cipher-Liste.

Für eine zweite Meinung lohnt sich ein Blick auf Hardenize oder internet.nl. Beide testen den Mail-Stack inklusive DANE, MTA-STS, TLS-RPT und Cipher-Set in einem Rutsch.

Wohin geht die Reise

TLS 1.2 wird in den nächsten Jahren auch im Mail-Bereich aussterben. Auf der Web-Seite ist das praktisch schon passiert, im SMTP-Relay zwischen Mailservern dauert es länger, weil dort die langsameren Migrationszyklen großer Provider den Takt vorgeben. Wer heute neu konfiguriert, sollte TLS 1.0 und 1.1 hart raushalten und TLS 1.2 als reine Fallback-Etappe behandeln.

Die nächste Stufe ist Post-Quantum-Kryptografie. X25519MLKEM768 ist bei mir auf dem Mail-Server seit Anfang 2026 produktiv und ich habe das Setup im Beitrag Post-Quantum TLS für E-Mail dokumentiert. Auf der Webseite habe ich die Adoption über 15 Tage gemessen und die Ergebnisse in 15 Tage $ssl_curve ausgewertet aufgeschrieben. Für den Mail-Stack steht eine analoge Auswertung noch aus, das Setup dafür ist aber identisch.

Fazit

TLS 1.3 erfordert in Postfix und Dovecot keine Sonderbehandlung. Was zählt, ist eine moderne OpenSSL-Version, eine klare Mindest-TLS-Policy, eine saubere Cipher-Liste für den TLS-1.2-Fallback und das Zusammenspiel aus DANE, MTA-STS und TLS-RPT für die Transport-Verschlüsselung im Internet.

Kein Feature-Flag.
Keine Magie.
Nur korrekte Defaults, bewusst begrenzt.

Siehe auch: Post-Quantum TLS für E-Mail mit X25519MLKEM768, MTA-STS einrichten, DNSSEC und DANE: TLS-Zertifikate mit TLSA-Records absichern und Rspamd: Automatisches Spam/Ham-Lernen mit Dovecot und IMAPSieve.

Fragen? Einfach melden.

Hardenize ein Security-Scanner für die Domain

Mir ist ein weiteres Onlinetool zum scannen seiner Domain durch den Browser gerutscht. https://www.hardenize.com/

Wie immer darf man nicht bild jedem Tool trauen und sich ohne denken darauf verlassen! Die Ergebnisse müssen immer mit dem nötigen Hintergrundwissen und Feingefühl interpretiert werden…. Hardenize testet nach der Eingabe einer Domain etwas umfassender. Es schaut sich die TLS Konfiguration der Webseite, sowie des Mailservers an. Prüft auf wichtige Policys, schaut in den DNS und bewertet somit etwas das Gesamtbild.

Vielleicht interessant für einen von euch.

Fragen? Einfach melden.

Mein IPv6 Samsung/HP Problem geht weiter..

Die Antwort auf meine letzte Nachricht war schnell!

JSP-Framework sind Java-Serverseiten, die in SWS verwendet werden.
Bevor wir die Benutzereingaben von Java-Serverseiten auf unsere Backend-Module anwenden, wird geprüft, ob die angegebenen Werte die vordefinierten Anforderungen erfüllen, die für diese Werte festgelegt sind.
Der Kunde kann die angegebene IP-Adresse (fd00) nicht anwenden, da unsere in JSPs vorhandenen Validierungsprüfungen fehlschlagen, bevor der Wert an Backend-Module übergeben wird.
Das JSP-Framework und die Bibliotheken sind offene Frameworks und werden von unserer Firmware intern verwendet.
Dies bedeutet jedoch, dass wir das entsprechende JSP-Framework selbst nicht ändern oder ändern können.
Daher unterstützen unsere Geräte die eindeutige lokale Adressierungsfunktion nicht.
Der Workaround (it is recommended to use the link local address fe80:333:333:62::253 instead of the fd00:333:333:62::253 IPv6 address), den wir zur Verfügung gestellt haben, ist alles, was wir tun können.

Der vorgeschobene Grund JSP-Framework hält nicht mal bis zum Satzende. Ein ehrliches: „Ja das ist ein Problem, dieses ist uns aber im Moment egal weil das Problem weniger als 1% unserer Kunden haben und wenn sich dieses ändert schauen wir es uns an!“…. So etwas wäre noch immer nicht gut aber ehrlich. Der Grund JSP-Framework beleidigt mich zusätzlich!

Damit sind wir wohl am Ende mit dem Thema.

Siehe auch: IPv6 ULA und Priorität, IPv6 ULA und das SyncThru Web Service von Samsung / HP mögen sich nicht…, Ich brauche einen HP/Samsung Techniker – Update zum IPv6 Druckerproblem, Mein IPv6 Samsung/HP Problem wurde gelöst!

Fragen? Einfach melden.

« Ältere Beiträge Neuere Beiträge »

© 2026 -=Kernel-Error=-RSS

Theme von Anders NorénHoch ↑