Mailcow installieren und einrichten

Du möchtest deinen eigenen Mailserver mit Mailcow aufsetzen und weißt nicht genau, wo du anfangen sollst? Kein Problem, ich helfe dir dabei! Mailcow ist eine großartige Lösung, um deinen eigenen E-Mail-Server zu betreiben. Es bietet eine benutzerfreundliche Oberfläche und viele nützliche Funktionen.

Lass uns gemeinsam Schritt für Schritt durch den Installationsprozess gehen, damit du Mailcow im Handumdrehen auf deinem Server zum Laufen bringst. Los geht’s!

Voraussetzungen

Vorbereitungen

Bevor du mit der Installation von Mailcow loslegst, gibt es ein paar Dinge, die du vorher erledigen musst. Es geht hauptsächlich um die DNS-Einstellungen für die Domain, die du für den Empfang und Versand von E-Mails verwenden möchtest. Geh einfach die folgenden Schritte durch:

PTR-Record (Reverse DNS): Richte einen PTR-Record für die IP-Adresse deines Servers ein und setze ihn auf den FQDN deines Servers (normalerweise „mail.deinedomain.de“). Bei den meisten Server-Hostern kannst du diesen Record direkt im Webinterface einstellen, bei einigen musst du dafür vielleicht eine E-Mail oder ein Support-Ticket schicken.

Hostname und FQDN: Dein Server-Hostname sollte am besten „mail“ sein, und der FQDN (Fully Qualified Domain Name) sollte dann „mail.deinedomain.de“ lauten.

A-Record hinzufügen: Füge einen A-Record für die Subdomain „mail“ (also mail.deinedomain.de) hinzu und verlinke ihn mit der IP-Adresse deines Mailservers.

MX-Record setzen: Trage einen MX-Record für deine Domain ein. Der Wert sollte auf die eben angelegte Mail-Subdomain (mail.deinedomain.de) zeigen, und die Priorität setzt du auf „10“.

CNAME-Records für Autodiscover und Autoconfig: Definiere CNAME-Records für die Subdomains „autodiscover“ und „autoconfig“. Der Zielwert dieser beiden Records sollte ebenfalls auf die Mail-Subdomain (mail.deinedomain.de) zeigen.

TXT-Record für SPF: Füge einen TXT-Record für deine Domain hinzu, der den Wert „v=spf1 mx ~all“ hat. Das bedeutet, dass nur der Server, der im MX-Record angegeben ist (also der Mailserver, auf dem Mailcow installiert wird), berechtigt ist, E-Mails mit deiner Domain als Absender zu verschicken. Das „~all“ sorgt dafür, dass E-Mails von anderen Servern zwar nicht zugelassen, aber trotzdem noch zugestellt werden (Softfail).


Klone das Mailcow-Repository in ein Verzeichnis deiner Wahl und passe die Konfigurationsdatei an:

cd /opt
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh

Starte die Mailcow-Container mit Docker Compose:

docker compose pull
docker compose up -d

Firewall konfigurieren
Stelle sicher, dass die notwendigen Ports geöffnet sind (80, 443, 25, 53 ,465, 587, 993, 4190, 873, 11445 & 11335):

ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 25/tcp
ufw allow 587/tcp
ufw allow 993/tcp
ufw allow 465/tcp
ufw allow 4190/tcp
ufw allow 873/tcp
ufw allow 11445/udp
ufw allow 11335/udp
ufw allow 53/tcp
ufw allow 53/udp
ufw enable

Webinterface aufrufen
Öffne deinen Browser und gehe zu https://deine-domain.tld. Du solltest das Mailcow-Login-Interface sehen.

Admin-Zugangsdaten
Die Standard-Admin-Zugangsdaten lauten User: admin und Passwort: moohoo

E-Mail-Konten erstellen
Melde dich im Admin-Interface an und erstelle deine E-Mail-Konten und Domains.

DNS-Einträge konfigurieren

DNS-Einträge setzen
Setze die notwendigen DNS-Einträge für deine Domain (MX, SPF, DKIM, DMARC).


SSL-Zertifikat und HTTPS-Weiterleitung in Mailcow

Mailcow beantragt automatisch ein Let’s Encrypt SSL-Zertifikat für die Domain, die als Hostname festgelegt wurde (über den „acme-mailcow“-Container), es sei denn, diese Funktion wurde in der Konfigurationsdatei explizit deaktiviert. Dadurch kannst du das Mailcow-Webinterface sicher per HTTPS aufrufen. Falls du HTTP-Anfragen automatisch auf HTTPS umleiten möchtest, folge diesen Schritten:

  1. Nginx-Konfigurationsdatei erstellen: Öffne die Konfigurationsdatei mit dem Befehl:
nano /opt/mailcow-dockerized/data/conf/nginx/redirect.conf

2. Inhalt einfügen: Füge nun den folgenden Inhalt in die Datei ein:

server {
  root /web;
  listen 80 default_server;
  listen [::]:80 default_server;
  include /etc/nginx/conf.d/server_name.active;
  if ( $request_uri ~* "%0A|%0D" ) { return 403; }
  location ^~ /.well-known/acme-challenge/ {
    allow all;
    default_type "text/plain";
  }
  location / {
    return 301 https://$host$uri$is_args$args;
  }
}

3. Änderungen speichern: Speichere die Änderungen, indem du STRG + X drückst, dann die „Y“-Taste auswählst und mit Enter bestätigst.

4. Nginx neu starten: Um die Änderungen zu aktivieren, starte Nginx neu mit:

docker compose restart nginx-mailcow

5. Nach diesen Schritten sollten alle HTTP-Anfragen automatisch zu HTTPS umgeleitet werden.


Das war’s! Du hast jetzt deinen eigenen Mailserver mit Mailcow installiert und konfiguriert. Viel Spaß beim Nutzen deines neuen Mailservers!