Wie du schnell einen Mailserver auf Ubuntu 22.04 mit Modoboa einrichtest

Vom
| Aktualisiert am
| Von Robert Einsle
Erfahre in diesem Tutorial, wie du schnell und effizient einen Mailserver auf Ubuntu 22.04 mit Modoboa einrichtest. Entdecke die Vorteile von Modoboa, einer kostenlosen Open-Source-Mailhosting- und Verwaltungsplattform, und verbessere deine E-Mail-Verwaltung mit Funktionen wie benutzerfreundlicher Nachrichtenfilterung und Spam-Blockierung​.

Dieses Tutorial zeigt dir, wie du schnell deinen eigenen E-Mail-Server auf Ubuntu 20.04 mit Modoboa einrichtest. Modoboa ist eine kostenlose und Open-Source-Mailhosting- und Verwaltungsplattform, die für die Verwendung mit dem Postfix SMTP-Server und dem Dovecot IMAP/POP3-Server entwickelt wurde.

Modoboa ist in Python geschrieben und unter den Bedingungen der ISC-Lizenz veröffentlicht. Die wichtigsten Funktionen von Modoboa sind wie folgt:

  • Modoboa verwendet standardmäßig den Nginx-Webserver, um den Webmail-Client und das webbasierte Admin-Panel bereitzustellen.
  • Kompatibel mit Postfix und Dovecot.
  • Unterstützt MySQL/MariaDB oder PostgreSQL-Datenbanken.
  • Du kannst problemlos unbegrenzte Mailboxen und Mail-Domänen in einem webbasierten Admin-Panel erstellen.
  • Du kannst E-Mail-Alias in dem webbasierten Admin-Panel einfach erstellen.
  • Der Webmail-Client bietet eine benutzerfreundliche Nachrichtenfilterung, um dir bei der Organisation von Nachrichten in verschiedene Ordner zu helfen.
  • Er kann dir dabei helfen, den Ruf deiner Domäne zu schützen, indem er E-Mail-Schwarze Listen überwacht und DMARC-Berichte generiert, sodass deine E-Mails eine bessere Chance haben, im Posteingang anstatt im Spam-Ordner zu landen.
  • Enthält eine amavis-Frontend, um Spam zu blockieren und Viren in E-Mails zu erkennen.
  • Kalender und Adressbuch.
  • Integration mit Let’s Encrypt.
  • Ein Policy-Daemon für Postfix, der es dir ermöglicht, tägliche Versandlimits für Domänen und einzelne Konten festzulegen.
  • Enthält AutoMX, um Endbenutzern die einfache Konfiguration von Mail-Konten in einem Desktop- oder Mobil-Mailclient zu ermöglichen.

Schritt 1: Den richtigen Hosting-Anbieter auswählen und einen Domainnamen kaufen

Um dieser Anleitung folgen zu können, benötigst du ein System mit Ubuntu 22.04, welches entweder lokal oder auf einem entfernten Server läuft.

Falls du nach einem virtuellen privaten Server (VPS) suchst, empfehle ich dir UpCloud mit folgenden Features:

  • 3 Tage kostenlose Testphase.
  • Ab 7€/Monat (mit 1GB RAM, 1 CPU, 25 GB SSD, 1 TB Transfer)
  • Hochleistungsfähiger VPS
  • 12 Rechenzentren weltweit auf 4 Kontinenten, unter anderem in den USA, Großbritannien, Deutschland, den Niederlanden, Finnland, Spanien, Polen, Singapure und Australien. Um deinen Linux VPS Server bei UpCloud zu erstellen, folge der unten verlinkten Anleitung:

UpCloud ist eine sehr gute Option, um einen Mailserver zu betreiben, weil:

  1. Sie blockieren bei Neukunden zwar den Port 25, aber du kannst die Sperre entfernen lassen, wenn Du die erste Rechnung bezahlt hast. UpCloud hat keine SMTP-Limits. Du kannst problemlos eine Million E-Mails pro Tag senden. Aber sie monitoren Deinen Account und sperren Dich sofort, wenn Du SPAM verschickst.
  2. Die IP-Adresse ist nicht auf einer E-Mail-Blacklist. (Zumindest gilt dies in meinem Fall. Ich habe das Rechenzentrum in Frankfurt ausgewählt.) Du möchtest definitiv nicht auf der gefürchteten Microsoft Outlook IP-Blacklist oder der Spamrats-Blacklist stehen. Einige Blacklists blockieren einen gesamten IP-Bereich, und du hast keine Möglichkeit, deine IP-Adresse von dieser Art von Blacklist zu entfernen.
  3. Du kannst den PTR-Eintrag bearbeiten, um die Zustellbarkeit von E-Mails zu verbessern.
  4. Sie ermöglichen dir, Newsletter an deine E-Mail-Abonnenten ohne stündliche oder tägliche Limits zu senden.

