Wie man einen E-Mail-Server mit ISPConfig unter Debian 10 installiert

In diesem Tutorial wird eine einzelne Server-Einrichtung als Beispiel verwendet. ISPConfig 3.1 wird auf Debian 10.0, Buster installiert (siehe ISPConfig Perfect Server-Installationsanleitung für die eigentliche Server-Installation). Der Zweck dieses Leitfadens ist es, Ihnen die Schritte nach der Installation des ersten Servers zu zeigen, um ein funktionierendes Mail-System für Ihren eigenen Domänennamen einzurichten. Ich habe ISPConfig während des Testens dieses Tutorials auf 3.1.15 aktualisiert.

Was wird benötigt

Um dieses Tutorial erfolgreich für einen richtig funktionierenden E-Mail-Server zu verwenden, benötigen Sie

  • einen Host, auf dem Sie ISPConfig (und ein Betriebssystem) installieren
  • Ich empfehle 2 GB Arbeitsspeicher mit 4 GB Swap, sollte für den Mailserver ausreichen.
  • Der Gastgeber muss über eine Internetverbindung verfügen, wobei Port 25 in beide Richtungen offen ist.
  • der Host hat eine feste IP-Adresse
  • Der Host muss einen A-Eintrag für seine IP-Adresse haben (oder AAAA bei Verwendung von IPv6).
  • Sie müssen einen MX-Eintrag zum DNS-Namendienst für den Host erstellen.
  • Sie müssen einen PTR-Eintrag des Reverse-DNS-Namendienstes des Hosts erhalten, der mit dem FQDN des Hosts übereinstimmt.

Der Speicherbedarf ist für SPAM-Filter. Sie können auch bei laufenden SPAM-Filtern mit 1 GB Speicher auskommen, wenn der 4-GB-Swap vorhanden ist, um Speicherausfälle zu vermeiden.

Offene Ports

Der Mail-Server muss sowohl für eingehende als auch für ausgehende E-Mails den Port 25 offen haben. Stellen Sie sicher, dass Ihr Host diesen Port offen hat, bevor Sie den E-Mail-Server auf diesem Host einrichten.

Es gibt Möglichkeiten, E-Mails auch dann zum Laufen zu bringen, wenn Port 25 nicht geöffnet ist, aber dazu gehört das Versenden von E-Mails über einen anderen Host, der Port 25 geöffnet hat. Es kann sinnvoller sein, den E-Mail-Server auf diesem anderen Host zu installieren und den ersten ganz zu vergessen, soweit es um E-Mails geht.

DNS-Namendienst-Einträge

Der Mail-Server benötigt einen FQDN, Fully Qualified Domain name(Lesen Sie dazu in der Wikipedia: FQDN). In diesem Beispiel ist der Domänenname taleman.ovh. Um zu zeigen, dass der Mailserver-Hostname nicht unbedingt Mail sein muss, verwenden wir posti als Hostname. Der FQDN lautet also posti.taleman.ovh.

Dieser Host wird auf einem System von Dienstanbietern installiert, die die Registrierung von Domains, den Nameservice und den Reverse-Name-Service anbieten. Ich habe diese benutzt.

Die IP-Adresse lautet 178.33.154.66. Ich habe Folgendes getan:

  • registriert die Domain taleman.ovh
  • fügte diese IP-Adresse als A-Eintrag zum DNS-Namendienst mit dem Namen posti.taleman.ovh hinzu.
  • MX-Eintrag für die Domäne taleman.ovh mit dem Wert posti.taleman.ovh hinzugefügt
  • PTR-Eintrag des Reverse Name Service für diese IP-Adresse hinzugefügt, der auf posti.taleman.ovh zeigt

Der MX-Eintrag wird für die E-Mail-Domäne erstellt. Ich erstelle ihn also für taleman.ovh, und er verweist auf posti.taleman.ovh, den E-Mail-Server, der E-Mails für diese Domäne empfängt.

Umgekehrter Namensdienst

