Mailcow Mailserver installieren

Diese Anleitung zeigt, wie Sie schnell und einfach einen Mailcow (Dockerized) Mailserver installieren können.

Zuletzt aktualisiert am: 05.09.2023

Information
Ich habe diese Anleitung um einige Punkte ergänzt, da mit den letzten Updates sich einiges geändert hat.

Inhaltsverzeichnis


Vorbereitungen

  1. Öffnen Sie auf Ihrem PC ein Terminal. Unter Windows können Sie dafür das Windows Terminal oder die Eingabeaufforderung benutzen. Unter Linux einfach das normale Terminal.
  2. Verbinden Sie sich nun auf Ihrem V- oder Root-Server über SSH mit diesem Befehl: ssh benutzername@server
  3. Bringen Sie das System auf den neusten Stand: apt update && apt upgrade -y
  4. Installieren Sie Git: apt install git -y

DNS Konfiguration

  1. Gehen Sie in Ihren Webbrowser und rufen Sie die Webseite Ihres Domain-Providers auf. Navigieren Sie anschließend zu Ihren Domains.
  2. Erstellen Sie nun folgende DNS Records (IPv6 Records NUR dann erstellen, wenn Ihr Server eine IPv6 Adresse hat!):
    Name Typ Wert
    mail A Ihre IPv4 Adresse des Servers
    mail AAAA Ihre IPv6 Adresse des Servers (Beachten Sie den Hinweis über der Tabelle!)
    autodiscover CNAME mail.ihre-domain.de
    autoconfig CNAME mail.ihre-domain.de
    @ TXT "v=spf1 mx a -all"
    _dmarc TXT "v=DMARC1; p=reject; rua=mailto:mailauth-reports@ihre-domain.de"
  3. Die sog. "Reverse DNS" Konfiguration ist noch notwendig. Nicht alle Hoster bieten das direkt an. Der folgende Eintrag muss für ihre IP angelegt werden:
    Typ Wert
    PTR mail.ihre-domain.de
  4. Die erweiterte DNS Konfiguration, welche optional ist, kann hier nachgelesen werden: https://docs.mailcow.email/de/prerequisite/prerequisite-dns/.

Docker und Docker-Compose Installation

  1. Installieren Sie Docker und Docker-Compose mit dem Befehl: curl -sSL https://get.docker.com/ | CHANNEL=stable sh
  2. Aktivieren Sie den Autostart von Docker. Damit wird der Mailserver dann immer gestartet, wenn das System hochgefahren wird:
    systemctl enable --now docker

Mailcow Installation

  1. Navigieren Sie in das Verzeichnis "/opt/": cd /opt/
  2. Laden (klonen) Sie nun die Mailcow Git-Repository mit dem folgenden Befehl: git clone https://github.com/mailcow/mailcow-dockerized
  3. Navigieren Sie nun in das neue Verzeichnis: cd mailcow-dockerized
  4. Für die weitere Konfiguration muss eine Datei generiert werden. Führen Sie dazu dieses Skript aus: ./generate_config.sh. Benutzen Sie hier die Domain "mail.ihre-domain.de", sofern Sie nach einem Hostnamen gefragt werden.
    Falls notwendig, können Sie nun noch die Mailcow Konfiguration mit nano mailcow.conf anpassen, z.B. wenn Sie bereits schon einen Webserver laufen haben, so müssen Sie eventuell die Ports von Mailcow noch in der mailcow.conf anpassen und die automatische Zertifikatserstellung deaktivieren. Um die automatische Zertifikatserstellung zu deaktivieren, müssen Sie nur in der mailcow.conf die Option "SKIP_LETS_ENCRYPT" auf "y" setzen.
  5. Laden Sie nun die benötigten Images herunter und starten Sie den Docker-Stack:
    docker compose pull
    docker compose up -d
  6. Standardmäßig wird für die eingegebene URL (mail.ihre-domain.de) ein SSL-Zertifikat von Let's Encrypt beantragt, sofern oben nicht deaktiviert.