Andere VPS-Anbieter wie DigitalOcean blockieren den Port 25. DigitalOcean wird den Port 25 nicht freigeben, daher musst du einen SMTP-Relay einrichten, um die Blockierung zu umgehen, was zusätzliche Kosten verursachen kann. Wenn du Vultr VPS verwendest, ist der Port 25 standardmäßig blockiert. Sie können ihn auf Anfrage freischalten, behalten sich jedoch das Recht vor, ihn jederzeit erneut zu blockieren, wenn sie feststellen, dass deine E-Mail-Versandaktivitäten nicht erlaubt sind. Vultr könnte ihn tatsächlich erneut blockieren, wenn du ihre Server zum Versenden von Newslettern verwendest.

Gehe auf die Website von UpCloud, um ein Konto zu erstellen, und richte dann deinen Server in deinem Kontodashboard ein.

Schritt 2: Erstellen eines DNS MX-Eintrags

Der MX-Eintrag gibt an, welcher Host oder welche Hosts E-Mails für einen bestimmten Domainnamen verarbeiten. Zum Beispiel ist der Host, der E-Mails für domain.com verarbeitet, mail.domain.com. Wenn jemand mit einem Gmail-Konto eine E-Mail an jemanden@domain.com sendet, wird der Gmail-Server den MX-Eintrag von domain.com abfragen. Wenn er feststellt, dass mail.domain.com für die Annahme von E-Mails verantwortlich ist, wird er dann den A-Eintrag von mail.domain.com abfragen, um die IP-Adresse zu erhalten. Auf diese Weise kann die E-Mail zugestellt werden.

In deinem DNS-Manager erstelle einen MX-Eintrag für deinen Domainnamen. Gib @ in das Feld „Name“ ein, um den Hauptdomainnamen zu repräsentieren, und gib dann mail.domain.com in das Feld „Wert“ ein.

In AWS Route 53 klickst Du auf <Datensatz erstellen>:

Erstellen eines DNS MX-Eintrags

und dann auf <Eintrag erstellen>.

Jetzt den MX-Eintrag erstellen:

MX-Eintrag

Hinweis: Der Hostname für den MX-Eintrag darf kein Alias für einen anderen Namen sein. Es wird auch dringend empfohlen, Hostnamen anstelle von nackten IP-Adressen für den MX-Eintrag zu verwenden.

Dein DNS-Manager kann dich möglicherweise auffordern, einen Präferenzwert (auch als Prioritätswert bezeichnet) einzugeben. Dieser kann eine beliebige Zahl zwischen 0 und 65.356 sein. Eine kleine Zahl hat eine höhere Priorität als eine große Zahl. Du kannst 0 für deinen E-Mail-Server eingeben oder den Standardwert akzeptieren.

Nach dem Erstellen des MX-Eintrags musst du auch einen A-Eintrag für mail.dein-domain.com erstellen, damit er in eine IP-Adresse aufgelöst werden kann. Wenn dein Server eine IPv6-Adresse verwendet, vergiss nicht, auch einen AAAA-Eintrag hinzuzufügen.

Schritt 3: Einrichten des Mail-Servers auf Ubuntu 22.04 mit dem Modoboa Installer

Melde dich über SSH auf deinem Server an und führe dann den folgenden Befehl aus, um die Softwarepakete zu aktualisieren:

sudo apt update sudo apt upgrade -y

Ich empfehle dringend, einen sudo-Benutzer für die Verwaltung deines Servers zu erstellen, anstatt den Standard-Root-Benutzer zu verwenden, um die Serversicherheit zu verbessern. Führe den folgenden Befehl aus, um einen Benutzer zu erstellen. Ersetze „username“ durch deinen gewünschten Benutzernamen:

sudo adduser username

Folge den Anweisungen, um ein Passwort festzulegen und weitere Benutzerinformationen hinzuzufügen.

Dann füge den Benutzer zur sudo-Gruppe hinzu:

sudo adduser username sudo

Wechsle zum neuen Benutzer:

su - username

Lade den Modoboa-Installer von Github herunter:

git clone https://github.com/modoboa/modoboa-installer

