Wenn man einen eigenen Mailserver betreiben will, ist Mailcow eine hervorragende Wahl. Es bündelt alle wichtigen Dienste, die man für einen sicheren und funktionierenden Mailserver braucht. Eines sollte man aber beachten: Ein eigener Mailserver ist kein Selbstläufer. Man muss ihn regelmäßig warten und kontrollieren, um zu verhindern, dass er zur nächsten Spamschleuder wird. Diese Verantwortung gehört dazu und sollte nicht unterschätzt werden.
Wenn man Mailcow auf einem VPS installieren will muss man abklären, ob man den Port 25 freigeben kann, beziehungsweise freigeben lassen kann vom Anbieter. Der wird benötigt, damit der Mailserver mit den anderen Mailservern kommunizieren kann. Bei meinem Anbieter hat zum Beispiel eine Mail gereicht, mit der Bitte mir den Port 25 freizugeben da ich einen eigenen Mailserver betreiben möchte.
Ist dies erledigt, geht es weiter. Wir benötigen eine Subdomain. Am besten mail.deinedomain.de. Ein A-Record muss für die Subdomain erstellt sein und auf den Mailserver zeigen, außerdem muss ein PTR – Record (Reverse DNS) vorhanden sein. Bei manchen Anbietern, gibt man diesen direkt in der Verwaltung für den Server ein. Der Record wäre in unserem Fall, mail.deinedomain.de.
Dann benötigen wir zwei CNAME Records. Einmal autodiscover und einmal autoconfig. Beide müssen auf mail.deinedomain.de zeigen.
Einen MX Eintrag benötigen wir auch noch, in dem wir unseren Mailserver (mail.deinedomain.de) eintragen mit der Priorität 10.
Nun fehlt noch ein TXT Record. Hier fügen wir dann v=spf1 mx -all ein. Ich bevorzuge hier -all statt ~all. Das bedeutet, dass nur der Server berechtigt ist Mails zu versenden, der auch im MX Eintrag angegeben ist. Alle anderen Server die versuchen Mails über unsere Domain zu verschicken, werden nicht zugestellt.
Nun loggen wir uns im Terminal auf unserem Server ein, wechseln mit sudo su zum root Benutzer und starten als erstes ein Update:
apt update
Code-Sprache: Bash (bash)
Sollten Updates verfügbar sein, installieren wir diese als nächstes:
apt upgrade -y
Code-Sprache: Bash (bash)
Nun müssen wir noch einige Pakete installieren, die wir für die Installation und den späteren Betrieb benötigen:
apt install curl nano git apt-transport-https ca-certificates gnupg2 software-properties-common -y
Code-Sprache: Bash (bash)
Bevor wir nun Docker installieren , fügen wir als erstes den Key der Docker Paketquellen hinzu. Achtet darauf, ob ihr Debian oder Ubuntu nutzt.
Debian:
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Code-Sprache: Bash (bash)
Ubuntu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Code-Sprache: Bash (bash)
Jetzt fügen wir die eigentlichen Paketquellen zu unserem System hinzu. Auch hier darauf achten ob Debian oder Ubuntu.
Debian:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list
Code-Sprache: Bash (bash)
Ubuntu:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list
Code-Sprache: Bash (bash)
Nun aktualisieren wir erneut die Paketlisten mit:
apt update
Code-Sprache: Bash (bash)
Der nächste Schritt ist jetzt die Installation von Docker. Dies erledigen wir mit folgendem Befehl:
apt install docker-ce docker-ce-cli -y
Code-Sprache: Bash (bash)
Als nächstes laden wir uns nun Docker-Compose herunter:
curl -L https://github.com/docker/compose/releases/download/v$(curl -Ls https://www.servercow.de/docker-compose/latest.php)/docker-compose-$(uname -s)-$(uname -m) > /usr/local/bin/docker-compose
Code-Sprache: Bash (bash)
Nun müssen wir Docker-Compose noch ausführbar machen. Dies erreichen wir mit:
chmod +x /usr/local/bin/docker-compose
Code-Sprache: Bash (bash)
Jetzt wechseln wir in das Verzeichnis /opt:
cd /opt
Code-Sprache: Bash (bash)
Jetzt holen wir uns Mailcow von GitHub mit folgendem Befehl
git clone https://github.com/mailcow/mailcow-dockerized
Code-Sprache: Bash (bash)
und wechseln in das Verzeichnis mailcow-dockerized.
cd mailcow-dockerized
Code-Sprache: Bash (bash)
Jetzt müssen wir für Mailcow die Konfigurationsdatei erstellen.
./generate_config.sh
Code-Sprache: Bash (bash)
Hier werden wir jetzt dazu aufgefordert den FQDN (Fully Qualified Domain Name) anzugeben. Hier geben wir mail.deinedomain.de ein. Die Zeitzone können wir mit Enter (Europe/Berlin) bestätigen. Als Branch wählen wir ‚master‘. Dabei handelt es sich um eine stabile und Produktionsreife Version der Software.
Die Konfigurationsdatei können wir nun bearbeiten, falls wir Änderungen vornehmen müssen. Wenn zum Beispiel Nginx schon auf dem Server installiert ist und dadurch der Port schon belegt ist und wir diesen für den Adminbereich von Mailcow ändern müssen.
nano mailcow.conf
Code-Sprache: Bash (bash)
Nun laden wir uns das nötige Docker Image herunter und starten den Mailcow Container.
docker-compose pull
Code-Sprache: Bash (bash)
docker-compose up -d
Code-Sprache: Bash (bash)
Nun können wir Mailcow im Browser aufrufen mit unserer Subdomain https://mail.deinedomain.de/admin. Als erstes loggen wir uns ein Mit dem Benutzer Admin und dem Passwort moohoo. Danach geht’s sofort in den Bereich System > Konfiguration > Administrator bearbeiten. Da ändern wir als erstes das Passwort und bei Bedarf auch den Benutzernamen des Admins. Weg vom Standard finde ich persönlich immer besser. Zusätzlich sollten wir natürlich auch noch eine MFA wählen.
Unter Email > Konfiguration, können wir nun unsere erste Domain hinzufügen. Wenn wir dies erledigt haben, können wir uns bei der Domain auch die DNS Einstellungen anzeigen lassen, die Mailcow erwartet und wie sie aktuell wirklich sind.
Nun können wir endlich unsere erste Mailbox einrichten. Ob alles richtig konfiguriert ist und unsere Mails auch zugestellt werden können oder ob es noch Punkte gibt, die unsere Mails als Spam erscheinen lassen könnten, lässt sich testen auf https://mail-tester.com.
Schreibe einen Kommentar