diff --git a/public/API/mainMenu.json b/public/API/mainMenu.json index 0824172..51538ca 100644 --- a/public/API/mainMenu.json +++ b/public/API/mainMenu.json @@ -92,6 +92,11 @@ "name": "Nextcloud auf Proxmox", "url": "/anleitungen/nextcloud.html", "type": "link" + }, + { + "name": "Mailcow E-Mail Server", + "url": "/anleitungen/mailcow.html", + "type": "link" } ] }, diff --git a/public/anleitungen/mailcow.html b/public/anleitungen/mailcow.html new file mode 100644 index 0000000..db97559 --- /dev/null +++ b/public/anleitungen/mailcow.html @@ -0,0 +1,166 @@ + + + + + + + + + + + + +
+

In der folgenden Anleitung werde ich darauf eingehen wie man eine VM mit Debian installiert und darauf + Mailcow.

+

+ Für die Debian Installation wird zuerst ein aktuelles ISO Image benötigt. Dieses kann hier heruntergeladen werden. Hierfür wird ein System mit + mindestens 2GB RAM, 2 Kernen und 10GB Storage empfohlen. Wenn die VM con der CD gebootet wird kommt als + erstes ein Auswahlmenü, in diesem die Option Install wählen und danach enter drücken.

+ +

Im nächsten Schritt wird die Sprache, die Region und das Tastaturlayout fetgelegt. Im nächsten Schritt + konfiguriert Debian einige Einstellungen wie die Netzwerkkonfiguration. Wenn die automatische Konfiguration + abgeschlossen ist, frag der Installer nach dem Hostname, dieser kann frei gewählt werden. Ich verwende + hierbei gerne Namen, die zu dem System passen, wie zum Beispiel mailcow. Der Domain Name im darauffolgenden + Schritt kann leer gelassen werden. Wenn dieser festgelegt wurde sollte das Passwort für den root Benutzer + festgelegt werden. Hierbei sollte auf einen Passwortgenerator + gesetzt werden. Nachdem das Passwort für den root Benutzer festgelegt wurde fragt Debian noch nach + benötigten Daten für einen nicht root Nutzer. Hierbei muss ein Anzeigenahme, ein Nutzername und ein generiertes Passwort festgelegt werden. Die Partitionierung + wird mit "Guieded - use entire disk" bestätigt, danach die Festplatte ausgewählt. Als Partitionsschema wird + "All Files in one partition" gewählt. Wenn alle Optionen gesetzt wurden wird nochmal eine zusammenfassung + angezeigt. Diese wird dann mit "Finish partitioning and write changes to disk" und danach nochmal mit "yes" + bestätigt.

+ + +

Nun wird Debian auf die Festplatte installiert. Jenachdem wie schnell das Bootlaufwerk und die Festplatte ist + kann dieser Schritt einige Minuten dauern. Nachdem die ersten Dateien auf die Festplatte kopiert wurden, + fragt Debian ob CDs mit Paketen eingelesen werden sollen. Dieser Schritt sollte mit "No" bestätigt werden. + Danach sollte die Region wo der Server steht ausgewählt werden, damit wählt Debian den nächstbesten Server + für die Paketquellen aus. Die in der Region verfügbaren Server werden in der nächsten Seite angezeigt. + Hierbei können im Prinzip alle verwendet werden außer "deb.debian.org", da diese relativ langsam sind. + Generell empfehle ich hierbei große Hoster oder UNIs. Ein Proxy im nächsten Schritt muss nicht angegeben + werden. Die Analysedaten sollten in jedem Fall abgelehnt werden, außer du willst deine Daten an Debian + weitergeben. Im nächsten Schritt sollte nur der SSH Server aktiviert werden. Die Optionen können deaktiviert + oder aktiviert werden, indem mit den Pfeiltasten auf die entsprechende Option navigiert wird und dann die + Leertaste gedrückt wird.

+ + + +

Nachdem der SSH Server installiert wurde, muss der Bootloader installiert werden, dafür muss bei der Frage ob + Grub installiert werden soll "Yes" gedrückt werdeb und in der nächsten Seite die Systemfestplatte ausgewählt + werden.

+ +

Nachdem das System installiert wurde wird Debian neugestartet. Nun kann sich entweder über die Oberfläche + angemeldet werden oder via SSH über die IP Adresse. Nach der Authentifizierung am System mit dem zuvor + erstellten Nutzer muss sich als root angemeldet werden und danach das System auf den neuesten Stand gebracht + werden.

+
+su root
+# nun muss das Passwort den root Benutzers eingegeben werden
+apt update
+apt upgrade -y
+
+

Nachdem das System auf dem neuesten Stand ist kann (auch als root) Docker installiert werden. Docker stellt + hierfür ein Script bereit. Zum herunterladen des Scripts muss zuerst Curl installiert werden.

+
+su root #nicht benötigt falls noch als root angemeldet aus dem vorherigen Schritt.
+apt install curl -y
+curl -sSL https://get.docker.com/ | CHANNEL=stable sh
+systemctl enable --now docker
+apt install docker-compose git -y
+
+

