Dieses Tutorial zeigt Ihnen, wie Sie mehrere E-Mail-Domänen (virtuelles Hosting) auf einem CentOS/RHEL-Server mit PostfixAdmin einrichten, einer webbasierten Open-Source-Schnittstelle zum Konfigurieren und Verwalten eines Postfix-basierten E-Mail-Servers für viele Domänen und Benutzer.
Voraussetzungen
Um diesem Tutorial zu folgen, ist es erforderlich, dass
- Sie haben PostfixAdmin mit einer Maildomain konfiguriert.
- Sie haben Teil 4 befolgt, um SPF und DKIM einzurichten.
- Sie haben Roundcube Webmail installiert.
Sobald die oben genannten Anforderungen erfüllt sind, befolgen Sie die nachstehenden Anweisungen.
Was Sie tun müssen
Wenn Sie mehrere E-Mail-Domains hosten möchten, müssen Sie dies tun
- Fügen Sie eine neue E-Mail-Domain und einen neuen Benutzer im webbasierten PostfixAdmin-Panel hinzu.
- Erstellen Sie einen MX-, A- und SPF-Eintrag für die neue E-Mail-Domain.
- Richten Sie die DKIM-Signatur für die neue Domain ein.
- DMARC-Eintrag für die neue Domain erstellen.
- RoundCube Webmail, Postfix und Dovecot für mehrere Domains einrichten
Schritt 1:Zusätzliche Domains im PostfixAdmin-Panel hinzufügen
Melden Sie sich mit dem Postmaster-Konto im PostfixAdmin-Panel an. (https://postfixadmin.your-domain.com/
) Gehen Sie dann zu Domain List
-> New Domain
um eine neue Domain hinzuzufügen.
Beachten Sie, dass die neue Domain einen DNS-A-Eintrag haben sollte, oder PostfixAdmin würde die folgende Fehlermeldung ausgeben. Sie können den DNS-Propagierungsstatus auf dnsmap.io überprüfen.
Invalid domain domain2.com, and/or not discoverable in DNS
Fügen Sie als Nächstes einen Benutzer unter der neuen Domain hinzu.
Schritt 2:MX-, A- und SPF-Record für die neue Mail-Domain erstellen
Fügen Sie in Ihrem DNS-Manager den MX-Eintrag für die neue Domain wie unten hinzu.
Record Type Name Value MX @ mail.domain2.com
Der A-Eintrag verweist auf die IP-Adresse Ihres Mailservers.
Record Type Name Value A mail IP-address-of-mail-server
Wenn Ihr Server eine IPv6-Adresse verwendet, stellen Sie sicher, dass Sie einen AAAA-Eintrag hinzufügen.
Erstellen Sie dann einen SPF-Eintrag, damit der MX-Host E-Mails für die neue E-Mail-Domäne senden kann.
Record Type Name Value TXT @ v=spf1 mx ~all
Schritt 3:Einrichten der DKIM-Signierung für die neue Domain
In Teil 4 dieser Tutorial-Serie haben wir OpenDKIM für eine einzelne Domain installiert und konfiguriert. Jetzt müssen wir OpenDKIM anweisen, jede ausgehende E-Mail für die neue E-Mail-Domain zu signieren.
Bearbeiten Sie die OpenDKIM-Signaturtabellendatei.
sudo nano /etc/opendkim/SigningTable
Fügen Sie die zweite Domain wie unten beschrieben hinzu.
*@domain1.com 20200308._domainkey.domain1.com *@domain2.com 20200308._domainkey.domain2.com
Bearbeiten Sie die Schlüsseltabellendatei.
sudo nano /etc/opendkim/KeyTable
Fügen Sie die zweite Domain wie unten beschrieben hinzu.
20200308._domainkey.domain1.com domain1.com:20200308:/etc/opendkim/keys/domain1.com/20200308.private 20200308._domainkey.domain2.com domain2.com:20200308:/etc/opendkim/keys/domain2.com/20200308.private
Bearbeiten Sie die Datei für vertrauenswürdige Hosts.
sudo nano /etc/opendkim/TrustedHosts
Fügen Sie die zweite Domain wie unten beschrieben hinzu.
127.0.0.1 localhost *.domain1.com *.domain2.com
Als nächstes müssen wir ein privates/öffentliches Schlüsselpaar für die zweite Domain generieren. Erstellen Sie einen separaten Ordner für die zweite Domain.
sudo mkdir /etc/opendkim/keys/domain2.com
Generieren Sie Schlüssel mit opendkim-genkey
Werkzeug.
sudo opendkim-genkey -b 2048 -d domain2.com -D /etc/opendkim/keys/domain2.com -s 20200308 -v
Der obige Befehl erstellt 2048-Bit-Schlüssel. -d (domain)
gibt die Domäne an. -D (directory)
gibt das Verzeichnis an, in dem die Schlüssel gespeichert werden, und wir verwenden 20200308
(aktuelles Datum) als selector (-s)
. Sobald der Befehl ausgeführt wird, wird der private Schlüssel in 20200308.private
geschrieben Datei und der öffentliche Schlüssel wird in 20200308.txt
geschrieben Datei.
Machen Sie opendkim
als Eigentümer des privaten Schlüssels.
sudo chown opendkim:opendkim /etc/opendkim/keys/domain2.com/20200308.private
Anzeige des öffentlichen Schlüssels
sudo cat /etc/opendkim/keys/domain2.com/20200308.txt
Die Zeichenfolge nach dem p
Parameter ist der öffentliche Schlüssel.
Erstellen Sie in Ihrem DNS-Manager einen TXT-Eintrag für die zweite Domain. Geben Sie 20200308._domainkey
ein im Namensfeld. Kopieren Sie alles in den Klammern und fügen Sie es in das Wertfeld ein. Löschen Sie alle doppelten Anführungszeichen. (Sie können es zuerst in einen Texteditor einfügen, alle doppelten Anführungszeichen löschen und es dann in Ihren DNS-Manager kopieren. Ihr DNS-Manager fordert Sie möglicherweise auf, andere ungültige Zeichen zu löschen, z. B. Wagenrücklauf.)
Nach dem Speichern Ihrer Änderungen. Überprüfen Sie den TXT-Eintrag mit diesem Befehl.
dig TXT 20203008._domainkey.domain2.com
Jetzt können Sie den folgenden Befehl ausführen, um zu testen, ob Ihr DKIM-DNS-Eintrag korrekt ist.
sudo opendkim-testkey -d domain2.com -s 20200308 -vvv
Wenn alles in Ordnung ist, sehen Sie
opendkim-testkey: using default configfile /etc/opendkim.conf opendkim-testkey: checking key '20203008._domainkey.domain2.com' opendkim-testkey: key secure opendkim-testkey: key OK
Wenn Sie „Schlüssel nicht sicher“ sehen, geraten Sie nicht in Panik. Dies liegt daran, dass DNSSEC für Ihren Domainnamen nicht aktiviert ist. DNSSEC ist ein Sicherheitsstandard für sichere DNS-Abfragen. Die meisten Domainnamen haben DNSSEC nicht aktiviert. Sie können dieser Anleitung weiterhin folgen.
Starten Sie OpenDKIM neu, damit es mit dem Signieren von E-Mails für die zweite Domain beginnt.
sudo systemctl restart opendkim
Schritt 4:DMARC-Eintrag für die neue Domain erstellen
Um einen DMARC-Eintrag zu erstellen, gehen Sie zu Ihrem DNS-Manager und fügen Sie ein TXT hinzu Aufzeichnung. Geben Sie im Namensfeld _dmarc
ein . Geben Sie im Wertfeld Folgendes ein. Beachten Sie, dass Sie den [email protected]
erstellen müssen E-Mail-Adresse.
v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
Der obige DMARC-Eintrag ist ein sicherer Ausgangspunkt. Wenn Sie eine detaillierte Erklärung von DMARC lesen möchten, lesen Sie bitte den folgenden Artikel.
- Erstellen eines DMARC-Eintrags zum Schutz Ihres Domainnamens vor E-Mail-Spoofing
Schritt 5:Einrichten von RoundCube, Postfix und Dovecot für mehrere Domains
Ich nehme an, Sie haben Roundcube Webmail für die erste E-Mail-Domain installiert.
Es ist sinnvoll, Benutzern der ersten Domain die Verwendung von mail.domain1.com
zu ermöglichen und Benutzer der zweiten Domäne verwenden mail.domain2.com
bei Verwendung von RoundCube-Webmail. Ich zeige Ihnen, wie es mit Apache und Nginx geht.
Apache
Wenn Roundcube vom Apache-Webserver bereitgestellt wird, erstellen Sie einen virtuellen Host für die zweite Domain.
sudo nano /etc/httpd/conf.d/mail.domain2.com.conf
Fügen Sie den folgenden Text in die Datei ein.
<VirtualHost *:80> ServerName mail.domain2.com DocumentRoot /var/www/roundcube/ ErrorLog /var/log/httpd/mail.domain2.com_error.log CustomLog /var/log/httpd/mail.domain2.com_access.log combined <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/roundcube/> Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
Speichern und schließen Sie die Datei. Laden Sie Apache neu, damit die Änderungen wirksam werden.
sudo systemctl reload httpd
Nginx
Wenn Roundcube vom Nginx-Webserver bereitgestellt wird, erstellen Sie einen virtuellen Host für die zweite Domain.
sudo nano /etc/nginx/conf.d/mail.domain2.com.conf
Fügen Sie den folgenden Text in die Datei ein.
server { listen 80; server_name mail.domain2.com; root /var/www/roundcube/; index index.php index.html index.htm; error_log /var/log/nginx/roundcube.error; access_log /var/log/nginx/roundcube.access; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /.well-known/acme-challenge { allow all; } location ~ ^/(README|INSTALL|LICENSE|CHANGELOG|UPGRADING)$ { deny all; } location ~ ^/(bin|SQL)/ { deny all; } # A long browser cache lifetime can speed up repeat visits to your page location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ { access_log off; log_not_found off; expires 360d; } }
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfigurationen.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.
sudo systemctl reload nginx
Erhalten des TLS-Zertifikats
Verwenden Sie jetzt Certbot, um ein TLS-Zertifikat für alle Ihre E-Mail-Domänen zu erhalten, sodass Sie ein einziges TLS-Zertifikat mit mehreren Domänennamen darauf haben und E-Mail-Clients keine Sicherheitswarnungen ausgeben.
Apache
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Nginx
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d mail.domain1.com,mail.domain2.com --cert-name mail.domain1.com --email [email protected]
Beachten Sie, dass wir im obigen Befehl den Zertifikatsnamen mit der ersten E-Mail-Domäne angegeben haben, die im Dateipfad verwendet wird, sodass Sie den Dateipfad in der Postfix- oder Dovecot-Konfigurationsdatei nicht ändern müssen.
Wenn Sie gefragt werden, ob Sie das vorhandene Zertifikat aktualisieren möchten, um die neue Domäne aufzunehmen, antworten Sie mit U
und drücken Sie die Eingabetaste.
Jetzt sollten Sie die folgende Meldung sehen, die darauf hinweist, dass das Multi-Domain-Zertifikat erfolgreich abgerufen wurde.
Laden Sie Apache oder Nginx neu, um das neue Zertifikat abzurufen.
sudo systemctl reload httpd sudo systemctl reload nginx
Sie sollten nun in der Lage sein, verschiedene Domains für den Zugriff auf RoundCube-Webmail zu verwenden. Außerdem müssen Sie den Postfix-SMTP-Server und den Dovecot-IMAP-Server neu laden, damit sie das neue Zertifikat abrufen können. Das ist alles, was Sie tun müssen, damit Postfix und Dovecot mehrere Domains bedienen können.
sudo systemctl reload postfix dovecot
Mail-Client auf Ihrem Computer oder Mobilgerät verwenden
Starten Sie Ihren Desktop-E-Mail-Client wie Mozilla Thunderbird und fügen Sie ein E-Mail-Konto der zweiten Domain hinzu.
- Wählen Sie im Abschnitt für eingehende Server das IMAP-Protokoll aus und geben Sie
mail.domain2.com
ein Wählen Sie als Servernamen Port 143 und STARTTLS. Wählen Sienormal password
als Authentifizierungsmethode. - Wählen Sie im ausgehenden Abschnitt das SMTP-Protokoll aus und geben Sie
mail.domain2.com
ein Wählen Sie als Servernamen Port 587 und STARTTLS. Wählen Sienormal password
als Authentifizierungsmethode.
Hinweis :Sie können auch Port 993 mit SSL/TLS-Verschlüsselung für IMAP und Port 465 mit SSL/TLS-Verschlüsselung für SMTP verwenden. Das sollten Sie nicht Verwenden Sie Port 25 als SMTP-Port, um ausgehende E-Mails zu übermitteln.
Obwohl Postfix-SMTP-Server und Dovecot-IMAP-Server bei der Kommunikation mit anderen den Hostnamen der ersten E-Mail-Domain (mail.domain1.com) verwenden, verwenden sie jetzt ein Multi-Domain-Zertifikat, sodass der E-Mail-Client keine Zertifikatswarnungen anzeigt.
SPF- und DKIM-Prüfung
Jetzt können Sie Ihren Desktop-E-Mail-Client oder Webmail-Client verwenden, um eine Test-E-Mail an [email protected]
zu senden und erhalten Sie einen kostenlosen E-Mail-Authentifizierungsbericht. Hier ist der Bericht, den ich von port25.com erhalten habe
Vergessen Sie nicht, Ihren E-Mail-Score unter https://www.mail-tester.com zu testen und auch die E-Mail-Platzierung mit GlockApps zu testen.
Wenn die DKIM-Prüfung fehlschlägt, können Sie unter https://www.dmarcanalyzer.com/dkim/dkim-check/ nachsehen, ob es Fehler in Ihrem DKIM-Eintrag gibt.
Was ist, wenn Ihre E-Mails immer noch als Spam markiert werden?
In diesem Artikel habe ich weitere Tipps für Sie:7 effektive Tipps, um zu verhindern, dass Ihre E-Mails als Spam markiert werden. Obwohl es einige Zeit und Mühe erfordert, werden Ihre E-Mails schließlich im Posteingang platziert, nachdem Sie diese Tipps angewendet haben.
rDNS für mehrere E-Mail-Domains?
Reverse DNS (rDNS), auch bekannt als PTR-Eintrag, wird verwendet, um zu überprüfen, ob die IP-Adresse des Absenders mit dem HELO-Hostnamen übereinstimmt. Sie müssen keinen weiteren PTR-Eintrag hinzufügen, wenn Sie eine neue E-Mail-Domain hinzufügen. Ihr rDNS sollte auf nur einen Hostnamen eingestellt sein, d. h. den in Postfix festgelegten Hostnamen, der mit dem folgenden Befehl angezeigt werden kann.
postconf myhostname
rDNS ist ein Datensatz für IP-Adressen. Es ist kein Eintrag für den Domainnamen. Wenn Sie nur eine IP-Adresse haben, benötigen Sie nur einen rDNS-Eintrag, der auf einen Hostnamen verweist. Die umgekehrte DNS-Prüfung überprüft nicht, was From:
ist Domain in Ihrer E-Mail ist, solange Ihre IP-Adresse einen rDNS-Eintrag hat und der Hostname wieder auf dieselbe IP-Adresse aufgelöst werden kann, können Sie die Reverse-DNS-Prüfung bestehen.
Außerdem müssen Sie die folgenden Einstellungen in Postfix nicht ändern, wenn Sie mehrere Domains auf einem Server hosten.
- meinhostname
- meinUrsprung
- mein Ziel
Gehostete E-Mail-Dienste wie G Suite und Microsoft Exchange Online alle verwenden einen Hostnamen für einen Server, um eine E-Mail für ihre Kunden zu senden. E-Mails, die von G Suite-Nutzern gesendet werden, verwenden alle google.com
im Hostnamen und in E-Mails, die von Microsoft Exchange Online-Benutzern gesendet werden, verwenden alle outlook.com
im Hostnamen. Dies gilt auch für andere E-Mail-Dienstanbieter wie Mailchimp, SendinBlue, SendPluse usw. Sie alle verwenden einen Hostnamen für einen einzelnen Server und eine IP-Adresse hat nur einen rDNS-Eintrag.