Mailserver mit VirtualMailManager, Postfix und Dovecot

Möchte man seinen eigenen Mailserver betreiben, stehen einem diverse Möglichkeiten zur Verfügung. Entweder setzt man auf eine Lösung, die einem möglichst viele Aufgaben abnimmt und sich durch einen geringen Installations- und Konfigurationsaufwand auszeichnet oder man wählt das andere Extrem und übernimmt möglichst viele Aufgaben selbst. Ich habe vor einigen Jahren eine Lösung gefunden, die für mich einen guten Kompromiss bildet. Mit dem VirtualMailManager ist man in der Lage, alle wichtigen Einstellungen wie Domains, Konten und Aliase mit einer Kommandozeilen-Anwendung zu verwalten und gleichzeitig bleibt man flexibel bei der Konfiguration von Dovecot und Postfix.

Aufbau des Mailserver

Der Begriff Mailserver ist nicht ganz eindeutig, da im Prinzip schon ein einfacher SMTP-Server (Postfix, Exim, Sendmail) ein Mailserver ist. Die Bezeichnung Mail-Transfer-Agent (MTA) ist für einen SMTP-Server zutreffender und beschreibt die Funktion schon sehr gut. Ein SMTP-Server transportiert die Mails lediglich zu einem anderem SMTP-Server oder, falls die Mail für den Mailserver selbst bestimmt ist, die Mail wird an den Mail-Delivery-Agent weitergeleitet (z.B. Dovecot), welcher die Mail dann dem entsprechendem Postfach zuweist. Der Benutzer hat dann die Möglichkeit, die Mail mit seinem Mail-User-Agent (der Client, z.B. Thunderbird oder K-9 Mail) abzurufen.

Voraussetzungen für den Mailserver

Ich gehe hier, wie in der Überschrift erwähnt, von einem vollständigen Mailserver mit MTA und MDA aus. Eingesetzt werden der VirtualMailManager, Postfix, Dovecot und PostgreSQL. Auf die PostgreSQL Datenbank greifen dann alle Anwendungen zu.

Ich setze für den Mailserver Debian 8 ein, welches glücklicherweise alle notwendigen Pakete in den Paketquellen bereitstellt. Abgesehen hiervon sind noch ein paar Dinge absolut notwendig:

  • statische IP Adresse
  • Hostname als A-Record im DNS, welcher auf die IP Adresse verweist
  • Reverse-DNS (PTR) Eintrag (kann durch den Provider der IP Adresse vorgenommen werden; manchmal über die Weboberfläche des Providers/Hosters möglich)
  • MX-Record mit dem Hostnamens des Mailserver im DNS für die Zone (Domain), welche Mails empfangen/senden soll
  • Ein SSL-Zertifikat (Tipp: kostenlose Zertifikate gbit es bei Let’s Encrypt)
  • Einige TCP-Ports in der Firewall öffnen (hängt von den eingesetzten Protokollen ab):
    • 25: SMTP
    • 465: SMTPS
    • 587: Submission (für SMTP-Verbindung der Clients empfohlen)
    • 110: POP3
    • 995:  POP3S
    • 143: IMAP
    • 993: IMAPS

Im Prinzip funktioniert der Mail-Transport auch mit einer dynamischen IP-Adresse und ohne Reverse-DNS Eintrag, aber kein vernünftiger Mail-Server akzeptiert E-Mails von solchen Servern. Eine Ausnahme bilden in der Regel authentifizierte Clients, sonst könnten die meisten Benutzer keine E-Mails versenden.

Installation der Software

Als Debian 8 Jessie Nutzer brauche ich im Gegensatz zu älteren Distributionen keine Pakete mehr selbst bauen, die Installation ist also einfach:

Konfiguration der Software

Ich empfehle jedem, der VMM einsetzen möchte, sich die VMM Dokumentation sehr ausführlich durchzulesen. Dort sind alle notwendigen Schritte erklärt, man muss nur ein wenig aufpassen, dass man nicht ausversehen Teile der Konfiguration für Dovecot 1.x übernimmt, da auch diese ältere Version unterstützt wird und sich in der Dokumentation wiederfindet. Ich beschreibe die Konfiguration hier bewusst nicht, da es im Prinzip auf Copy & Paste hinauslaufen würde.

Auf zwei Dinge möchte ich noch hinweisen:

Erstens verwendet VMM unter Debian standardmäßig SHA512-CRYPT, um Kennwörter abzuspeichern. Bei einigen Clients ist das leider problematisch, weswegen ich in der /etc/vmm/vmm.cfg  CRAM-MD5 eingetragen habe:

Generell können aber verschiedene Verfahren für die Speicherung der Kennwörter verwendet werden, diese Einstellung beeinfluss lediglich den Standard von VMM.

Zweitens bietet es sich an, automatisch ein Postmaster Postfach anzulegen, falls man hierfür keinen Alias verwenden möchte. Dies kann in der gleichen Konfigurationsdatei eingestellt werden.

Benutzung und Test

Wenn alles installiert und konfiguriert ist, sollte man verifizieren, dass alles wie gewünscht funktioniert. Zuerst kann man vmm v  die Version des VirtualMailManagers angezeigt werden:

Als nächstes fügt man eine Domain und ein Postfach hinzu:

Treten hierbei keine Fehler auf, sollte VMM korrekt mit der Datenbank kommunizieren können. Es ist außerdem sehr zu Empfehlen, postmaster@example.org als eigenständiges Postfach oder als Alias anzulegen, da dies eine reservierte Adresse ist, die auf jedem Mailserver verfügbar sein sollte. Den angelegten Nutzer kann man nun mit dem eben vergebenen Passwort in einen Mail-Client eintragen. Ab hier sollte man in einem Terminal den Befehl tail -f /var/log/mail.log  ausführen und die Logdatei im Auge bahalten. Sollten Fehler auftreten, werden diese dort erscheinen.

Die DNS-Records können übrigens leicht und schnell mit dig  überprüft werden:

Eine Test-Mail kann auch schnell auf der Konsole versendet werden:

Treten in der mail.log keine Fehler mehr auf, sollten soweit alles funktionieren. Trotzdem sollte man das Senden und Empfangen mit einem anderen E-Mail Konto testen, da eine E-Mail zwar vielleicht erfolgreich angenommen, aber aus irgend einem Grund als Spam markiert wurde.

Ein Gedanke zu „Mailserver mit VirtualMailManager, Postfix und Dovecot

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.