Lesen Sie über den Reverse-Name-Service aus dem Name-Service-Tutorial. In diesem Beispielfall muss der Reverse Name Service posti.taleman.ovh zurückgeben.

Mein Dienstanbieter hat das Vorhandensein eines Datensatzes überprüft, bevor das Hinzufügen einer entsprechenden PTR möglich war. Ich hatte ein kleines Problem, bevor ich herausfand, dass das Hinzufügen deshalb fehlgeschlagen ist.

Namensdienst testen

Es ist besser, den Namensdienst jetzt zu testen, da das Senden und Empfangen von E-Mails nicht funktioniert, wenn der Namensdienst nicht korrekt eingerichtet ist. Wenn Ihre Arbeitsstation Windows statt Linux oder Unix ist, verwenden Sie den Befehl nslookup statt host.

$ host taleman.ovh
 taleman.ovh has address 188.165.143.5
 taleman.ovh mail is handled by 10 posti.taleman.ovh.

Das obige Ergebnis zeigt, dass dem Domänennamen eine IP-Nummer zugeordnet ist (die sich in diesem Fall von der IP-Nummer des E-Mail-Servers unterscheidet, aber das betrifft nicht die E-Mails), und es gibt einen MX-Eintrag, der auf posti.taleman.ovh zeigt. Der Teil „mail is handled by“ stammt aus dem MX-Eintrag. Dieser MX-Eintrag wird benötigt, wenn E-Mails, die an @taleman.ovh-Adressen gesendet werden, unter posti.taleman.ovh empfangen werden sollen.

Dann prüfe ich, ob der Nameservice-Eintrag für den Mailserver FQDN (in diesem Fall posti.taleman.fi) ein A-Eintrag ist und auf die richtige IP-Nummer zeigt.

$ dig posti.taleman.ovh |grep "ANSWER SECTION" --after-context=3 
;; ANSWER SECTION:
 posti.taleman.ovh. 3600 IN A 178.33.154.66 
;; Query time: 56 msec

Prüfen Sie schließlich, ob der Reverse Name Service die IP-Nummer zurück in den FQDN des Mailservers auflöst.

$ host 178.33.154.66
 66.154.33.178.in-addr.arpa domain name pointer posti.taleman.ovh.

Statt der Befehle host und dig können Sie Webseiten verwenden, die den Namensdienst testen. Mir sind intoDNS und MXToolbox bekannt.

Wenn Sie die obigen Tests nicht zum Erfolg führen können, können Sie dieses Einrichtungs-Tutorial für Namensdienste ausprobieren.

Betriebssystem installieren

Ich benutze Debian Version 10 Buster, daher folge ich diesem Tutorial:

https://www.howtoforge.com/tutorial/debian-10-buster-minimal-server/

Ersetzen Sie die IP-Nummer, den Hostnamen und den Domänennamen durch Ihre Werte.

Da ich dieses Tutorial auf Englisch schreibe, habe ich Englisch als Sprache gewählt, aber Finnland als Land und United_Kingdom en_GB.UTF-8 als Ländereinstellung.

root@posti:/tmp# cat /etc/debian_version 10.0
root@posti:~# locale
 LANG=en_GB.UTF-8
 LANGUAGE=en_GB:en
 LC_CTYPE="en_GB.UTF-8"
 LC_NUMERIC="en_GB.UTF-8"
 LC_TIME="en_GB.UTF-8"
 LC_COLLATE="en_GB.UTF-8"
 LC_MONETARY="en_GB.UTF-8"
 LC_MESSAGES="en_GB.UTF-8"
 LC_PAPER="en_GB.UTF-8"
 LC_NAME="en_GB.UTF-8"
 LC_ADDRESS="en_GB.UTF-8"
 LC_TELEPHONE="en_GB.UTF-8"
 LC_MEASUREMENT="en_GB.UTF-8"
 LC_IDENTIFICATION="en_GB.UTF-8"
 LC_ALL=
 root@posti:~# cat /etc/timezone
 Europe/Helsinki