Nachdem nun die erforderlichen Vorbereitungen auf dem System abgeschlossen wurden, kann mit der Installation + vom Mailcow selber begonnen werden. Dazu muss als erstes mit Git sich die Anwendung heruntergeladen werden + und danach die Konfigurationsdatei mit dem mitgelieferten Script generiert werden. Das nachfolgende Script + muss wie auch die beiden vorherigen mit root Rechten ausgeführt werden. Das Script fragt zuerst nach dem + Hostname, welcher später verwendet werden soll um das WebUI von Mailcow zu erreichen und danach nach der + Zeitzone, für welche "Europe/Berlin" verwendet werden sollte.

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

+ Nachdem nun Mailcow zum ersten starten vorbereitet wurde, muss bevor es gestartet werden kann, die Firewall + angepasst werden. Dafür müssen die nachfolgenden Ports von außen erreichbar sein: +

+ Falls Mailcow nicht außerhalb des lokalen Netztes erreichbar sein soll (z.B. weil Mails nur über VPN abrufbar + sein sollen) reicht es Port 25 nach außen zu öffnen. Dieser wird aber zwingend benötigt, da über den SMTP Port + eingehende Mails ankommen. Nachdem die Ports freigegeben wurden, müssen noch einige DNS Einträge angelegt + werden. Der + erste ist ein A Record für den im Config Script angegebenen Hostname auf die öffentliche IP Adresse des Servers + gesetzt werden. Als zweiter Eintrag muss ein MX Eintrag auf den Domain selber gesetzt werden. Als MX Server muss + der bei Mailcow angegebene Hostname angegeben werden. Die Priorität ist bei nur einem Server uninteressant, + daher kann hier jede Zahl eingegeben werden. Bei mehreren Servern versucht der sendende Server von der kleinsten + Priorität an alle durch bis er einen erreichen kann. Als nächstes muss ein CNAME Eintrag für autodiscover und + einer autoconfig auf den Mail Domain angelegt werden. +

+ +

+ Wenn nun die beiden DNS Einträge laufen kann Mailcow das erste mal mit dem nachfolgenden Befehl gestartet + werden. Beim ersten mal werden alle Programme heruntergeladen, abhängig von der Internetgeschwindigkeit kann + dies einige Minuten dauern. Nach ein paar weiteren Minuten sollte über den festgelegten Domain das + Webinterface erreichbar sein. +

+
+docker-compose up
+
+ +

+ Nachdem das oben abgebildete Login Fenster angezeigt wird, ist Mailcow fertig gestartet. Der default + Nutzername ist admin mit dem Passwort moohoo, dieses sollte umgehend nach dem ersten Login abgeändert + werden. Dazu in der Benutzerübersicht beim Admin Benutzer auf "edit" (blauer Button im Bild unten) klicken + und ein neues Passwort mit + einem Passwortgenerator erstellen und speichern. Als nächstes + empfehle ich dringend ein Zweifaktor Login festzulegen. Dazu kann entweder wenn ein passender Hardwareschlüssel vorhanden ist WebAuthn oder Yubico + verwendet werden. Wenn kein Hardwareshlüssel vorhanden ist, können time based OTP Keys verwendet werden. + Hierfür kann ich entweder die Integration im kostenpflichtigen Bitwarden Passwortmanager oder die Android + App FreeOTP+ + empfehlen. Im nächsten Schritt kann der Domain für die Mails angelegt werden, dafür auf die Domin + Konfiguration unter Configuration --> Mail Setup wechseln und einen neuen Domain anlegen. (siehe Screenhots) + In dem Popup muss nur der Domain angegeben werden und danach mit "Add domain and restart SOGo" angelegt + werden. Nach einem Moment warten ist der Domain in Mailcow erstellt und unter "Mailboxes" können nun + Mailboxen angelegt werden. +

+ +
+ + +

+ In der Mailbox Konfiguration kann nun mit dem Button "Add mailbox" eine neue Mailbox angelegt werden. Hier + muss der Teil der Mail vor dem "@" angegeben werden. (Beispielswiese für die Mail info@jonasled-test.xyz + muss hier info angegeben werden) Danach sollte der volle Name des Nutzers und ein Passwort aus einem + Passwortgenerator festgelegt werden. Wenn nun alle + Einstellungen passen, kann der Domain mit "Add" angelegt werden. Nun kann sich der Nutzer ins SOGo anmelden + um das Webmail zu nutzen oder mit einem Client wie Thunderbird anmelden. +

+ +

+ Nachdem wir nun die erste Mailbox erstellt haben, muss noch ein DNS Eintrag erstellt werden, damit andere + Server validieren können, dass der sendende Server wirklich authorisiert dazu ist. Dazu im Mailcow Admin + Interface auf Configuration --> Configuration & Details gehen und dann abschließend auf der Seite unter + Configuration auf ARC/DKIM Keys gehen. Danach den beim Domain angegebenen Key kopieren und in der DNS Verwaltung als TXT Record mit der Bezeichnung "dkim._domainkey" eintragen. +

+ + +
+ + + + + + \ No newline at end of file