SMB Test Lab – Mailserver mit Postfix und Dovecot

Bis jetzt können die Anwender in dem Test Lab nur im Internet surfen und irgendwelche Textdateien speichern. Dabei ist das liebste Kind neben dem Surfen, das Schreiben von E-Mails. Das dies zum Kampf gegen Windmühlen ausarten kann, hat schon Don Quijote de la E-Mail Korbinian kürzlich in Facebook festgehalten:

Kampf gegen Windmühlen. Eine Email geschrieben fünf neue im Posteingang.

Doch bevor wir den Kampf gegen die E-Mail-Flut starten können, brauchen wir in unserer Testumgebung einen funktionierenden Mailserver. Und wie in der Realität nehmen wir dazu unseren INET Server (in der Schaugrafik Server ISP). Hierbei handelt es sich um eine virtuelle Maschine mit Ubuntu, die direkt mit der Netzwerkkarte verbunden ist und eine IP-Adresse aus dem lokalen Netzwerk bezieht. In meinem Fall ist das die 192.168.1.105. Es empfiehlt sich dem Server entweder eine feste IP-Adresse zu geben oder diese am DHCP-Server auf statisch zu setzen.

Funktionsschema E-Mail abrufen und versenden
Funktionsschema E-Mail abrufen und versenden

Am Ende will ich die ausgehenden Mails aus Odoo über den SMTP-Dienst des INET-Servers über eine gesicherter Verbindung versenden können, bzw. alle Clients aus dem Corpnet sollen sich über eine gesicherte Verbindung mit dem Mailserver verbinden können.

Email Einstellungen in Odoo
Email Einstellungen in Odoo

Postfix und Dovecot installieren

Als erstes melden wir uns per Konsole am Server an. Ich habe dafür Putty verwendet, weil der Server auf einer virtuellen Maschine unter Windows 10 läuft. Mit dem folgenden Befehl installieren und konfigurieren wir die notwendigen Pakete als root.

Mit dem Kommando installieren wir Postfix (SMTP) und Dovecot (IMAP)

Im ersten Schritt der Postfix Konfiguration wählen wir OK aus und drücken die Entertaste.

Als allgemeine Art der Konfiguration wählen wir Internet-Site, wir wollen einen voll funktionstüchtigen Mailserver bauen, wählen OK aus und bestätigen dies wieder mit der Entertaste.

Anschließend müssen wir einen Domain-Namen (System-E-Mail-Name) für unseren Mail-Server angeben. Ich habe hier die Domain der Test Lab Umgebung contoso.local angegeben, anschließen OK ausgewählt und mit der Entertaste bestätigt.

Bevor wir mit der Konfigurationsorgie beginnen, sichern wir uns zuerst im Verzeichnis postfix die Dateien main.cf und master.cf weg. Das wechseln wir mit folgenden Kommando das Verzeichnis.

Mit den folgenden zwei Kommandos erstellen wir die Sicherheitskopien:

Danach können wir mit einem einfachen exit in Root verlassen.

Zertifikate mit OpenSSL erstellen

Wie Eingangs erwähnt, wollen wir später verschlüsselt mit unserem Mailserver kommunizieren. Darum erstellen wir uns vor der eigentlichen Konfiguration die benötigten Zertifikate mit OpenSSL. In einer produktiven Umgebung würde ich hier natürlich den Dienst Let’s Encrypt verwenden.

Um die digitalen Zertifikate zu erstellen, geben wir jetzt nacheinander folgende Kommandos in die Bash ein:

Beim Anlegen des Server Keys werden wir nach einem Passwort gefragt. Hier gibt Ihr euer GeHeim.es Passwort ein und wiederholen es anschließend.

Beim Erstellen der Zertifikatsanforderung werden einige Punkte abgefragt. Wichtig ist hier der Common Name. Der sollte auf den Namen Eurer E-Mail-Domain ausgestellt sein, z.B. contoso.local.

Mit den letzten beiden Kommandos werden die gerade erstellten Zertifikate nur noch in die entsprechenden Ordner kopiert. Mit sudo -i können wir dann wieder in den root-Modus wechseln um mit der Konfiguration zu beginnen.