Überprüfen Sie, ob Sie den Hostnamen korrekt eingerichtet haben. Die Konfiguration des Mailsystems, die ISPConfig vornimmt, funktioniert nicht, wenn der Hostname falsch ist.

root@posti:~# hostname posti
 root@posti:~# hostname -f posti.taleman.ovh
 root@posti:~#

Installation von ISPConfig

Ich habe mich für die Installation von Apache als Webserver entschieden, daher folge ich für Debian Buster diesem Perfect Server Guide.

Ich habe den openssh-Server auf dem Host installiert und ein Root-Login mit dem ssh-Schlüssel eingerichtet, so dass ich direkt als root auf den Host ssh zugreifen kann. Passwortlose Anmeldungen mit OpenSSH oder sichere passwortlose Anmeldungen mit SSH.

root@posti:/tmp# free -h

Freies Befehlsergebnis

Ich ziehe Editoren im Emacs-Stil dem Nano vor, deshalb installiere ich jetzt jed, um das Bearbeiten von Dateien angenehmer zu machen.

Ich hatte /etc/host und /etc/hostname nach der Installation des Betriebssystems korrekt eingerichtet, also habe ich einfach überprüft, daß sie gemäß der Anleitung für den perfekten Server korrekt sind. Achten Sie auf den Hostnamen und den FQDN, wenn Sie diese durcheinander bringen, werden Sie am Ende feststellen, dass Ihr E-Mail-Server nicht funktioniert. Der Schaden kann zwar repariert werden, aber es ist einfacher, ihn von Anfang an zu beheben.

root@posti:/tmp# hostname
 posti
 root@posti:/tmp# hostname -f
 posti.taleman.ovh

Für den Rest folge ich einfach dem Perfect Server Guide. Beachten Sie, dass Sie die Befehle meist durch Ausschneiden und Einfügen aus dem Guide in die Befehlszeile einfügen können.

Ich habe Mailman nicht installiert, ich habe nicht vor, Mailman auf diesem Host zu verwenden. Ebenso habe ich die Installation von BIND DNS Server, Webalizer, AWStats ausgelassen. Ich habe Roundcube Webmail installiert, da dieser Host zu einem E-Mail-Server wird.

In Kapitel 18 (PHPMyAdmin-Datenbankverwaltungsprogramm installieren) habe ich den Befehl

/usr/bin/apg -m 32 -x 32

um das 32 Zeichen lange Blowfish-Geheimnis zu erzeugen.

Verwendung des Systems

E-Mail-Domäne und Postfächer erstellen

Jetzt logge ich mich als Admin in ISPConfig ein und

  • Neuen Mandanten hinzufügen
  • Fügen Sie eine neue Domain (E-Mail-Domain!) hinzu und füllen Sie das Formular aus.
  • Neue Mailbox hinzufügen

Erstellen Sie die DKIM-Schlüssel und zeichnen Sie auf, indem Sie auf die Schaltflächen in der im Bild nummerierten Reihenfolge klicken. Sie können über DKIM in der Wikipedia nachlesen.

Mail-Domäne in ISPConfig erstellen

Abbildung 1: Mail-Domäne erstellen

Warten Sie dann zwei Minuten oder bis der rote Ball mit der Nummer im oberen Teil des ISPConfig-Panels verschwindet.

Als ersten Test loggen Sie sich mit der oben erstellten Mailbox in Roundcube Webmail ein und senden eine E-Mail an dieselbe Adresse. ISPConfig sendet eine Willkommensnachricht an jede erstellte Mailbox, es sollte also bereits eine Nachricht dort sein. Verwenden Sie die Schaltfläche Verfassen und schreiben Sie eine kurze Testnachricht.

RoundCube-Anmeldung

Abbildung 2: Roundcube Webmail

E-Mail im Roundcube senden

Abbildung 3: Senden aus dem Roundcube

Die Nachricht sollte bald in der Mailbox erscheinen.

Testen Sie dann das Senden einer E-Mail an eine andere Mailbox, die Sie haben, und können Sie überprüfen, ob die Mail dort ankommt. Beim nächsten Test können Sie von einem anderen Ort aus an die oben angelegte Mailbox senden.