Da Modoboa in Python geschrieben ist, führe den folgenden Befehl aus, um die erforderliche Python-Software zu installieren:

sudo apt-get install python3-virtualenv python3-pip

Navigiere dann zum modoboa-installer Verzeichnis und erstelle eine Konfigurationsdatei. Ersetze „domain.com“ durch deinen eigenen Domainnamen:

cd modoboa-installer

sudo python3 ./run.py --stop-after-configfile-check domain.com

Folge den Anweisungen im Installer, um die Konfiguration vorzunehmen.

Bearbeite die Konfigurationsdatei „installer.cfg“ mit einem textbasierten Editor über die Befehlszeile, z.B. Nano:

sudo nano installer.cfg

In der [certificate]-Sektion ändere den Wert von „type“ von „self-signed“ auf „letsencrypt“:

type = letsencrypt

Ändere auch die E-Mail-Adresse von „admin@example.com“ auf deine echte E-Mail-Adresse, die für die Kontowiederherstellung und wichtige Benachrichtigungen verwendet wird. Du wirst keine Let’s Encrypt-Zertifikate erhalten und installieren können, wenn du die Standard-E-Mail-Adresse verwendest:

email = deine_email@example.com

Speichere die Änderungen und schließe den Editor.

2023 10 20 09h19 37

Standardmäßig wird der Modoboa Installer den PostgreSQL-Datenbankserver installieren, wie in den folgenden Zeilen in der Konfigurationsdatei angegeben:

[database]
engine = postgres 
host = 127.0.0.1
install = true

Bei mir hat PostgreSQL nicht gut funktioniert, so dass ich lieber die MariaDB-Datenbankserver verwendet habe. Dann ändere den Wert von „engine“ von „postgres“ auf „mysql“. (Modoboa wird dann MariaDB anstelle von MySQL installieren.)

engine = mysql

Vergiss nicht, die Konfigurationsdatei nach dieser Änderung zu speichern.

Hostnamen

Als nächstes solltest du einen vollqualifizierten Domainnamen (FQDN) als Hostnamen für deinen Mailserver verwenden, z. B. „mail.example.com“. Führe den folgenden Befehl aus, um den Hostnamen festzulegen:

sudo hostnamectl set-hostname mail.domain.com

Nun müssen wir überprüfen, ob die DNS-Einträge ins Internet übertragen wurden. Je nachdem, welchen Domain-Registrar du verwendest, kann die DNS-Propagation sofort erfolgen oder bis zu 24 Stunden dauern. Du kannst zu https://dnsmap.io gehen, deinen Mailserver-Hostnamen (mail.example.com) eingeben und die DNS-Propagation überprüfen.

Installation starten

Wenn deine DNS-Einträge übertragen wurden, führe den folgenden Befehl aus, um die Installation zu starten. (Bitte ersetze „domain.com“ durch deinen Hauptdomainnamen wie z. B. „blablabla.com“. Verwende in diesem Befehl nicht die Subdomain „mail.domain.com“):

sudo python3 ./run.py --interactive --debug domain.com

Der Installationsprozess kann einige Zeit in Anspruch nehmen. Bei meinem Server hat er 10 Minuten gedauert.

Nachdem Modoboa die Installation abgeschlossen hat, kannst du dich im Admin-Panel mit dem Benutzernamen „admin“ und dem Passwort „password“ anmelden.

Falls dein Browser keine Verbindung zum Admin-Panel herstellen kann, könnte es sein, dass Nginx nicht läuft. Starte es mit dem Befehl:

sudo systemctl restart nginx

Wenn Nginx nicht gestartet werden kann, führe den Befehl aus, um herauszufinden, was falsch ist:

sudo nginx -t

Wenn du eine interne Fehlermeldung siehst, findest du möglicherweise eine Lösung in den bereitgestellten Ressourcen oder in der Dokumentation von Modoboa.

2023 10 20 09h28 32

Sobald du angemeldet bist, solltest du zu „Admin -> Einstellungen -> Profil“ gehen, um das Passwort zu ändern. Dies ist eine wichtige Sicherheitsmaßnahme, um das Standardpasswort zu ersetzen.

2023 10 20 09h29 52 1024x515 1
Fehler beim Erhalten eines Let’s Encrypt TLS-Zertifikats

Wenn du den Befehl „sudo nginx -t“ ausführst und folgenden Fehler erhältst:

nginx: [emerg] cannot load certificate "/etc/letsencrypt/live/mail.example.com/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No suc> nginx: configuration file /etc/nginx/nginx.conf test failed Failed to start A high performance web server and a reverse proxy server

