Das Mailserver-Paket Mailcow

Mailkuh

Open-Source- oder freie Software, um einen Mailserver zu betreiben, gibt es genug. Aber angesichts hunderter Konfigurationsoptionen ist es nicht einfach, die Software in Betrieb zu nehmen. Mailcow packt die Mailserver Postfix und Dovecot samt Webmailer in ein Paket und bietet zur Administration ein grafisches Frontend. Wir beschreiben die Installation.
Während die IT-Budgets in kleineren Unternehmen oft überschaubar ausfallen, sind die Anforderungen dieselben wie in großen Firmen. Die April-Ausgabe widmet ... (mehr)

Entstanden ist Mailcow [1] für Debian-Server, aber mittlerweile unterstützt es auch Ubuntu. Wir haben zum Test Debian 8 verwendet. Zur Installation laden Sie zuerst aus dem Github-Repository das aktuelle Release herunter, in unserem Beispiel war das die Version 0.14:

$ wget https://github.com/andryyy/mailcow/archive/v0.14.tar.gz
$ tar xf v0.14.tar.gz
$ cd mailcow-0.14

In diesem Verzeichnis liegt die Datei "mailcow.config", in der Sie alle Einstellungen finden, die für die Installation nötig sind. Dies sind vor allem der Hostname ("sys_hostname") und die Domain ("sys_domain") des Mailservers sowie die Auswahl des eingesetzten Webservers (Nginx oder Apache). Bei der Datenbank können Sie zwischen MySQL und Maria­DB wählen, aber nur, wenn Sie sich beim Webmailer für Roundcube entscheiden – SOGo funktioniert nur mit MySQL. Die meisten Einstellungen können Sie im Normalfall so belassen. Passwörter vergeben Sie entweder manuell in der Konfigurationsdatei oder lassen sie bei der Installation erzeugen (und nach Abschluss anzeigen).

Die Installation starten Sie, indem Sie mit Root-Rechten das Skript »./install.sh« ausführen. Später starten Sie Updates mit einem zusätzlichen Parameter: »./install.sh -u« . Außerdem liegt ein Skript bei, mit dem Sie Mailcow wieder vom System entfernen. Dabei können Sie entweder die Datenbank und Mails behalten ( »./purge.sh« ) oder alles komplett löschen ( »./misc/purge.sh --all« ).

Die Installation von Let’s Encrypt [2] schlug bei uns fehl, weil zum Zeitpunkt der Installation der Port 80 auf dem Mailserver nicht geöffnet war, den Let’s Encrypt verwendet, um die Identität des Servers zu verifizieren. Eine Neuinstallation der LE-Zertifikate lässt sich aber mit ./install -s starten. Ein Protokoll der Installation einschließlich der erzeugten Passwörter, die der Installer auch beim Start anzeigt, ist anschließend im "installer.log" zu finden. Die Entwickler empfehlen, diese Datei auf einen sicheren Rechner zu kopieren und auf dem Server zu löschen.

Nach der Installation melden Sie sich als Admin im Webbrowser beim Server an, wo Sie sich im allgemeinen Verwaltungsbereich wiederfinden. Hier erledigen Sie die Grundkonfiguration des Mailservers Postfix (siehe Bild). Allerdings führt auch in Mailcow kein Weg daran vorbei, sich mit den Postfix-Konfigurationsanweisungen wie "permit_sasl_authenticated" oder "permit_mynetworks" zu beschäftigen. Immerhin bekommen Sie übersichtlich angezeigt, welche Optionen aktiv sind und welche nicht. Die im Webinterface angebotenen Optionen sind in der Mailcow-Konfigurationsdatei "inc/vars.inc.php" festgelegt, die Sie nach eigenen Wünschen erweitern können.

DKIM inklusive

Mit den Privacy-Einstellungen entfernen Sie vor dem Verschicken einzelne Mail-Header wie etwa "User-Agent", die Informationen über Anwender preisgeben. Auch DKIM-Records (DomainKeys Identified Mail), die die Identität eines Mailversenders sicherstellen sollen, können Sie schon hier einrichten (allerdings später auch noch separat für die einzelnen Domains). Schließlich können Sie sich über den verfügbaren Speicherplatz informieren und über einige Graphen die Auslastung des Servers einsehen.

Wenn Sie im oberen Configuration-Menü "Mailboxes" auswählen, gelangen Sie zum Management der Mail-Domains, für die Sie sich zuständig fühlen, sowie der zugehörigen User-Accounts und Aliase. Hier müssen Sie für jede Domain ein Quota angeben, das den zulässigen Verbrauch an Plattenplatz bestimmt. Auch für jeden Benutzer gibt es ein obligatorisches Quota. Ohne Quotas zu arbeiten, ist in der aktuellen Version nicht möglich. Hier müssen Sie sich damit behelfen, den maximal verfügbaren Speicherplatz anzugeben, was aber eher mühsam ist, wenn Sie eigentlich gar keine Quotas brauchen.