Beachten Sie, dass die von außerhalb Ihres Servers gesendete E-Mail nicht sofort in der Mailbox ankommt, wenn Sie für die Mailbox Greylisting aktiviert haben. Sie sollten jedoch sofort im Mail-Log Einträge der versuchten Zustellung sehen, damit Sie sehen, dass die Mail Ihren Server erreichen kann. Der Greylisting-Eintrag in der Datei /var/log/mail.log sieht ungefähr so aus:

Aug 29 19:08:42 posti postfix/smtpd[16911]: NOQUEUE: reject: 
  RCPT from mta-out1.inet.fi[62.71.2.194]: 450 4.2.0 
  <tapio@taleman.ovh>: Recipient address rejected: Greylisted, 
  see http://postgrey.schweikert.ch/help/taleman.ovh.html; 
  from=<****@*****.***> to=<tapio@taleman.ovh> proto=ESMTP 
  helo=<******.****.***>

Sie können das Mailprotokoll z.B. in einem Terminalfenster wie diesem überwachen:

tail -f /var/log/mail.log

Oder mit diesen Befehlen, wenn Sie nur an den Greylisting-Einträgen interessiert sind:

tail -f /var/log/mail.log | grep Greylisted

oder

grep Greylisted /var/log/mail.log

Greylisting verzögert nur die erste E-Mail vom gleichen Absender an den gleichen Empfänger. Sobald diese erste E-Mail empfangen wird, kommen die folgenden E-Mails ohne zusätzliche Verzögerung an.

In meinem Fall hat alles beim ersten Versuch funktioniert. Dies zeigt, dass der ISPConfig Perfect Server Guide wirklich funktioniert.

E-Mail-Client verbinden

Verwendung von Thunderbird als Beispiel-Mail-Client. Andere Mail-Client-Anwendungen arbeiten auf ähnliche Weise.

ISPConfig macht den Kontonamen zur E-Mail-Adresse.

Thunderbird-Konto-Einstellungen

Abbildung 4: Thunderbird-Kontoeinstellungen

Thunderbird Server Settings

Abbildung 5: Thunderbird-Server-Einstellungen

Verbindungssicherheit STARTTLS bedeutet, dass die Verbindung ungeschützt startet und dann auf verschlüsselt umschaltet, wenn beide Parteien die Verschlüsselung unterstützen. SSL/TSL bedeutet, dass die Sitzung von Anfang an verschlüsselt wird. SSL/TSL ist wahrscheinlich etwas sicherer, versuchen Sie also, ob Ihr Client damit arbeitet.

Thunderbird Postausgangsserver

Abbildung 6: Einstellungen des Thunderbird-Ausgangsservers

SPF verwenden

Lesen Sie über das Sender Policy Framework von Wikipedia. Ursprünglich stand SPF für „Sender Permitted From“ (Erlaubter Absender), was schön zu erinnern ist, was bedeutet. Nachdem Sie über SPF gelesen haben, können Sie den Datensatz selbst erstellen, prüfen, ob Ihr Namensdienstleister den SPF-Datensatz generieren kann, oder über Internet-Suchmaschinen mit

SPF wizard

eine Website finden, die den SPF-Namensservice-Datensatz für Sie erstellt. Dann schneiden Sie den Datensatz aus und fügen Sie ihn in Ihren Namensdienst ein. Fügen Sie einen TXT-Eintrag hinzu, oder fügen Sie vielleicht auf einem DNS-System einen SPF-Eintrag hinzu.

Prüfen Sie, wie das SPF im Namensdienst aussieht, etwa so

$ dig taleman.ovh -t TXT | grep spf
 taleman.ovh. 3000 IN TXT "v=spf1 mx ~all"

Oder so:

$ dig +short taleman.ovh TXT
 "v=spf1 mx ~all"
 "1|www.taleman.ovh"

Verwendung von DKIM