Dann ist es wahrscheinlich, dass dein Server kein Let’s Encrypt TLS-Zertifikat erhalten hat. Du kannst den folgenden Befehl ausführen, um das Problem zu beheben:

sudo systemctl stop nginx sudo ufw allow http 
sudo ufw allow https 
sudo certbot certonly --standalone --agree-tos --redirect --hsts --staple-ocsp -d mail.deine-domain.de
sudo systemctl restart nginx postfix dovecot

Dieser Befehl stoppt zunächst den Nginx-Server, ermöglicht dann den HTTP- und HTTPS-Verkehr in der Firewall, verwendet Certbot, um ein Let’s Encrypt TLS-Zertifikat für „mail.deine-domain.com“ zu erhalten, und startet schließlich Nginx, Postfix und Dovecot neu. Beachte, dass du „mail.deine-domain.com“ durch deinen tatsächlichen Domainnamen ersetzen solltest.

Schritt 4: Hinzufügen von Mailboxen im Modoboa Admin-Panel

Gehe zum Tab „Domains“ und klicke auf die Schaltfläche „Hinzufügen“, um eine neue Domain hinzuzufügen.

2023 10 20 09h34 20 1024x263 1

Dann gib in das Feld „Name“ deinen Hauptdomainnamen ein. Es wird dringend empfohlen, die DKIM-Signierung zu aktivieren, was sich positiv auf den Ruf deiner Domain auswirken kann. Im Feld „Schlüssel-Auswähler“ kannst du ein zufälliges Wort wie „modoboa“ eingeben. Wähle eine Schlüssellänge von 2048 aus.

2023 10 20 09h36 42

Auf dem nächsten Bildschirm kannst du wählen, ob du ein Administrator-Konto für deine Domain erstellen möchtest. Das SMTP-Protokoll erfordert, dass ein Mailserver eine Adresse wie „postmaster@deine-domain.com“ haben sollte.

2023 10 20 09h38 35

Klicke auf die Schaltfläche „Abschicken“, und dein Domainname wird zu Modoboa hinzugefügt.

Beachte, dass das Standard-Administrator-Konto, das während der Installation erstellt wurde, kein E-Mail-Konto ist. Um E-Mail-Adressen hinzuzufügen, gehe zum Tab „Domains“ und klicke auf deinen Domainnamen.

2023 10 20 09h40 44 1024x237 1

Dann klicke auf „E-Mail-Postfächer“.

2023 10 20 09h42 18 1024x321 1

Klicke auf die Schaltfläche „Hinzufügen“ und wähle „Konto“.

2023 10 20 09h43 33 1024x228 1

Wähle dann „Einfacher Benutzer“ als die Rolle aus. Gib eine E-Mail-Adresse im Feld „Benutzername“ ein und vergebe ein Passwort.

2023 10 20 09h45 40

Auf dem nächsten Bildschirm kannst du optional eine Alias-Adresse für diese E-Mail-Adresse erstellen.

2023 10 20 09h46 53

Nachdem du auf die Schaltfläche „Senden“ geklickt hast, wird die E-Mail-Adresse erstellt.

Schritt 5: Test-E-Mails senden

Um dich beim Webmail anzumelden, musst du dich zuerst aus dem Admin-Konto abmelden und dann die Anmeldeinformationen des Benutzers eingeben.

2023 10 20 09h54 53

Sobald du im Modoboa Webmail angemeldet bist, kannst du eine Test-E-Mail von deinem privaten E-Mail-Server an deine andere E-Mail-Adresse senden und umgekehrt.

2023 10 20 09h56 18 1024x308 1

Eingehende E-Mails – Greylisting

Eingehende E-Mails werden einige Minuten verzögert, da Modoboa standardmäßig Greylisting aktiviert, was anderen sendenden SMTP-Servern mitteilt, dass sie es in einigen Minuten erneut versuchen sollen. Dies ist nützlich, um Spam zu blockieren. Die folgende Meldung in der Datei „/var/log/mail.log“ zeigt an, dass Greylisting aktiviert ist:

postfix/postscreen[20995]: NOQUEUE: reject: RCPT from [34.209.113.130]:36980: 450 4.3.2 Service currently unavailable;

Greylisting kann jedoch manchmal als störend empfunden werden. Du kannst es deaktivieren, indem du die Hauptkonfigurationsdatei von Postfix bearbeitest:

sudo nano /etc/postfix/main.cf

Finde die folgenden Zeilen am Ende der Datei und kommentiere sie aus (füge ein „#“ Zeichen am Anfang jeder Zeile hinzu).

postscreen_pipelining_enable = yes
postscreen_pipelining_action = enforce

postscreen_non_smtp_command_enable = yes
postscreen_non_smtp_command_action = enforce

postscreen_bare_newline_enable = yes
postscreen_bare_newline_action = enforce

Speichere und schließe die Datei. Starte dann Postfix neu, damit die Änderungen wirksam werden:

sudo systemctl restart postfix

Jetzt solltest du E-Mails ohne mehrere Minuten Wartezeit empfangen können.

Hinzufügen von Swap-Speicherplatz

ClamAV wird verwendet, um Viren in E-Mail-Nachrichten zu scannen. ClamAV kann eine beträchtliche Menge RAM benötigen. Wenn auf deinem Server nicht genügend RAM vorhanden ist, wird ClamAV nicht ordnungsgemäß funktionieren, was dazu führen kann, dass dein Mailserver keine E-Mails senden kann. Du kannst dem Server eine Swap-Datei hinzufügen, um den verfügbaren RAM zu erhöhen. (Beachte, dass die Verwendung von Swap-Speicherplatz auf dem Server die Serverleistung beeinträchtigen kann. Wenn du bessere Leistung möchtest, solltest du den physischen RAM des Servers erhöhen, anstatt Swap-Speicherplatz zu verwenden.)

Um Swap-Speicherplatz auf dem Server hinzuzufügen, verwende zunächst den Befehl „fallocate“, um eine Datei zu erstellen. Erstelle beispielsweise eine Datei namens „swapfile“ mit einer Kapazität von 1G im Root-Dateisystem:

sudo fallocate -l 1G /swapfile

Stelle sicher, dass nur der Root-Benutzer darauf lesen und schreiben kann:

sudo chmod 600 /swapfile

Formatiere die Datei als Swap:

sudo mkswap /swapfile

Aktiviere die Swap-Datei:

sudo swapon /swapfile

Um den Swap-Speicherplatz beim Systemstart einzuhängen, bearbeite die Datei „/etc/fstab„:

sudo nano /etc/fstab

Füge die folgende Zeile am Ende dieser Datei hinzu:

/swapfile swap swap defaults 0 0

Speichere und schließe die Datei. Aktualisiere dann systemd und starte ClamAV neu:

sudo systemctl daemon-reload sudo systemctl restart clamav-daemon

Damit solltest du in der Lage sein, E-Mails ohne größere Verzögerungen zu senden und zu empfangen.

Schritt 6: Überprüfung, ob der Port 25 (ausgehend) blockiert ist

Dein Internetdienstanbieter oder Hosting-Anbieter wird in der Regel keine eingehenden Verbindungen zum Port 25 deines Servers blockieren, was bedeutet, dass du E-Mails von anderen Mailservern empfangen kannst. Allerdings blockieren viele Internetdienstanbieter/Hosting-Anbieter ausgehende Verbindungen zum Port 25 anderer Mailserver, was bedeutet, dass du keine E-Mails senden kannst.

Falls deine E-Mail nicht bei deiner anderen E-Mail-Adresse, wie zum Beispiel Gmail, angekommen ist, führe den folgenden Befehl auf deinem Mailserver aus, um zu überprüfen, ob der Port 25 (ausgehend) blockiert ist:

telnet gmail-smtp-in.l.google.com 25

Wenn er nicht blockiert ist, siehst du Nachrichten wie unten, was darauf hinweist, dass eine Verbindung erfolgreich hergestellt wurde. (Tipp: Gib „quit“ ein und drücke Enter, um die Verbindung zu schließen.)

Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp

Wenn der Port 25 (ausgehend) blockiert ist, siehst du etwas Ähnliches wie:

Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out

Das deutet darauf hin, dass die Verbindung fehlgeschlagen ist.

Immer noch Probleme beim Senden von E-Mails?

Wenn der Port 25 (ausgehend) nicht blockiert ist, du jedoch immer noch keine E-Mails von deinem eigenen Mailserver an deine andere E-Mail-Adresse wie Gmail senden kannst, solltest du die Mail-Protokolldatei überprüfen (/var/log/mail.log).

sudo nano /var/log/mail.log

Einige Leute könnten zum Beispiel die folgenden Zeilen in der Datei sehen:

host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError for more information

Das bedeutet, dass dein Mailserver IPv6 verwendet, um die E-Mail zu senden, aber du keine IPv6-Einträge eingerichtet hast. Du solltest zu deinem DNS-Manager gehen, einen AAAA-Eintrag für „mail.deine-domain.com“ setzen und dann einen PTR-Eintrag für deine IPv6-Adresse setzen, wie im Schritt 8 besprochen.

Schritt 7: Verwendung von E-Mail-Clients auf deinem Computer oder Mobilgerät

Starte deinen Desktop-E-Mail-Client wie Mozilla Thunderbird und füge ein E-Mail-Konto hinzu.

Im Abschnitt „Eingehender Server“ wähle das IMAP-Protokoll, gib „mail.deine-domain.com“ als Servernamen ein, wähle den Port 993 und SSL/TLS. Wähle die normale Passwortmethode als Authentifizierungsmethode.

Im Abschnitt „Ausgehender Server“ wähle das SMTP-Protokoll, gib „mail.deine-domain.com“ als Servernamen ein, wähle den Port 587 und STARTTLS. Wähle die normale Passwortmethode als Authentifizierungsmethode.

2023 10 20 11h27 31
2023 10 20 11h29 09

💡 Du kannst auch IMAP auf Port 143 mit STARTTLS-Verschlüsselung verwenden.

Schritt 8: Verbesserung der E-Mail-Zustellbarkeit

Um zu verhindern, dass deine E-Mails als Spam markiert werden, solltest du PTR-, SPF-, DKIM- und DMARC-Einträge einrichten.

PTR-Eintrag

Ein PTR-Eintrag (Pointer-Eintrag) ordnet einer IP-Adresse einen vollqualifizierten Domainnamen (FQDN) zu. Er ist das Gegenstück zum A-Eintrag und wird für die rückwärtige DNS-Auflösung verwendet, was dazu beitragen kann, Spam zu blockieren. Viele SMTP-Server lehnen E-Mails ab, wenn kein PTR-Eintrag für den sendenden Server gefunden wird.

Um den PTR-Eintrag für eine IP-Adresse zu überprüfen, führe diesen Befehl aus:

dig -x IP-Adresse +short

oder

host IP-Adresse

Da du die IP-Adresse von deinem Hosting-Anbieter oder ISP erhältst und nicht von deinem Domain-Registrar, musst du den PTR-Eintrag für deine IP-Adresse im Control Panel deines Hosting-Anbieters einrichten oder deinen ISP darum bitten. Der Wert sollte der Hostname deines Mail-Servers sein: „mail.deine-domain.com“. Wenn dein Server eine IPv6-Adresse verwendet, sollte auch ein PTR-Eintrag für deine IPv6-Adresse erstellt werden.

Um den rückwärtigen DNS-Eintrag für deinen UpCloud VPS zu bearbeiten, melde dich im UpCloud-Kundenbereich an, öffne dann Deinen VPS, klick auf <Network>, sucher unter Network interfaces Deine IP Adresse und klicke bei Reverse DNS name rechts auf <Edit>.

2023 10 20 11h36 38 1024x277 1

SPF-Eintrag

Der SPF (Sender Policy Framework)-Eintrag gibt an, welche Hosts oder IP-Adressen berechtigt sind, E-Mails im Namen einer Domain zu senden. Du solltest nur deinem eigenen E-Mail-Server oder dem Server deines ISPs erlauben, E-Mails für deine Domain zu senden. In deiner DNS-Verwaltungsoberfläche erstelle einen neuen TXT-Eintrag wie unten beschrieben.

2023 10 20 17h09 37

Erklärung:

  • TXT gibt an, dass es sich um einen TXT-Eintrag handelt.
  • Gib „@“ im Namensfeld ein, um den Hauptdomainnamen zu repräsentieren.
  • v=spf1 gibt an, dass es sich um einen SPF-Eintrag handelt und die Version SPF1 ist.
  • mx bedeutet, dass alle in den MX-Einträgen aufgeführten Hosts berechtigt sind, E-Mails für deine Domain zu senden, und dass alle anderen Hosts nicht berechtigt sind.
  • ~all gibt an, dass E-Mails von deiner Domain nur von den in der SPF-Aufzeichnung angegebenen Hosts stammen sollten. E-Mails von anderen Hosts werden als gefälscht markiert.

Um zu überprüfen, ob dein SPF-Eintrag ins öffentliche Internet übertragen wurde, kannst du das „dig“-Dienstprogramm auf deinem Linux-System wie folgt verwenden:

dig deine-domain.de txt

Die Option „txt“ teilt „dig“ mit, dass wir nur TXT-Einträge abfragen möchten.

DKIM-Eintrag

DKIM (DomainKeys Identified Mail) verwendet einen privaten Schlüssel, um E-Mails von deiner Domain digital zu signieren. Empfangende SMTP-Server überprüfen die Signatur, indem sie den öffentlichen Schlüssel verwenden, der im DKIM-Eintrag im DNS veröffentlicht ist.

Als wir zuvor den Domainnamen im Modoboa-Admin-Panel hinzugefügt haben, haben wir die DKIM-Signierung aktiviert, sodass der Signaturteil erledigt ist. Das einzige, was noch zu tun ist, ist die Erstellung des DKIM-Eintrags im DNS-Manager. Gehe zuerst zum Modoboa-Admin-Panel und wähle deinen Domainnamen aus. Im DNS-Bereich klicke auf die Schaltfläche „Zeige Schlüssel„.

2023 10 20 17h13 54 1024x319 1

Der öffentliche Schlüssel wird angezeigt. Es gibt zwei Formate. Wir benötigen nur das Bind/named-Format.

2023 10 20 17h15 52 1024x621 1

Gehe zu deinem DNS-Manager, erstelle einen TXT-Eintrag und gib „modoboa._domainkey“ in das Feld „Name“ ein. (Erinnere dich daran, dass wir „modoboa“ als Selector verwendet haben, als wir den Domainnamen im Admin-Panel hinzugefügt haben.) Kopiere alles in den Klammern und füge es in das Feld „Wert“ ein. Lösche alle doppelten Anführungszeichen. Es kann sein, dass dein DNS-Manager verlangt, andere ungültige Zeichen zu löschen, wie zum Beispiel Wagenrücklauf.

Beachte, dass dein DKIM-Eintrag einige Zeit benötigen kann, um sich im Internet zu verbreiten. Je nachdem, welchen Domain-Registrar du verwendest, kann dein DNS-Eintrag sofort verbreitet werden oder es kann bis zu 24 Stunden dauern. Du kannst zu https://www.dmarcanalyzer.com/dkim/dkim-check/ gehen, „modoboa“ als Selector eingeben und deinen Domainnamen eingeben, um die Verbreitung des DKIM-Eintrags zu überprüfen.

DMARC-Eintrag

DMARC steht für Domain-based Message Authentication, Reporting and Conformance. DMARC kann empfangenden E-Mail-Servern helfen, legitime E-Mails zu identifizieren und zu verhindern, dass dein Domainname für E-Mail-Spoofing verwendet wird.

Um einen DMARC-Eintrag zu erstellen, gehe zu deinem DNS-Manager und füge einen TXT-Eintrag hinzu. Im Namensfeld gib „_dmarc“ ein. Im Wertefeld gib Folgendes ein:

v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@deine-domain.de
  • v=DMARC1 gibt an, dass es sich um einen DMARC-Eintrag der Version 1 handelt.
  • p=none gibt an, dass keine Aktion (kein Quarantäne oder Ablehnung) durchgeführt werden soll, wenn ein E-Mail nicht den DMARC-Richtlinien entspricht.
  • pct=100 gibt an, dass 100 % der E-Mails nach DMARC-Richtlinien überprüft werden sollen.
  • rua=mailto:dmarc-reports@deine-domain.de gibt die E-Mail-Adresse an, an die DMARC-Berichte gesendet werden sollen. Du kannst hier deine eigene E-Mail-Adresse oder eine spezielle Adresse für DMARC-Berichte angeben.

Schritt 7: Testen der E-Mail-Wertung und Platzierung

Nachdem du den PTR-, SPF- und DKIM-Eintrag erstellt hast, gehe zu https://www.mail-tester.com. Dort siehst du eine eindeutige E-Mail-Adresse. Sende eine E-Mail von deiner Domain an diese Adresse und überprüfe dann deine Wertung. Wie du sehen kannst, habe ich eine perfekte Wertung bekommen.

2023 10 20 17h20 46 1024x636 1

Automatisches Erneuern des Let’s Encrypt TLS-Zertifikats

Das Let’s Encrypt TLS-Zertifikat ist 90 Tage lang gültig. Um das Zertifikat automatisch zu erneuern, bearbeite die Crontab-Datei des Root-Benutzers.

sudo crontab -e

Füge die folgende Zeile am Ende dieser Datei hinzu.

@daily /usr/bin/certbot renew -q && systemctl reload nginx postfix dovecot

Speichere und schließe die Datei. Dies teilt Cron mit, den Befehl „certbot renew“ täglich auszuführen. Wenn das Zertifikat noch 30 Tage gültig ist, wird es von certbot erneuert. Es ist notwendig, den Nginx-Webserver, den Postfix-SMTP-Server und den Dovecot-IMAP-Server neu zu laden, damit sie das neue Zertifikat verwenden können.

Fehlerbehebung

Zunächst verwende bitte einen VPS mit mindestens 2 GB RAM. Das Ausführen von Modoboa auf einem 1GB RAM VPS führt aufgrund von Speicherproblemen dazu, dass die Datenbank, SpamAssassin oder ClamAV beendet werden. Wenn du wirklich einen 1GB RAM VPS verwenden möchtest, wirst du eingehende E-Mails verlieren und andere unerwünschte Ergebnisse haben.

Wenn die Modoboa-Webschnittstelle nicht erreichbar ist, beispielsweise mit einem 502 Gateway-Fehler, solltest du die Nginx-Protokolle im Verzeichnis /var/log/nginx/ überprüfen, um Hinweise zu finden. Du solltest auch das Mail-Protokoll /var/log/mail.log überprüfen.

Überprüfe, ob die verschiedenen Dienste ausgeführt werden.

systemctl status postfix

systemctl status dovecot

systemctl status nginx

systemctl status mariadb

systemctl status clamav-daemon

systemctl status amavis

systemctl status uwsgi 

systemctl status supervisor

Wenn du die Firewall aktiviert hast, solltest du die folgenden Ports in der Firewall öffnen.

HTTP port:  80
HTTPS port: 443
SMTP port:  25
Submission port: 587 (and 465 if you are going to use Microsoft Outlook mail client)
IMAP port:  143 and 993

(Optional) Einrichten von Autodiscover und AutoConfig zur automatischen Konfiguration von Mail-Clients

Autodiscover und AutoConfig vereinfachen die Konfiguration eines Desktop- oder Mobil-Mail-Clients. Der Endbenutzer muss lediglich einen Namen, eine E-Mail-Adresse und ein Passwort eingeben, um sein/ihr E-Mail-Konto einzurichten, ohne die SMTP- oder IMAP-Serverdetails eingeben zu müssen. Autodiscover wird vom Microsoft Outlook-Mail-Client unterstützt, und AutoConfig wird vom Mozilla Thunderbird-Mail-Client unterstützt.

Modoboa verwendet AutoMX, um diese Funktion auf deinem Mail-Server zu implementieren. Alles, was wir jetzt tun müssen, ist, CNAME-Einträge im DNS hinzuzufügen. In deinem DNS-Manager erstelle zwei CNAME-Einträge.

autoconfig.deine-domain.de       CNAME         mail.deine-domain.de
autodiscover.deine-domain.de     CNAME         mail.deine-domain.de

Gehe zum Tab „Domains“ in deinem Modoboa-Admin-Panel. Wenn „autoconfig“ grün ist, bedeutet das, dass deine CNAME-Einträge korrekt sind. (Modoboa überprüft DNS-Einträge für deinen Mail-Server alle 30 Minuten, daher musst du möglicherweise einige Zeit warten, bis „autoconfig“ grün wird.)

2023 10 20 17h27 52

Sobald die CNAME-Einträge im Internet verbreitet sind, musst du bei der Einrichtung eines E-Mail-Kontos in Microsoft Outlook und Mozilla Thunderbird die SMTP- oder IMAP-Serverdetails nicht mehr eingeben.

Zusammenfassung

In diesem Blog-Artikel wird erklärt, wie man schnell einen E-Mail-Server auf Ubuntu 22.04 mit Modoboa einrichtet. Der Artikel umfasst Schritte wie die Auswahl eines geeigneten Hosting-Anbieters, die Einrichtung von DNS MX-Einträgen, die Installation und Konfiguration von Modoboa, das Hinzufügen von Mailboxen und die Überprüfung des Mail-Servers. Außerdem werden Tipps zur Verbesserung der E-Mail-Zustellbarkeit, zur Nutzung von E-Mail-Clients und zur Fehlerbehebung gegeben. Diese Anleitung ist detailliert und praktisch für jeden, der seinen eigenen E-Mail-Server aufsetzen möchte.

Robert Einsle
Robert Einsle
schnelle Problemlösung durch langjährige Erfahrung

Schreibe einen Kommentar