🧪 Tech-Lab & How-To Base von Sebastian Teßmann • Zu den Produktivservices: tessmann-digital.de

📚 Archiv

Supply Chain Security: Docker-Updates absichern mit Trivy und Watchtower CVE-2026-98432: Warum ein Kernel-Update allein nicht reicht (und echtes System-Hardening) Home Assistant vs. Alexa: Das echte Smart Home (inkl. Pi-Setup, HACS & FRITZ!Box) Zero-Day abgewehrt: Die Anatomie der PHP-Lücke (CVE-2026-109618) und der ultimative Docker-Schutz Zero-Bloat Hosting: Nginx Proxy Manager, Apache & Fail2ban sicher unter Docker vereinen Checkmk Community Edition auf Debian 13: Der ultimative Guide (Installation, Distributed Monitoring, Custom Plugins & Gotify) Debian 13 vs. Windows Server im Enterprise-Einsatz: Performance, Härtung & Top 20 CLI-Befehle Cyberkrieg gegen den Mittelstand: Unsere Migration auf Proxmox, OPNsense & Zero-Trust Open Source vs. Payware: Der ehrliche Vergleich für KMU & IT-Infrastrukturen Bye-bye VMware: Mein Weg über Hyper-V zu Proxmox VE Tutorial: High-Performance Cloud mit Seafile auf Debian 13 & Proxmox VE Tutorial: Portainer EE auf CE downgraden & sicherer Host-Umzug Tutorial: CorePlan via Docker deployen (HTTPS out-of-the-box) Tutorial: Eigenes Docker Image bauen (Apache, PHP, Auto-SSL & HTTP zu HTTPS Redirect) Proxmox Unified Console (PUC): Das All-in-One Dashboard für PVE, PBS & PMG Eigener Bitcoin Solo Pool: Full Node (bitcoind), public-pool Backend & individuelles PHP-Dashboard im Docker-Stack OPNsense: HAProxy als Reverse Proxy mit Let's Encrypt SSL-Offloading & SNI / ACL-Routing Mobiles Arbeiten & Kanzlei-Zugriff: WireGuard VPN auf der FRITZ!Box, Windows & iPhone inkl. NAS-SMB-Mount Tschüss Windows, hallo Pinguin: Der ehrliche Leitfaden für den Linux-Umstieg (und warum CachyOS mein Gaming rettete) Eigener Bitcoin Solo-Mining-Pool: Public-Pool & Pruned Full Node im Docker-Homelab Gaming auf Linux: Kompletter Umstieg von Windows zu CachyOS (Kernel, Steam, Heroic & MangoHud) Docker Container absichern: Rootless, Read-Only Filesystems & Linux Capabilities Portainer CE auf Docker: Schritt-für-Schritt Setup mit persistenten Volumes & Hardening Docker Engine & Compose V2 auf Debian/Ubuntu: Saubere Installation via Official Repository E-Mail Deliverability: SPF, DKIM & DMARC richtig konfigurieren (Schritt-für-Schritt) Proxmox VE & OPNsense: IPv6 /64 Subnetting (/80 WAN Transit & /96 LAN Segmentierung) OPNsense auf Proxmox VE: Vollständiges Setup von ISO-Download bis Hardening & DNSmasq Proxmox VE auf Debian 12 (Bookworm) installieren & Routed Network (vmbr0/vmbr1) einrichten

E-Mail Deliverability: SPF, DKIM & DMARC richtig konfigurieren (Schritt-für-Schritt)

Wer eigene Mailserver (z. B. Mailcow, Postfix) oder geschäftliche SMTP-Relays betreibt, steht oft vor demselben Frust: Gesendete E-Mails landen im Spam-Ordner von Empfängern oder werden von Google Workspace und Microsoft 365 komplett abgelehnt. Seit 2024 setzen große Mailprovider strikte Authentifizierungsstandards voraus. In diesem Guide klären wir, wie die drei Säulen SPF, DKIM und DMARC zusammenhängen und wie du deine DNS-Records fehlerfrei aufsetzt.