Lesen Sie über DomainKeys Identified Mail aus Wikipedia. ISPConfig hat die DKIM-Schlüssel bei der Erstellung der E-Mail-Domäne für Sie erstellt (falls Sie daran gedacht haben, das DKIM-Kästchen anzukreuzen). Schneiden Sie den DNS-Record, der den öffentlichen Schlüssel zu Ihrem Nameservice darstellt, aus und fügen Sie ihn als TXT-Record ein. Ihr Name-Service-Provider bietet möglicherweise ein Tool an, das die Erstellung des DKIM-Eintrags erleichtert. Halten Sie den privaten DKIM-Schlüssel geheim.

Überprüfen Sie, wie das DKIM im Namensdienst aussieht, etwa so

$ host -t txt default._domainkey.taleman.ovh.
 default._domainkey.taleman.ovh descriptive text "v=DKIM1;h=sha256;s=*;p=MIIB(I cut long string shorter)0rp" "sTGLXyK(cut shorter)B;t=s;"

Wenn es ISPConfig war, das die DKIM-Schlüssel erstellt hat, wird der private Schlüssel an die richtige Stelle in den amavis-Einstellungen kopiert.

Es gibt die Website mail-tester.com, die nützlich ist, um zu überprüfen, ob SPF und DKIM funktionieren. Gehen Sie zu dieser Website, sie gibt eine E-Mail-Adresse an und Sie senden von Ihrem Server aus eine E-Mail dorthin. Warten Sie dann eine Minute und überprüfen Sie die Website erneut.

Zertifikate erstellen

ISPConfig kann selbstsignierte Zertifikate erstellen, diese werden während der Installation von ISPConfig erstellt, es sei denn, Sie haben sich gegen die Erstellung entschieden. Selbst wenn Sie diese selbstsignierten Zertifikate erstellt haben, ist es eine gute Idee, richtige Zertifikate zu erstellen, denen Browser, E-Mail-Programme und andere E-Mail-Server vertrauen.

Es gibt eine gute Anleitung: Sichern von ISPConfig mit einem kostenlosen Let’s Encrypt SSL-Zertifikat

Nach diesem Tutorial bemerkte ich, dass die erstellte Website die Debian-Standardwebseite zeigte, bis ich das LE-Zertifikat für die Website erstellt hatte. Auch das ISPConfig-Panel war wackelig, ich glaube, weil es das selbstsignierte Zertifikat hatte und nun dieses neue Zertifikat oder gar kein Zertifikat. Das Aktualisieren der Seiten im Browser hat das Problem gelöst.

Wenn die Zertifikate eingerichtet werden, geben Sie die https-Adresse des Servers im Browser ein. Wenn Sie mit der anderen Maustaste auf das Symbol links von der Adressleiste des Browsers klicken, werden Informationen über das Zertifikat angezeigt.

Gehen Sie zur Registerkarte ISPConfig-Panel-System, Interface-Hauptkonfiguration und zur Registerkarte Mail. Dort setzen Sie

Use SSL/TLS encrypted connection for SMTP

zu SSL.

Weitere Tests des Zertifikats sind mit Tools auf Websites möglich, verwenden Sie Internet-Suchmaschinen mit

ssl testing

als Suchbegriffe auf. Diese Tools testen normalerweise die Website, beim Testen von Zertifikaten, die der E-Mail-Server hat, suchen Sie mit

ssl testing mail server

ISPConfig-Rundwürfel-Plugins

Diese Plugins sind für Webmail-Benutzer nützlich. Sie erlauben z.B. das Ändern des E-Mail-Passwortes im Roundcube. Einige andere Einstellungen können ebenfalls im Roundcube geändert werden. Sie können alle im ISPConfig-Panel geändert werden, aber einige E-Mail-Benutzer möchten das Panel vielleicht nicht verwenden.

Ich habe die ISPConfig Rouncube-Plugins unter Verwendung des Tutorials ISPConfig 3 Roundcube-Plugin unter Debian 9 installiert. Das Tutorial funktionierte genau auf Debian 10 Buster, außer dass ispconfig3_account/config/config.inc.php jetzt eine weitere Zeile hat:

$config['soap_validate_cert'] = true;

