Martin:Sicher mailen per DSL
Dieser Artikel soll irgendwann einmal beschreiben, wie man mit TLS-Zertifikaten dafür sorgt, daà Mails, die von einem zentralen Server übers Internet an eine dynamische IP-Adresse geroutet werden sollen. auch wirklich an ihrem Bestimmungsort ankommen.
Inhaltsverzeichnis
Problem und Lösungsansatz
Viele haben einen sogenannten "Rootserver", der irgendwo beim Internet-Provider im Rechenzentrum steht. Jeder hat auÃerdem einen DSL-AnschluÃ, der praktisch wie eine Standleitung benutzt werden könnte, wenn da nicht die Sache mit der Zwangstrennung und den dynamischen, immer wieder wechselnden IP-Adressen wäre.
Obwohl man also über gut verfügbare Infrastruktur in Form des "Rootservers" verfügt und einen DSL-Anschluà hat, muà man weiterhin mit Protokollen wie POP3 und IMAP arbeiten um an seine Mails zu kommen, denn der DSL-Anschluà ist aufgrund seiner wechselnden IP-Adressen nicht zum Betrieb eines Mailservers geeignet. Zum einen könnte es sein, daà nach dem Wechsel der IP-Adresse eingehende Mails bei jemand anderem eingeliefert werden, oder daà ein Bounce entsteht. (Zum anderen nehmen viele Mailserver keine Mails von Einwahlrechnern mehr an. - Separate Problemstellung, ggf. nicht hier behandeln.)
Das Problem soll gelöst werden, indem der "Rootserver" mit dem per DSL angeschlossenen Standort über SMTP mit TLS kommuniziert. Die Verschlüsselung per TLS soll dabei nicht in erster Linie dazu dienen, die Vertraulichkeit der Mails sicherzustellen (das ist bei Internet-Mails ohnehin illusorisch), sondern lediglich sicherstellen, daà immer die beiden richtigen Systeme miteinander kommunizieren. Da auf die Verwendung eines VPN- oder SSH-Tunnel verzichtet wird, können bei einer solchen Konfiguration keine Probleme hinsich tlich des Wiederaufsetzens nach Verbindungsabbrüchen auftreten. Wie immer, wo reines SMTP im Spiel ist, ist die Kommunikation auf diese Weise ausgesprochen robust.
Zielgruppe
Die u.g. Konfigurationsbeispiele sind kein Kochrezept, sondern sollen als Anhaltspunkte für die eigene Implementierung gesehen werden. Es können nicht alle Eventualitäten berücksichtigt werden, z.B., ob das über DSL erreichbare System selbst als Mailserver für die Endanwender dient, ob es ein Mailgateway in der DMZ ist, das den eigentlichen Mailserver bedient, oder ob vielleicht nur ein Teil der Anwender über die DSL-Maschine erreicht wird, während die anderen direkt auf dem "Rootserver" arbeiten.
Des weiteren sollte man schon genau wissen, wie und woher man einen festen DNS-Hostnamen für das DSL-System bekommt.
Jemand, der sich ein wenig mit Postfix auskennt, einigermaÃen weià wie das Internet funktioniert und optimalerweise genug SMTP spricht um ein wenig von Hand herumzutesten, sollte ohne weiteres klarkommen.
OpenSSL und die Zertifikatserzeugung werden etwas genauer behandelt, weil es auch viele Mailadmins gibt, für die das alles ein Buch mit sieben Siegeln ist.
Beschreibung der Demo-Umgebung
- server.example.com ist ein "Rootserver" o.ä., der irgendwo bei einem Provider im Rechenzentrum steht und als Mailexchanger für die Domain example.com fungiert.
- dslbox.dynamic.tld ist eine dezentrale Maschine ("DSL-Box"), die hinter einem DSL-Anschluà hängt, mit einem festen DNS-Namen z.B. von dyndns.org ausgestattet ist und an die die Mails weitergeroutet werden sollen.
- Verwendeter MTA ist Postfix mit TLS-Unterstützung ab Version 2.3.
- Betriebssystem ist egal, solange Postfix drauf läuft.
Prinzipielle Vorgehensweise
- Auf Rootserver und DSL-Box werden wir mit OpenSSL selbstsignierte Zertifikate generieren.
- Auf der DSL-Box werden wir:
- Das Zertifikat des Rootservers hinterlegen.
- Sicherstellen, daà aus dem Internet nur Mails angenommen werden, wenn die Verbindung mit dem Zertifikat des Rootservers verschlüsselt ist.
- Auf dem Rootserver werden wir:
- Das Zertifikat der DSL-Box hinterlegen.
- Mails an die Zieldomain in Richtung DSL-Box routen.
- Sicherstellen, daà Mails an die DSL-Box nur dorthin zugestellt werden, wenn das Zertifikat validiert wurde und der darin eingetragene Common Name ggf. einer bestimmten Namenskonvention entspricht.
Umsetzung
Generierung und Hinterlegung der Zertifikate
Wir gehen davon aus, daà die Zertifikate auf beiden Systemen unter /etc/postfix/tls abgespeichert werden. Die Zertifikate werden mit reichlich Laufzeit generiert, damit wir viel Zeit haben, bis das System wieder angefaÃt werden muÃ.
Vorgehensweise auf dem Rootserver:
cd /etc/postfix/tls touch server.example.com-key.pem chmod 600 server.example.com-key.pem openssl req -x509 -days 3650 -newkey rsa:2048 -nodes \ -out server.example.com-cert.pem \ -keyout server.example.com-key.pem
Vorgehensweise auf der DSL-Box:
cd /etc/postfix/tls touch dslbox.dynamic.tld-key.pem chmod 600 dslbox.dynamic.tld-key.pem openssl req -x509 -days 3650 -newkey rsa:2048 -nodes \ -out dslbox.dynamic.tld-cert.pem \ -keyout dslbox.dynamic.tld-key.pem
Konfiguration der DSL-Box
Hinterlegung des Rootserver-Zertifikats
- server.example.com auf die DSL-Box in /etc/postfix/tls
Konfiguration des SMTP-Service
Konfiguration des Rootservers
Hinterlegung des Zertifikats der DSL-Box
- dslbox.dynamic.tld-cert.pem auf den Rootserver in /etc/postfix/tls