Eigener E-Mail-Server mit Mail-in-a-Box auf einem Cloudserver
Einleitung
Der Betrieb eines eigenen Mailservers kann aus verschiedenen Gründen sinnvoll sein:
Sie können beliebig viele Postfächer oder E-Mail-Weiterleitungen anlegen ohne, dass unmittelbar zusätzliche Kosten entstehen. Natürlich hängt aber die Anzahl der möglichen Postfächer auf dem Server aber auch von der Leistungsfähigkeit der bereitgestellten Hardware, also der Größe des Arbeitsspeichers, der CPU Leistung und dem Speicherplatz des Servers ab. Falls Sie die Cloud Server von hosting.de verwenden, haben Sie die Möglichkeit die Leistungsfähigkeit der Hardware dynamisch durch den Wechsel auf ein größeres Paket anzupassen.
Sie können selbst bestimmen, welche Software Sie auf Ihrem Mailserver einsetzen möchten und wie diese konfiguriert sein soll. So können Sie z.B. E-Mail-Anhänge einer beliebigen Größe zulassen oder den Spamfilter nach Ihren Wünschen parametrieren.
Sie haben mehr Kontrolle über Ihre Daten. So können Sie z.B. Sicherheitskopien aller Postfächer mit einer beliebigen Software zu frei wählbaren Zielen erstellen.
Die Integration des Mailservers in Ihre bestehende Unternehmensinfrastruktur wird erleichtert. Beispielsweise ist die Nutzung der Authentifizierung der Nutzer per LDAP theoretisch möglich.
Der Mailserver kann in das VPN Ihres Unternehmens eingebunden werden.
Sie können die Daten auf Ihrem Mailserver verschlüsseln. Das ist durch die Nutzung der Festplattenverschlüsselung des Linux Betriebssystems möglich.
Durch den Betrieb eines eigenen Mailservers können aber auch Probleme und Nachteile entstehen:
Der Betrieb eines eignen Mailservers erfordert die Übernahme von Verantwortung für das Mailsystem und Vorsicht. Ein Ausfall des Mailservers, falsch verarbeitete oder verloren gegangene E-Mails können dazu führen, dass geschäftliche Prozesse im Unternehmen gestört werden. Die gespeicherten E-Mails können geschäftskritische Informationen enthalten, auf die Dritte unter keinen Umständen Zugriff erhalten dürfen.
Falsch konfigurierte Mailserver können dazu führen, dass andere Mailserver Ihre E-Mails als Spam einstufen, nicht mehr annehmen oder Ihren Mailserver auf zentralen schwarzen Listen als nicht vertrauenswürdig eintragen.
Für die Konfiguration eines Mailservers sind einige technische Kenntnisse nötig, die der jeweilige Administrator entweder haben oder erlangen muss.
Ein eigener Mailserver muss gepflegt werden. Ein Minimum an Pflege ist die regelmäßige Installation von Sicherheitsaktualisierungen.
Ein Mailserver besteht aus mehreren Komponenten. Die manuelle Installation und Konfiguration dieser Komponenten ist aufwändig. Es existieren jedoch inzwischen verschiedene Möglichkeiten, diese Komponenten automatisiert zu installieren, zu konfigurieren und zu warten. In diesem Artikel verwenden wir hierzu das Skript “Mail-in-a-Box”. Es installiert und konfiguriert automatisch einen Mailserver mit allen wichtigen Komponenten. Das Projekt wird von Joshua Tauberer betreut.
Voraussetzungen
Diese Anleitung richtet sich an Administratoren, die über grundlegende Linux-Kenntnisse verfügen und mit der Administration eines Linux-Systems über die Kommandozeile vertraut sind.
Sie benötigen für den Betrieb des Mailservers einen Server mit einer festen IP-Adresse im Internet, der über eine zuverlässige, dauerhafte Internetverbindung verfügt. Wir empfehlen hierzu unsere Cloud-Server. Es werden mindestens 512 MB Arbeitsspeicher benötigt.
Für Mail-in-a-Box wird ein Server oder einem Cloud Server bei hosting.de mit einem frisch Installierten Ubuntu Linux im aktuellen LTS Release benötigt. Zum Zeitpunkt der Erstellung dieser Anleitung ist das Ubuntu 18.04 LTS “Bionic Beaver”. Die Installation des Betriebssystems auf einem Cloud-Server bei hosting.de kann vollautomatisch über das Webinterface erfolgen.
Für das Empfangen und Versenden von E-Mails benötigen Sie einen Domainnamen, dessen DNS-Einträge Sie bearbeiten können. Der Mailserver selbst benötigt ebenfalls einen gültigen Hostnamen. Wir gehen davon aus, dass Sie eine Domain bei hosting.de gebucht haben.
Überblick
Ein Mailserver besteht in der Regel aus den folgenden Komponenten:
Der SMTP-Server dient dem eigentlichen Empfang und Versenden der E-Mails. Er legt die empfangenen Mails auf dem Server ab und versendet von Client erhaltene Clients zu anderen SMTP-Servern.
Der IMAP oder der POP3 Server ermöglichen den Abruf von auf dem Mailserver abgelegten E-Mails durch den Client.
Der Spamfilter übernimmt die Filterung der eingehenden E-Mails.
Das Webinterface dient der komfortablen Verwaltung des Mailservers.
Zur Namensauflösung der Domain zur IP-Adresse über das Domain Name System (DNS) wird ein DNS-Server benötigt. Für das DNS existieren zusätzliche Sicherheitserweiterungen “Domain Name System Security Extensions” (DNSSEC), die das System um eine Verschlüsselung erweitern.
Alle Komponenten werden durch “Mail-in-a-Box” automatisch installiert und konfiguriert.
Für interessierte bietet diese Grafik eine Übersicht über die Komponenten von Mail-in-a-Box und wie diese zusammenarbeiten. Das sind im Wesentlichen:
- Postfix: als SMTP-Server
- Dovecot: als IMAP(S) und POP3-Server, sowie zur Filterung von Mails mit Sieve
- Spamassassin: als Spam-Filter
- nginx: als Webserver
- Nextcloud: zur Synchronisation von Kalendern und Kontakten
- Roundcube: als Webmail-Oberfläche
Schritt 1: Erstellung eines Cloud Servers
Falls Sie diesen Schritt noch nicht ausgeführt haben, erstellen Sie bitte einen neuen Cloud Server bei hosting.de mit dem aktuell für Mail-in-a-Box benötigten Betriebssystem. Zum Zeitpunkt der Erstellung dieses Artikels ist das Ubuntu 18.04 LTS. Mail-in-a-Box benötigt einen frisch installierten Server.
Schritt 2: Anpassung der DNS-Einstellungen
Mail-in-a-Box bringt auch einen eingebauten DNS-Server mit. Zur funktionalen Trennung von DNS- und Mailserver benutzen wir in diesem Tutorial diesen allerdings nicht, sondern die standardmäßig bereits bei hosting.de verwendeten, mehrfach redundant vorhandenen DNS-Server, dessen Einträge über die Verwaltungsoberfläche von hosting.de bearbeitet werden können.
Passen Sie die DNS-Einstellungen Ihrer Domain entsprechend an. Das geschieht bei hosting.de im Webinterface.
Der Mailserver benötigt einen gültigen “A” und “AAAA”-Eintrag für seinen Hostnamen. Der A-Eintrag enthält die IPv4-Adresse Ihres Servers, während der “AAAA”-Eintrag die IPv6-Adresse des Servers beinhaltet. In unserem Fall verwenden wir den Hostnamen “mailinabox.mustermann-domain.de” unter der Domain “mustermann-domain.de” für den Mailserver.
Der Reverse-DNS (RDNS) Eintrag des Mailservers, welcher auch als “PTR-Record” bezeichnet wird, muss korrekt gesetzt sein. Er ordnet den IP-Adressen des Servers einen Hostnamen zu. Die RDNS Einträge können bei hosting.de in der Netzwerkkonfiguration des Cloud-Servers gesetzt werden. Setzen Sie bitte hier den RDNS Eintrag der IPv4 und IPv6-Adresse auf den Hostnamen des Mailservers.
Die “Mail Exchange Resource Records”, im Folgenden “MX-Einträge” genannten Einträge legen fest, welcher Mailserver die empfangenen E-Mails für die jeweilige Domain bearbeiten soll. Es ist möglich mehrere MX-Einträge mit unterschiedlichen Prioritäten für mehrere Server anzulegen. Da wir in diesem Artikel nur einen Mailserver betreiben, reicht ein MX-Eintrag mit der Priorität 10. Der MX-Eintrag zeigt auf den Hostnamen des Mailservers. Falls der Mailserver E-Mails für mehrere Domains behandeln soll, ändern Sie bitte auch die MX-Einträge der anderen Domains.
Schritt 3: Freischaltung von Port 25
Falls Sie einen hosting.de Cloud Server verwenden, wird standardmäßig der Port 25 für SMTP gesperrt sein, um den Versand von Spam zu vermeiden. Kontaktieren Sie bitte den hosting.de Support um diesen Port freischalten zu lassen.
Schritt 4: Ausführen des Mail-in-a-Box Skripts per SSH
Loggen Sie sich bitte mit root-Rechten per SSH auf Ihrem Server ein. Aus Sicherheitsgründen empfehlen wir hierfür die OpenSSH Public Key Authentifizierung zu verwenden und die Passwort Authentifizierung auf dem Server zu deaktivieren.
Bringen Sie bitte zunächst das System mit:
apt update
apt upgrade
auf den neusten Stand. Installieren Sie anschließend bitte das Paket curl
:
apt install curl lsb-release
Führen Sie bitte den folgenden Befehl aus um die Installation von Mail-in-a-Box zu beginnen:
curl -s https://mailinabox.email/setup.sh | sudo -E bash
Das Skript beginnt anschließend weitere noch auf dem System fehlende Pakete zu installieren und meldet sich abschließend mit der folgenden Meldung:
Bestätigen Sie bitte mit “OK”. Anschließend werden Sie nach einer E-Mailadresse gefragt, die Sie zur Verwaltung von Mail-in-a-Box verwenden möchten:
Der Lokalpart - das ist der Teil vor dem “@"-Symbol, der E-Mailadresse ist dabei beliebig. Der Domänenanteil - das ist der Teil nach dem “@"-Symbol - muss dabei einer der von Ihnen kontrollierten Domains entsprechen.
Nun fragt Mail-in-a-Box sicherheitshalber noch nach dem Hostnamen des Mailservers:
Dieser muss mit dem RDNS-Eintrag übereinstimmen. In unserem Beispiel ist das mailinabox.mustermann-domain.de.
Im nächsten Schritt muss noch die geographische Region in welcher der Server betrieben wird, konfiguriert werden:
Für Deutschland wählen Sie bitte “Europe” und anschließend “Berlin”. Im nächsten Schritt werden Schlüssel und Zertifikate generiert und die Installation der Komponenten beginnt. Dies kann eine Weile dauern.
Der Installer fragt nun noch nach einem Passwort für den Benutzer, der zur Verwaltung des Mailservers dient:
Generieren Sie bitte ein Passwort und legen Sie es fest. Wenn die Installation abgeschlossen ist, erscheint die folgende Meldung:
Rufen Sie jetzt bitte das Webinterface von Mail-in-a-Box auf. Rufen Sie dazu bitte die Seite https://<Ihr-Hostname>/admin
auf. Mail-in-a-Box verwendet an dieser Stelle ein selbstsigniertes Zertifkat. Sie müssen also im Browser eine Ausnahme hierfür hinzufügen. Der individuelle Fingerprint des Zertifikats wurde von Mail-in-a-Box auf der Kommandozeile zum Vergleich angezeigt.
Nach dem Login wird das Ergebnis eines Status-Checks angezeigt:
Alles was im obigen Screenshot grün erscheint sollte auch in ihrem Status-Check auftauchen.
Schritt 5: SSL Zertifikat mit Let’s Encrypt einrichten
Zur Einrichtung eines SSL-Zertifikats klicken Sie bitte im Admin-Panel von Mail-in-a-Box auf “System” > “TLS (SSL) Certificates”. Klicken Sie dort bitte auf “Provision”.
Das Zertifikat für den Mailserver wird automatisch eingerichtet. Nach erfolgter Einrichtung erscheint die folgende Meldung:
Am Fuß der Seite werden eventuell noch Fehlermeldungen zu Zertifikaten angezeigt, die sich auf Domains beziehen, die nicht vom Mailserver verwaltet werden.
Schritt 6: Mehr Sicherheit durch SPF, DKIM, DMARC und DNSSEC
Das folgenden Verfahren bieten zusätzlichen Schutz beim E-Mail-Verkehr. Die Verfahren schützen insbesondere davor, dass nicht von Ihnen autorisierte Mailserver E-Mails mit Ihrer Absenderadresse verschicken, also gegen das sogenannte “Spoofing” Ihrer Absenderadresse.
Das Sender Policy Framework (SPF) Verfahren nach RFC 7208 bietet zusätzlichen Schutz dadurch, dass der Mailserver, welcher Mails von einem Mailserver empfängt in die Lage versetzt wird anhand von DNS-Einträgen zu überprüfen, ob der sendende Mailserver berechtigt ist, E-Mails für die jeweilige Domain zu versenden. Dabei kann z.B. in einem DNS-Eintrag zur Domain eingetragen werden, dass nur Server mit einem MX-Eintrag für diese Domain E-Mail für diese Domain verschicken dürfen.
Bei Verwendung des DomainKeys Identified Mail (DKIM) Verfahren nach RFC 6376 werden ausgehende E-Mails auf dem Mailserver mit einer kryptographischen Signatur versehen. Anhand dieser Signatur kann der empfangende Mailserver mit Hilfe eines Schlüssels aus einem DNS-Eintrag überprüfen, ob die E-Mail tatsächlich vom angegebenen Absender stammt.
Das SPF- und DKIM Verfahren, ermöglichen es zwar dem empfangenden Mailserver zu erkennen, ob der versendende Mailserver berechtigt war, eine E-Mail zu verschicken. Das Domain-based Message Authentication, Reporting and Conformance (DMARC) Verfahren nach RFC 7489 gibt dem versendenden Mailserver zusätzlich die Möglichkeit dem Empfänger über einen DNS-Eintrag mitzuteilen, wie Verfahren werden soll, wenn der Empfänger gefälschte E-Mails zu seiner Domain empfängt.
Sollen die drei Verfahren verwendet werden, müssen die entsprechenden DNS-Einträge im DNS-Server angelegt werden. Die passenden DNS-Einträge schlägt Mail-in-a-Box automatisch vor. Um diese anzuzeigen, klicken Sie bitte auf “System” > “External DNS”.
Es müssen die folgenden DNS-Einträge vom Record-Typ TXT in den DNS-Server von hosting.de übernommen werden:
Für das SPF-Verfahren sind die folgenden Einträge nötig:
mustermann-domain.de TXT v=spf1 mx -all
Einträge, welche für das DKIM-Verfahren nötig sind:
mail._domainkey.mustermann-domain.de TXT v=DKIM1; h=sha256; k=rsa; s=email; p=[individueller Schlüssel]
mail._domainkey.mailinabox.mustermann-domain.de TXT v=DKIM1; h=sha256; k=rsa; s=email; p=[individueller Schlüssel]
Der Wert “[individueller Schlüssel]” ist dabei ein Schlüssel, welcher von Mail-in-a-Box individuell generiert wird. Kopieren Sie bitte die TXT-Records mit Ihren speziell generierten Schlüsseln aus dem Mail-in-a-Box Webinterface und fügen Sie diese in die DNS Server von hosting.de ein.
DMARC Einträge, die Regeln, wie als gefälscht erkannte E-Mails behandelt werden sollen:
_dmarc.mustermann-domain.de TXT v=DMARC1; p=quarantine
_dmarc.mailinabox.mustermann-domain.de TXT v=DMARC1; p=quarantine
Die obigen DNS-Einträge für das DMARC-Verfahren weisen dem empfangenden Mailserver an, gespoofte E-Mails in Quarantäne zu verschieben.
Da alle oben genannten Verfahren auf dem DNS-System aufbauen, ist empfiehlt es sich zusätzlich DNSSEC zu aktivieren um die kryptographische Kette zu schließen. DNSSEC können Sie in dem “Experten-Einstellungen” der Domain des Benutzer-Interfaces von hosting.de aktivieren. Aktivieren Sie dort bitte die beiden Optionen “DNSSEC” und “Keys bei Domain hinterlegen”.
Schritt 7: Anlegen von Postfächern und Aliases
Die Postfächer können im Admin-Panel von Mail-in-a-Box unter
https://mailinabox.mustermann-domain.de/admin
angelegt und verwaltet werden. In Postfächern können E-Mails gespeichert werden, während Aliases E-Mails lediglich an Postfächer auf dem Mailserver selbst oder auf anderen Mailservern weiterleiten können.
Zur Verwaltung der Postfächer gelangt man im Menü über “Mail” > “Users”:
Über “Mail” > “Aliases” kann man die Aliases verwalten:
Schritt 8: Test des Servers
Bevor der Mailserver abschließend in den Betrieb geht sollten einige Überprüfungen vorgenommen werden, die zum einen die korrekte Funktion des Mailservers sicherstellen sollen und zum anderen auch verhindern sollen, dass der Server und dessen IP-Adresse auf einer schwarzen Liste für Mailserver landen oder die Reputation des Servers in Spam-Filtern herabgestuft wird.
Für Mailserver gibt es im Internet einige Tools zur Überprüfung der Konfigurationen, wie z.B.:
- DNS-Einstellungen: Forward und Reverse-Lookup für IPv4 und IPv6
- SSL-Zertifikate
- Überprüfung auf “Open Mail Relay”
Die Seite “MXToolbox” eignet sich z.B. gut um die Konfiguration des Mailservers zu überprüfen. Rufen Sie bitte diese Seite auf. Dort geben Sie in das Eingabefeld des “Super Tool” bitte “smtp:mailinabox.mustermann-domain.de” ein, wobei “mailinabox.mustermann-domain.de” der Hostname des Mailservers ist. Die Ausgabe sollte ähnlich der folgenden Ausgabe sein:
Bitte beachten Sie, dass es je nach eingestellter TTL Ihrer DNS-Einträge sogar einige Tage dauern kann, bis die DNS-Einträge, die Sie im Admin-Panel von hosting.de vorgenommen haben, im Internet verteilt sind, da die DNS-Server im Internet die DNS-Informationen einige Zeit lang im Cache behalten.
Weiterhin sollten Sie die MX-Einträge der Domains, deren E-Mails der Mailserver empfangen soll, überprüfen. Das geschieht mit “mx:mustermann-domain.de” in der “MXToolbox”. Die Ausgabe sollte in etwas wie folgt aussehen:
Schritt 9: Backups
Es empfiehlt sich, regelmäßig Backups des Cloud-Servers zu erstellen. So ist es möglich, im Falle einer Fehlfunktion des Servers oder, wenn ein Benutzer ungewollt E-Mails löscht, diese noch zu retten.
Standardmäßig bringt Mail-in-a-Box eine eingebaute Backup-Funktion mit. Mail-in-a-Box erstellt automatisch täglich nachts ein Backup und speichert es auf dem Server selbst. Im Admin-Panel von Mail-in-a-Box unter “System” > “Backups” kann eingestellt werden, wie oft die Backups angelegt werden sollen:
Die Backups auf dem Mailserver werden automatisch mit dem unter
/home/user-data/backup/secret_key.txt
gespeicherten Schlüssel mit Hilfe von PGP verschlüsselt. Intern wird das Backup-Tool Duplicity verwendet. Es empfiehlt sich, den Backup-Schlüssel einmal herunter zu laden und in einem Passwort-Manager zu speichern.
Die Backups werden unter
/home/user-data/backup/encrypted
gespeichert und automatisch rotiert. D.h. alte Backups werden automatisch unter bestimmten Bedingungen gelöscht.
Vom oben angegeben Ort können die Backups heruntergeladen oder zu anderen Servern übertragen werden. Hierfür kann man z.B. einen Cronjob mit SFTP verwenden.
Man kann gelegentlich die Backups auf den eigenen Rechner kopieren, z.B. über SFTP mit folgendem Befehl:
scp -pr root@mailinabox.mustermann-domain.de:/home/user-data/backup/encrypted ~/meineMailserverBackups/
Die Übertragung der Backups auf einen anderen Server kann Mail-in-a-Box auch selbst übernehmen. Für die Übertragung wird dabei das Rsync Protokoll verwendet. Sie könnten z.B. einen zweiten Cloud-Server buchen, auf dem lediglich Backups gespeichert werden. Diese Funktion kann über das Admin-Interface konfiguriert werden. Die Backups werden weiterhin lokal gespeichert. Eine Konfiguration kann z.B. so aussehen:
Mail-in-a-Box generiert automatisch ein RSA-Schlüsselpaar für den SSH-Login, sodass auf dem Zielsystem der angezeigte öffentliche SSH-Schlüssel eingetragen werden muss. Mail-in-a-Box überträgt dann automatisch die Backups auf den entsprechenden Server.
Schritt 10: Einrichtung von E-Mail-Clients wie Outlook, Thunderbird, Apple Mail & Co
Die Einstellungen passend für Ihre Installation von Mail-in-a-Box für die Einrichtung der E-Mail Clients werden im Admin-Panel von Mail-in-a-Box unter “Mail” > “Instructions” angezeigt.
Es stehen Anleitungen zur Einrichtung des neuen Kontos für verschiedene Clients zur Verfügung:
Wartung und Pflege
Das Betriebssystem aktuell halten
Das Betriebssystem des Mailservers und die darauf installierte, von Ubuntu bereitgestellte Software, sollten regelmäßig aktualisiert werden um eventuell auftretende Sicherheitslücken im System und Fehler zu beheben. Dazu loggen Sie sich bitte per SSH auf dem Mailserver ein und führen die folgenden Befehle aus:
apt update
apt upgrade
Mail-in-a-box aktuell halten
Man sollte neben dem Betriebssystem auch Mail-in-a-Box updaten, wenn neue Versionen erscheinen, besonders dann, wenn Sicherheits-Updates erscheinen. Mail-in-a-Box kündigt neue Versionen auf seinem Twitter Account und im Support-Forum an. Vor dem Upgrade sollte man einen Blick in die Release Notes werfen. Um das Update von Mail-in-a-Box zu starten, loggt man sich per SSH in die Box ein und führt das folgende Skript aus:
curl -s https://mailinabox.email/setup.sh | sudo bash