Dies kann auch so bleiben, da das Zertifikat im vorherigen Kapitel dieses Tutorials ordnungsgemäß eingerichtet und getestet wurde. Wenn der Host jedoch kein gültiges Zertifikat besitzt, ändern Sie diese Einstellung auf „false“.

Ich hatte ein Problem. Bei einigen Punkten im Abschnitt „Konto“ erschien eine Fehlermeldung

An error occurred.
Soap Error: The login is not allowed from <host ip-number>

Ich habe das Problem gelöst, indem ich den Remote Access angekreuzt und posti.taleman.ovh für den rcmail-remote-Benutzer geschrieben habe, den ich im Anschluss an das Tutorial erstellt habe. Es sieht so aus, als ob das Tutorial falsch ist, wenn man „Remote Access“ nicht ankreuzen muss. Nun scheint es mir, dass es sowohl für Einzelserver-Einrichtungen als auch für ISPConfig-Multiserver-Einrichtungen mit einem separaten E-Mail-Server benötigt wird.

Weitere Verwendung des Tutorials

Jetzt können Sie eine weitere E-Mail-Domäne erstellen. Denken Sie daran, einen MX-Eintrag für diese Domäne zu erstellen und auf Ihren E-Mail-Server zu verweisen. Sie können denselben E-Mail-Server für alle von Ihnen erstellten E-Mail-Domänen verwenden. Dies ist die übliche Vorgehensweise, da es eine ziemliche Verschwendung wäre, für jede E-Mail-Domäne einen separaten E-Mail-Server zu erstellen.

Fehlerbehebung

Nach diesem Tutorial funktioniert mein frisch eingerichteter E-Mail-Server. Wenn Ihrer nicht funktioniert, überprüfen Sie, ob Sie dieses Tutorial befolgt und nicht einige Schritte übersprungen haben.

Die Lektüre des Forums hat gezeigt, dass häufig ein nicht funktionierender E-Mail-Server durch falsche Einstellungen für Hostname und Hostname -f und/oder Fehler in der Datei /etc/postfix/main.cf verursacht wird.

Wenn Sie Probleme mit dem DNS-Namensservice vermuten, überprüfen Sie diese mit DNS mit ISPConfig -tutorial. Es gibt Website-Tools, die DNS überprüfen, wie intodns.com, dnschecker.com, mxtoolbox.com.

Wenn E-Mails nicht empfangen oder nicht gesendet werden, übernimmt postfix diese Funktionen und sie werden in /var/log/mail.log protokolliert. Das gilt auch für

tail -f /var/log/mail.log | grep postfix to see what happens when mail is being received or sent.

Wenn Sie Probleme mit dem E-Mail-Client (z.B. Thunderbird) haben, können Sie hier sehen, was passiert:

tail -f /var/log/mail.log | grep dovecot

Falls eine bestimmte E-Mail problematisch ist, können Sie die Mail-Protokolleinträge anhand der ID dieser E-Mail finden. Zum Beispiel:

Sep 23 14:19:34 posti postfix/smtps/smtpd[10260]: A9F2880C76:
client=dsl-tkubng21-58c1ce-191.dhcp.inet.fi[99.99.99.99],
sasl_method=PLAIN, sasl_username=tapio@taleman.ovh

Die ID für diese E-Mail lautet A9F2880C76. Sie können die Protokolleinträge für diese E-Mail finden, indem Sie

# grep A9F2880C76 /var/log/mail.log

Der Befehl mailq zeigt E-Mails an, die sich in der Postfix-Warteschlange befinden. Das heißt, die E-Mails, die noch nicht zugestellt sind. Es ist normal, dass dort einige aktuelle Einträge vorhanden sind, E-Mails können nicht immer sofort zugestellt werden. Sie können den Inhalt dieser E-Mails mit Hilfe der Warteschlangen-ID sehen, etwa so:

# postcat /var/spool/postfix/deferred/A/A9F2880C76

Howtoforge hat ISPConfig-Foren, fragen Sie dort um Rat.

Das könnte dich auch interessieren …