Mailcow einrichten

  1. Rufen Sie das Mailcow Webinterface auf. Nutzen Sie dafür Ihre Mail-Domain und hängen Sie, falls bei Ihnen erforderlich, noch einen Port an.
  2. Melden Sie sich nun mit den folgenden Daten an:
    Benutzername admin
    Passwort moohoo
  3. Ändern Sie als erstes das Passwort vom Admin-Benutzer. Klicken Sie dafür einfach auf den Knopf "Bearbeiten" neben dem Benutzer "admin".
  4. Wechseln Sie nun zur E-Mail Konfiguration, indem Sie auf den Reiter "E-Mail" und anschließend auf "Konfiguration" klicken.
  5. Fügen Sie nun eine neue Domain hinzu. Nutzen Sie dafür den Button "Domain hinzufügen". Nutzen Sie folgende Optionen:
    Domain ihre-domain.de
    Beschreibung Beschreibung Ihrer Wahl
    Max. mögliche Aliasse 400 (höher oder niedriger sofern gewünscht)
    Max. mögliche Mailboxen 50 (höher oder niedriger sofern gewünscht)
    Standard-Quota einer Mailbox
    (Standardmäßiger Speicherplatz einer Mailbox)
    4048 (mehr oder weniger sofern gewünscht)
    Max. Speicherplatz pro Mailbox (MiB)
    (Speicherplatz welchen alle Mailboxen zusammen haben dürfen)
    12240 (mehr oder weniger sofern gewünscht)
    Domain-Speicherplatz gesamt (MiB)
    (Speicherplatz welchen die Domain einnehmen darf)
    12240 (mehr oder weniger sofern gewünscht)
    Rate limit
    (Wieviele Nachrichten pro Sekunde/Minute/Stunde/Tag gesendet werden dürfen)
    frei lassen sofern nicht gewünscht
    Selector dkim
    DKIM-Schlüssellänge (bits) 1024
    Wählen Sie nun "Domain hinzufügen und SOGo neustarten" aus.
  6. Navigieren Sie zum Reiter "Mailboxen" und erstellen Sie eine Mailbox mithilfe des Buttons "Mailbox hinzufügen". Ich empfehle folgende Mailboxen zu erstellen (kann auch als Alias gemacht werden):
    • admin@ihre-domain.de
    • postmaster@ihre-domain.de
    • mailauth-reports@ihre-domain.de
  7. Für einen erweiterten Spam-Schutz empfielt es sich, die Spamhaus Blocklisten zu benutzen. Wie das funktioniert, hat das Mailcow Team in diesem Beitrag gezeigt.
    In Kurzform: Anmelden, Key erstellen, Key kopieren, Key in mailcow.conf einfügen, Mailcow stoppen und wieder starten
  8. Ihre Mailcow ist nun erstmal eingerichtet. Es ist empfehlenswert die DKIM-Konfiguration durchzuführen, welche hier im nächsten Schritt erklärt wird.

Optional: MTA-STS Konfiguration

  1. MTA-STS sorgt dafür, dass ein Server eine TLS Verbindung mit ihrem Server aufbauen muss!, um von ihrem Server akzeptiert zu werden.
  2. Folgende DNS Einträge müssen erstellt werden:
    Name Typ Wert
    mta-sts A IPv4 Adresse ihres Servers
    mta-sts AAAA IPv6 Adresse ihres Servers
    _mta-sts TXT v=STSv1; id=20220231031800Z
    _smtp._tls TXT v=TLSRPTv1; rua=mailto:monitoring@ihre-domain.de
  3. Auf der Mailcow muss nun noch die folgende Datei mit folgendem Inhalt erstellt werden: nano /opt/mailcow-dockerized/data/web/.well-known/mta-sts.txt Inhalt: version: STSv1
    mode: enforce
    max_age: 15552000
    mx: mail.ihre-domain.de
    mx: *.ihre-domain.de
    Achtung!
    Ihre Mailcow Oberfläche muss! über ein valides SSL Zertifikat verfügen!

DKIM-Konfiguration

  1. Klicken Sie auf den Reiter "Konfiguration" und wählen Sie "Server-Konfiguration" aus.
  2. Navigieren Sie nun auf den Reiter "Konfiguration" und wählen Sie "ARC/DKIM-Keys" aus.
  3. Falls schon einer bei der Domain erstellt wurde, kann jener gleich genutzt werden. Kopieren Sie sich dazu einfach den Inhalt des großen Textfelds. Falls noch keiner erstellt wurde, können die Einstellungen unten so belassen werden (als Schlüssellänge reichen 1024 Bits). Es muss lediglich noch die Domain ausgewählt werden.
  4. Fügen Sie nun bei Ihrem Domain Hoster folgenden Record hinzu:
    Name Typ Wert
    dkim._domainkey TXT kopierter Inhalt der grauen Textbox

Webmail Client SOGo

Einen Webmail Client ist mit an Board der Mailcow. SOGo ist ein Open-Source Webmail Client, welcher auch Support für Cal- und Card-DAV bietet. Sie können mit SOGo auch die Ordnerverwaltung und Komprimierung vornehmen.
Um SOGo aufzurufen, können Sie einfach ein "/SOGo/" an die URL ranhängen. Geben Sie dann das vollständige Postfach (z.B. admin@ihre-domain.de) und das entsprechende Passowrt ein.

Drittanbieter E-Mail Clients

Um sich z.B. mit Outlook oder Thunderbird einzuloggen, müssen Sie folgende Daten im Client angeben:

Server Posteingang Postausgang
Protokoll SMTP IMAP
Server-Adresse mail.ihre-domain.de mail.ihre-domain.de
SSL SSL/TLS SSL/TLS
Port 465 993
Authentifizierung Passwort normal oder Klartext Passwort normal oder Klartext

Für weitere Informationen bezüglich Mailcow können Sie die Mailcow Dokumentation besuchen.