Wenn Sie mindestens eine Domain und einen User angelegt haben, können Sie sich als Admin abmelden und als dieser Benutzer wieder am Admin-Interface einloggen. Interessant sind dort die temporären E-Mail-Aliase, deren Gültigkeitsdauer Sie festlegen können. Auch die Empfindlichkeit des Spam-Filters stellen Mail-User dort ein, genauso wie die Encryption-Policy, die TLS-Verschlüsselung beim Mailversand obligatorisch macht. Dies kann allerdings dazu führen, dass Mails verloren gehen, die diese Anforderungen nicht erfüllen, wie das Webinterface an dieser Stelle warnt.

Alternativ zum Login am Mailcow-Interface können sich Anwender an einer der installierten "Mailcow-Apps" anmelden, von denen es derzeit nur SOGo und Round­mail gibt. In unserem Beispiel wurde der Webmailer Roundmail installiert, der sich somit über den entsprechenden Button starten lässt. Hierzu gibt es nicht viel zu sagen, außer, dass der IMAP-Server von Roundmail erreichbar sein muss. Eine Fehlermeldung wie "Connection to storage server failed" weist darauf hin, dass es hier Probleme gibt. Mehr Informationen finden Sie im Roundcube-Errorlog "/var/www/mail/rc/logs/errors". Der Hostname des IMAP-Servers ist in "/var/www/mail/rc/config/config.inc.php" hinterlegt, die Portnummer ist normalerweise 143. Weitere wichtige Ports sind der SMTP-Submission-Port 587 und der SMTPS-Port 465. Eine vollständige Liste von Ports ist auf der Github-Seite von Mailcow zu finden.

Leider war Roundcube zum Zeitpunkt der Installation nicht ganz aktuell – das ist eben ein Nebeneffekt, wenn Anwendungen wie Mailcow andere Programme bundeln: Sie müssen sie dann auch immer aktuell halten. Während Mailcow noch Roundcube 1.2.1 installierte, gab es von dem Webmailer schon die Version 1.2.3 mit wichtigen Sicherheits-Updates. Der Mailcow-Entwickler kommentierte allerdings auf Github, dass seine Software die von der Sicherheitslücke betroffene PHP-Funktion nicht nutze.

In der Mailcow-GUI lassen sich die Postfix-Einschränkungen konfigurieren.

Installation mit Docker

Eine Alternative zur manuellen Installation ist ein Ensemble von Docker-Images, das die Mailcow-Entwickler zur Verfügung stellen. Dabei läuft jeder Dienst gemäß der reinen Docker-Lehre in einem eigenen Container. Insgesamt sind das elf Container. Darüber hinaus umfasst die Docker-Installation noch fünf Docker-Volumes, in denen die Benutzerdaten dauerhaft gespeichert werden – die Container selbst sind ja flüchtig und werden jeweils beim Beenden gelöscht. Ein eigenes Bridge-Network verbindet die Container untereinander.

Die Installation der Docker-Mailcow erschöpft sich dann darin, das Docker-Compose-File herunterzuladen und mit »docker-compose up -d« die Container zu starten. Nun müssen Sie eine Zeit lang warten, bis Sie sich mit "admin/moohoo" am Webinterface anmelden können.

Sie konfigurieren die Docker-Installation, indem Sie die Datei "mailcow.conf" im gleichen Verzeichnis editieren, bevor Sie »docker-compose up -d« ausführen. Mit »./generate_config.sh« erledigen Sie die Konfiguration interaktiv. Sie stoppen alle Container wieder, indem Sie im Verzeichnis, in dem sich "docker-compose.yml" befindet, »docker-compose stop« eingeben. Haben Sie genug von der Docker-Installation, entfernen Sie die Container mit »docker-compose rm« . Hängen Sie noch "-v" an, um alle erzeugten Volumes zu löschen, sonst müssen Sie diese später von Hand entfernen.

Letzten Endes bringt die Docker-Variante gegenüber der manuellen Installation keine Vorteile, im Gegenteil: Der Installer ist benutzerfreundlich, einfach und bietet mehr Flexibilität als der Docker-Ansatz. Wer sich aber für Docker interessiert, findet in der Container-Variante von Mailcow immerhin eine halbwegs komplexe Anwendung, die über eine größere Zahl von Containern verteilt ist und somit sehr gut als Anschauungsmaterial dienen kann.

Ähnliche Artikel

comments powered by Disqus
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023