Benutzer anlegen

Bevor wir den ersten Benutzer mit E-Mail-Adresse anlegen, legen wir uns ein paar Verzeichnisse unter /etc/skel an, deren Inhalt dann in das Home-Verzeichnis des Benutzers kopiert wird und zur Aufnahme der E-Mails dient. Dazu benutzen wir folgende Kommandos in der Bash.

Folgender Screenshot zeigt wunderbar, was herauskommt, wenn ein Druckfehler in der Vorlage vorhanden ist. Mit dem folgenden Kommando legen wir unseren User an:

Beim anlegen des Benutzers müssen wir ein geheimes Passwort vergeben und es werden eine Reihe von Informationen zum Benutzer abgefragt.

Ob alles geklappt hat, können wir mit den folgenden zwei Kommandos überprüfen:

Jetzt können wir schon unseren SMTP-Dienst testen. Dafür wollen wir jetzt aber keine Telnet-Orgien veranstalten, sondern nutzen dafür das kleine Tool Swaks. Wir installieren das mit folgendem Kommando.

Anschließend können wir Swaks mit folgendem Kommando nutzen um die Funktion zu überprüfen.

Wenn das Ergebnis wie im Screenshot unten aussieht, ist alles in Ordnung.

Postfix-Grundkonfiguration

Am Ende der Postfix Konfigurationsdatei /etc/postfix/main.cf fügen wir folgenden Zeilen ein.

Dovecot

Als erstes editieren wir die Datei /etc/dovecot/conf.d/10-mail.conf.

Hier suchen wir uns die Zeile mail_location = mbox:~/mail:INBOX=/var/mail/%u und ändern diese wie folgt ab.

Wir speichern die Änderungen und öffnen anschließend die Datei /etc/postfix/main.cf nochmal um die folgenden drei Zeilen anzuhängen.

Jetzt aktivieren wir das SASL-Verfahren in Dovecot, in dem wir die Datei /etc/dovecot/conf.d/10-master.conf öffnen. Dort suchen wir uns den Block service auth und kommentieren ihn aus. Anschließend hängen wir folgenden Block an.

Abschließend müssen wir noch zwei Zeilen in der Datei /etc/dovecot/conf.d/10-auth.conf anpassen.

Datei schließen und die Dienste oder Server einmal neu starten.

Port 587 und 993 für den sicheren Zugriff aktivieren

Bis jetzt nimmt unser Mailserver nur Anfragen auf Port 25 SMTP und Port 143 IMAP entgegen. Das werden wir jetzt ändern und auf die Ports 587 für SMTP und 993 für IMAP ändern. Dazu öffnen wir die Konfigurationsdatei /etc/postfix/master.cf um kommentieren den submission-Block aus:

Das können wir jetzt wieder mit dem folgenden Kommando in Swaks testen:

Um jetzt die Transportverschlüsselung auch bei Dovecot zu aktivieren öffnen wir die Datei /etc/dovecot/conf.d/10-master.conf und suchen den Block service imap-login. Diesen ändern wir wie folgt ab.

Jetzt müssen wir nur noch die Datei /etc/dovecot/conf.d/10-ssl.conf ändern und schon sind wir fertig. Dazu suchen wir uns die Zeile ssl, ssl_cert, ssl_key und ssl_protocols in der Datei und ändern sie wie folgt ab.

Anschließend starten wir den Dienst Dovecot mit systemctl restart dovecot neu und können über die folgenden Befehle testen, ob wir alles richtig eingerichtet haben:

Jetzt können wir uns daran machen, auf Client1 Outlook oder Thunderbird zu installieren und zu testen, ob das ganze auch damit funktioniert. Dazu gibt es aber eine eigene Anleitung.

[Update]:

In der Datei /etc/dovecot/dovecot.conf muss folgende Zeile angehängt werden, damit die Mails auch im Postfach landen:

Dann klappt es auch mit dem Nachbarn!

2 Gedanken zu „SMB Test Lab – Mailserver mit Postfix und Dovecot“

Schreibe einen Kommentar

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