1. Das Fundament: Reverse DNS (PTR-Record)

Bevor DNS-Records greifen, prüfen empfangende Mailserver als Erstes, ob die IP-Adresse des Servers zu seinem Hostnamen passt (Forward-Confirmed Reverse DNS, FCrDNS):

  • A-Record (Forward): mail.deine-domain.de zeigt auf 195.201.x.y.
  • PTR-Record (Reverse): Im Kundenportal deines Server-Hosters (z. B. Hetzner) muss für die IPv4- und IPv6-Adresse exakt mail.deine-domain.de als Reverse-Eintrag hinterlegt sein.

Stimmt der PTR nicht überein, wird deine Mail von Microsoft oder Google fast garantiert sofort verworfen.

2. SPF (Sender Policy Framework): Wer darf senden?

Der SPF-Record ist ein einfacher TXT-Eintrag in deiner Hauptdomain. Er teilt dem Empfänger mit, welche Server-IPs autorisiert sind, Mails mit deiner Domain als Absender zu verschicken.

Typischer SPF TXT-Record auf deine-domain.de:

v=spf1 mx ip4:195.201.x.y ip6:2a01:4f8:... ~all

Was bedeuten die Flags?

  • v=spf1: Definiert die SPF-Version.
  • mx: Alle Server, die in den MX-Records deiner Domain gelistet sind, dürfen senden.
  • ip4: / ip6:: Explizite IP-Adressen deiner Mailserver.
  • include:_spf.provider.de: Nötig, wenn externe Dienste (z. B. Newsletter-Tools oder Helpdesks) in deinem Namen senden.
  • ~all (SoftFail): Empfängern signalisieren, dass unautorisierte IPs markiert, aber nicht sofort hart gelöscht werden (empfohlen). Ein -all (HardFail) lehnt fremde IPs direkt ab.

3. DKIM (DomainKeys Identified Mail): Kryptografischer Manipulationsschutz

Während SPF nur die IP prüft, schützt DKIM den Inhalt der E-Mail. Dein Server signiert jede ausgehende Mail mit einem privaten Schlüssel. Der Empfänger lädt den öffentlichen Schlüssel aus deinem DNS und prüft, ob die Mail unterwegs verändert wurde.

In deinem Mailserver (z. B. Mailcow) erzeugst du einen DKIM-Schlüssel (2048 Bit) mit einem Selector (z. B. dkim). Im DNS erstellst du folgenden TXT-Record:

# Name des DNS-Records:
dkim._domainkey.deine-domain.de

# Wert des TXT-Records:
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...[DEIN_OEFFENTLICHER_SCHLUESSEL]...DAQAB

4. DMARC: Die Regulierungs- und Reporting-Policy

DMARC baut auf SPF und DKIM auf. Hier legst du fest, was passieren soll, wenn SPF oder DKIM fehlschlagen, und lässt dir tägliche Fehlerberichte per XML an deine E-Mail senden.

DMARC TXT-Record auf _dmarc.deine-domain.de:

v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@deine-domain.de; pct=100; sp=quarantine

Empfohlene Einführungsstrategie:

  1. Phase 1 (Monitoring): p=none – Fehler werden nur geloggt und an die rua-Adresse gemeldet, keine Mails werden abgewiesen.
  2. Phase 2 (Quarantäne): p=quarantine – Mails ohne gültiges SPF/DKIM landen beim Empfänger im Spam-Ordner.
  3. Phase 3 (Voller Schutz): p=reject – Unberechtigte Mails werden sofort verworfen (maximaler Phishing-Schutz).

5. Verifikation & Test-Tools

Nachdem die DNS-Records gesetzt wurden (TTL abwarten!), kannst du dein Setup mit folgenden Werkzeugen testen:

  • Mail-Tester.com: Sende eine Testmail an die angezeigte Adresse und erziele ein Rating von 10/10.
  • Terminal-Check (dig):
    dig TXT deine-domain.de +short
    dig TXT dkim._domainkey.deine-domain.de +short
    dig TXT _dmarc.deine-domain.de +short