Das Einrichten Ihres eigenen E-Mail-Servers unter Linux von Grund auf ist ein langer und mühsamer Prozess, ein Schmerz im Hintern, wenn Sie kein fortgeschrittener Benutzer sind. Dieses Tutorial zeigt Ihnen, wie Sie iRedMail verwenden, um schnell einen voll funktionsfähigen Mailserver unter Ubuntu 20.04 einzurichten, was Ihnen viel Zeit und Kopfschmerzen erspart.
Was ist iRedMail?
iRedMail ist ein Shell-Skript, das automatisch alle erforderlichen Mailserver-Komponenten auf Ihrem Linux/BSD-Server installiert und konfiguriert, wodurch die manuelle Installation und Konfiguration entfällt. Mit iRedMail können Sie ganz einfach unbegrenzte Mailboxen und unbegrenzte E-Mail-Domains erstellen in einem webbasierten Admin-Panel. Postfächer können in MariaDB/MySQL, PostgreSQL-Datenbank oder OpenLDAP gespeichert werden. Das Folgende ist eine Liste von Open-Source-Software, die automatisch von iRedMail installiert und konfiguriert wird.
- Postfix-SMTP-Server
- Dovecot-IMAP-Server
- Nginx Webserver, um das Admin-Panel und Webmail bereitzustellen
- OpenLDAP, MySQL/MariaDB oder PostgreSQL zum Speichern von Benutzerinformationen
- Amavised-new für DKIM-Signatur und -Verifizierung
- SpamAssassin für Anti-Spam
- ClamAV für Virenschutz
- Roundcube-Webmail
- SOGo Groupware, die Webmail, Kalender (CalDAV), Kontakte (CardDAV), Aufgaben und ActiveSync-Dienste bereitstellt.
- Fail2ban zum Schutz von SSH
- mlmmj-Mailinglisten-Manager
- Überwachung des Netdata-Servers
- iRedAPD Postfix Policy Server für Greylisting
Schritt 1:Wählen Sie den richtigen Hosting-Provider und kaufen Sie einen Domainnamen
Um einen voll funktionsfähigen E-Mail-Server mit iRedMail einzurichten, benötigen Sie einen Server mit mindestens 3 GB RAM, da Ihr Server nach der Installation mehr als 2 GB RAM verwendet.
Es wird dringend empfohlen, iRedMail auf einer sauberen Installation von zu installieren Ubuntu 20.04 Server.
Dieses Tutorial wird auf einem Kamatera VPS (virtueller privater Server) mit 1 CPU und 3 GB RAM für 9 $/Monat durchgeführt. Sie bieten eine 30-tägige kostenlose Testversion an.
Kamatera ist eine sehr gute Option, um einen Mailserver zu betreiben, weil
- Sie blockieren Port 25 nicht , sodass Sie unbegrenzt E-Mails (Transaktions-E-Mails und Newsletter) versenden können, ohne Geld für den SMTP-Relay-Dienst auszugeben. Kamatera hat keine SMTP-Limits. Sie können eine Million E-Mails pro Tag versenden.
- Die IP-Adresse steht auf keiner E-Mail-Blacklist . (Zumindest trifft das in meinem Fall zu. Ich habe mich für das Rechenzentrum in Dallas entschieden.) Sie möchten definitiv nicht auf der gefürchteten IP-Blacklist von Microsoft Outlook oder der Blacklist von Spamrats aufgeführt werden. Einige Blacklists blockieren einen ganzen IP-Bereich und Sie haben keine Möglichkeit, Ihre IP-Adresse von dieser Art von Blacklist zu entfernen.
- Sie können den PTR-Eintrag bearbeiten, um die E-Mail-Zustellbarkeit zu verbessern.
- Sie ermöglichen es Ihnen, Newsletter zu versenden an Ihre E-Mail-Abonnenten mit nein Stundenlimits oder Tageslimits, was auch immer.
- Sie können mehrere IP-Adressen für einen einzelnen Server bestellen. Dies ist sehr nützlich für Leute, die eine große Menge an E-Mails senden müssen. Sie können den E-Mail-Verkehr auf mehrere IP-Adressen verteilen, um eine bessere E-Mail-Zustellbarkeit zu erreichen.
Andere VPS-Anbieter wie DigitalOcean blockieren Port 25. DigitalOcean würde Port 25 nicht entsperren, daher müssen Sie ein SMTP-Relay einrichten, um die Blockierung zu umgehen, was Sie zusätzliches Geld kosten kann. Wenn Sie Vultr VPS verwenden, ist Port 25 standardmäßig blockiert. Sie können es entsperren, wenn Sie ein Support-Ticket öffnen, aber sie können es jederzeit wieder blockieren, wenn sie entscheiden, dass Ihre E-Mail-Sendeaktivität nicht erlaubt ist. Vultr kann es tatsächlich erneut blockieren, wenn Sie ihre Server zum Versenden von Newslettern verwenden.
Gehen Sie zur Kamatera-Website, um ein Konto zu erstellen, und erstellen Sie dann Ihren Server in Ihrem Konto-Dashboard.
Ich empfehle, das unten verlinkte Tutorial zu befolgen, um Ihren Linux-VPS-Server auf Kamatera richtig einzurichten.
- So erstellen Sie einen Linux-VPS-Server auf Kamatera
Sobald Sie einen Server erstellt haben, sendet Ihnen Kamatera eine E-Mail mit den SSH-Anmeldedaten des Servers. Um sich bei Ihrem Server anzumelden, verwenden Sie einen SSH-Client. Wenn Sie Linux oder macOS auf Ihrem Computer verwenden, öffnen Sie einfach ein Terminalfenster und führen Sie den folgenden Befehl aus, um sich bei Ihrem Server anzumelden. Ersetzen Sie 12.34.56.78 durch die IP-Adresse Ihres Servers.
ssh [email protected]
Sie werden aufgefordert, das Passwort einzugeben.
Außerdem benötigen Sie einen Domänennamen. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie Whois-Datenschutz lebenslang kostenlos anbieten.
Schritt 2:DNS-MX-Eintrag erstellen
Der MX-Eintrag gibt an, welcher Host oder welche Hosts E-Mails für einen bestimmten Domainnamen verarbeiten. Zum Beispiel der Host, der E-Mails für linuxbabe.com
verarbeitet ist mail.linuxbabe.com
. Wenn jemand mit einem Gmail-Konto eine E-Mail an [email protected]
sendet , dann fragt der Gmail-Server den MX-Eintrag von linuxbabe.com ab. Wenn es herausfindet, dass mail.linuxbabe.com
für die Annahme von E-Mails zuständig ist, fragt es dann den A-Eintrag von mail.linuxbabe.com
ab um die IP-Adresse zu erhalten, damit die E-Mail zugestellt werden kann.
Sie müssen zu Ihrem DNS-Hostingdienst (normalerweise Ihrem Domain-Registrar) gehen, um DNS-Einträge zu erstellen. Erstellen Sie in Ihrem DNS-Manager einen MX-Eintrag für Ihren Domainnamen. Geben Sie @
ein Geben Sie im Feld Name den Hauptdomänennamen ein und geben Sie dann mail.your-domain.com
ein im Feld Wert.
Hinweis: Der Hostname für den MX-Eintrag darf kein Alias für einen anderen Namen sein. Außerdem wird dringend empfohlen, Hostnamen statt bloßer IP-Adressen für MX-Einträge zu verwenden.
Ihr DNS-Manager fordert Sie möglicherweise auf, einen Präferenzwert (auch bekannt als Prioritätswert) einzugeben. Es kann eine beliebige Zahl zwischen 0 und 65.356 sein. Eine kleine Zahl hat eine höhere Priorität als eine große Zahl. Es wird empfohlen, den Wert auf 0 zu setzen, damit dieser Mailserver die höchste Priorität für den Empfang von E-Mails hat. Nachdem Sie den MX-Eintrag erstellt haben, müssen Sie auch einen A-Eintrag für mail.your-domain.com
erstellen , damit sie in eine IP-Adresse aufgelöst werden kann. Wenn Ihr Server eine IPv6-Adresse verwendet, stellen Sie sicher, dass Sie einen AAAA-Eintrag hinzufügen.
Hinweis:Wenn Sie den Cloudflare-DNS-Dienst verwenden, sollten Sie die CDN-Funktion beim Erstellen eines A-Eintrags für mail.your-domain.com
nicht aktivieren . Cloudflare unterstützt keinen SMTP-Proxy.
Schritt 3:Konfigurieren des Hostnamens
Melden Sie sich über SSH bei Ihrem Server an und führen Sie dann den folgenden Befehl aus, um vorhandene Softwarepakete zu aktualisieren.
sudo apt update sudo apt upgrade -y
Während des Upgrade-Vorgangs wird Ihnen möglicherweise die folgende Frage gestellt. Wenn Sie weiterhin Port 6543 für SSH verwenden möchten, wählen Sie keep the local version currently installed
aus . Wenn Sie Port 22 für SSH verwenden möchten, wählen Sie install the package maintainer's version
.
Ich empfehle dringend, ein sudo
zu erstellen Benutzer für die Verwaltung Ihres Servers, anstatt den standardmäßigen root
zu verwenden Benutzer. Führen Sie den folgenden Befehl aus, um einen Benutzer zu erstellen. Ersetzen Sie username
mit Ihrem bevorzugten Benutzernamen.
adduser username
Fügen Sie dann den Benutzer zum sudo
hinzu Gruppe.
adduser username sudo
Wechseln Sie zum neuen Benutzer.
su - username
Legen Sie als Nächstes mit dem folgenden Befehl einen vollqualifizierten Domänennamen (FQDN) für Ihren Server fest.
sudo hostnamectl set-hostname mail.your-domain.com
Wir müssen auch /etc/hosts
aktualisieren Datei mit einem Befehlszeilen-Texteditor wie Nano.
sudo nano /etc/hosts
Bearbeiten Sie es wie unten. (Verwenden Sie die Pfeiltasten, um den Cursor in der Datei zu bewegen.)
127.0.0.1 mail.your-domain.com localhost
Speichern und schließen Sie die Datei. (Um eine Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O
, und drücken Sie dann Enter
bestätigen. Um die Datei zu schließen, drücken Sie Ctrl+X
.)
Um die Änderungen zu sehen, melden Sie sich erneut an und führen Sie dann den folgenden Befehl aus, um Ihren Hostnamen anzuzeigen.
hostname -f
Schritt 4:Mailserver auf Ubuntu 20.04 mit iRedMail einrichten
Führen Sie die folgenden Befehle aus, um die neueste Version des iRedMail-Skriptinstallationsprogramms aus seinem Github-Repository herunterzuladen.
wget https://github.com/iredmail/iRedMail/archive/1.5.0.tar.gz
Extrahieren Sie die archivierte Datei.
tar xvf 1.5.0.tar.gz
Dann cd in das neu erstellte Verzeichnis.
cd iRedMail-1.5.0/
Fügen Sie der iRedMail.sh
eine ausführbare Berechtigung hinzu Skript.
chmod +x iRedMail.sh
Führen Sie als Nächstes das Bash-Skript mit sudo-Berechtigung aus.
sudo bash iRedMail.sh
Der Setup-Assistent für den Mailserver wird angezeigt. Verwenden Sie die Tabulatortaste, um Ja auszuwählen und drücken Sie die Eingabetaste.
Auf dem nächsten Bildschirm werden Sie aufgefordert, den E-Mail-Speicherpfad auszuwählen. Sie können den Standardpfad verwenden:/var/vmail
, drücken Sie einfach Enter
.
Wählen Sie dann aus, ob Sie einen Webserver betreiben möchten. Es wird dringend empfohlen, dass Sie sich für die Ausführung eines Webservers entscheiden, da Sie das webbasierte Admin-Panel benötigen, um E-Mail-Konten hinzuzufügen. Außerdem können Sie damit auf das Roundcube-Webmail zugreifen. Standardmäßig ist der Nginx-Webserver ausgewählt, sodass Sie einfach Enter
drücken können . (Ein Sternchen zeigt an, dass das Element ausgewählt ist.)
Wählen Sie dann das Speicher-Backend für E-Mail-Konten aus. Wählen Sie eine aus, mit der Sie vertraut sind. In diesem Tutorial wurde MariaDB ausgewählt. Drücken Sie die Pfeiltasten nach oben und unten und drücken Sie die Leertaste, um auszuwählen.
Wenn Sie MariaDB oder MySQL ausgewählt haben, müssen Sie das MySQL-Root-Passwort festlegen.
Geben Sie als Nächstes Ihre erste E-Mail-Domain ein. Sie können später im webbasierten Admin-Panel weitere E-Mail-Domains hinzufügen. In dieser Anleitung wird davon ausgegangen, dass Sie ein E-Mail-Konto wie [email protected] benötigen . In diesem Fall müssen Sie Ihre-Domain.com eingeben hier, ohne Subdomain. Drücken Sie nicht die Leertaste nach Ihrem Domainnamen. Ich denke, iRedMail kopiert das Leerzeichen zusammen mit Ihrem Domainnamen, was zu einem Installationsfehler führen kann.
Legen Sie als Nächstes ein Passwort für den E-Mail-Domain-Administrator fest.
Wählen Sie optionale Komponenten. Standardmäßig sind 4 Elemente ausgewählt. Wenn Sie die SOGo-Groupware (Webmail, Kalender, Adressbuch, ActiveSync) verwenden möchten, drücken Sie zur Auswahl die Pfeiltaste nach unten und die Leertaste. Drücken Sie Enter
zum nächsten Bildschirm.
Jetzt können Sie Ihre Konfigurationen überprüfen. Geben Sie Y
ein um mit der Installation aller Mailserver-Komponenten zu beginnen.
Wählen Sie am Ende der Installation y
um die von iRedMail bereitgestellten Firewall-Regeln zu verwenden und die Firewall neu zu starten.
Jetzt ist die Installation von iRedMail abgeschlossen. Ihnen werden die URL von Webmail, das Web-Admin-Panel und die Anmeldeinformationen mitgeteilt. Die iRedMail.tips
Datei enthält wichtige Informationen über Ihren iRedMail-Server.
Starten Sie Ihren Ubuntu 20.04-Server neu.
sudo shutdown -r now
Sobald Ihr Server wieder online ist, können Sie das Web-Admin-Panel aufrufen.
https://mail.your-domain.com/iredadmin/
Hinweis dass in der obigen URL das Unterverzeichnis für den Zugriff auf das Admin-Panel /iredadmin/
ist , nicht /iredmail/
. Und da es ein selbstsigniertes TLS-Zertifikat verwendet, müssen Sie Ihrem Webbrowser eine Sicherheitsausnahme hinzufügen.
Schritt 5:TLS-Zertifikat von Let’s Encrypt installieren
Da der Mailserver ein selbstsigniertes TLS-Zertifikat verwendet, sehen sowohl Benutzer des Desktop-Mail-Clients als auch des Webmail-Clients eine Warnung. Um dies zu beheben, können wir ein kostenloses TLS-Zertifikat von Let’s Encrypt erhalten und installieren.
Erhalt des Zertifikats
Melden Sie sich zunächst erneut über SSH bei Ihrem Server an und führen Sie den folgenden Befehl aus, um den Client Let’s Encrypt (certbot) auf Ubuntu 20.04 zu installieren.
sudo apt install certbot
iRedMail hat bereits TLS-Einstellungen im standardmäßigen virtuellen Nginx-Host konfiguriert, daher empfehle ich hier, das Webroot-Plugin anstelle des nginx-Plugins zu verwenden, um ein Zertifikat zu erhalten. Führen Sie den folgenden Befehl aus. Ersetzen Sie den roten Text durch Ihre tatsächlichen Daten.
sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.your-domain.com -w /var/www/html/
Wenn Sie gefragt werden, ob Sie Mitteilungen von EFF erhalten möchten, können Sie Nein wählen.
Wenn alles geklappt hat, sehen Sie den folgenden Text, der anzeigt, dass Sie erfolgreich ein TLS-Zertifikat erhalten haben. Ihr Zertifikat und Ihre Kette wurden unter /etc/letsencrypt/live/mail.your-domain.com/
gespeichert Verzeichnis.
Fehler beim Erhalt des TLS-Zertifikats
Wenn certbot kein TLS-Zertifikat erhalten konnte, liegt dies möglicherweise daran, dass Ihre DNS-Einträge nicht an das Internet weitergegeben werden. Abhängig von der von Ihnen verwendeten Domänenregistrierungsstelle wird Ihr DNS-Eintrag möglicherweise sofort weitergegeben oder es kann bis zu 24 Stunden dauern, bis er weitergegeben wird. Sie können zu https://dnsmap.io gehen, den Hostnamen Ihres Mailservers eingeben (mail.your-domain.com
), um die DNS-Weitergabe zu überprüfen.
Wenn certbot kein Zertifikat erhalten konnte und Sie die folgende Meldung sehen,
Failed authorization procedure. mail.linuxbabe.com (http-01): urn:ietf:params:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching https://mail.linuxbabe.com/.well-known/acme-challenge/IZ7hMmRE4ZlGW7cXYoq2Lc_VrFzVFyfW6E0pzNlhiOA: Timeout during connect (likely firewall problem)
Möglicherweise haben Sie einen AAAA-Eintrag für mail.your-domain.com
gesetzt , aber der Nginx-Webserver hört nicht auf die IPv6-Adresse. Um diesen Fehler zu beheben, bearbeiten Sie /etc/nginx/sites-enabled/00-default.conf
Datei
sudo nano /etc/nginx/sites-enabled/00-default.conf
Suchen Sie die folgende Zeile.
#listen [::]:80;
Entfernen Sie das #
Zeichen, um IPv6 für diesen virtuellen Nginx-Host zu aktivieren.
listen [::]:80;
Speichern und schließen Sie die Datei. Bearbeiten Sie dann den virtuellen SSL-Host /etc/nginx/sites-enabled/00-default-ssl.conf
.
sudo nano /etc/nginx/sites-enabled/00-default-ssl.conf
Fügen Sie die folgende Zeile hinzu.
listen [::]:443 ssl http2;
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.
sudo nginx -t
Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderung wirksam wird.
sudo systemctl reload nginx
Führen Sie den folgenden Befehl erneut aus, um das TLS-Zertifikat zu erhalten. Roten Text durch Ihre tatsächlichen Daten ersetzen.
sudo certbot certonly --webroot --agree-tos --email [email protected] -d mail.your-domain.com -w /var/www/html/
Jetzt sollten Sie in der Lage sein, das TLS-Zertifikat erfolgreich zu erhalten.
Installieren des Zertifikats in Nginx
Nachdem Sie ein TLS-Zertifikat erhalten haben, konfigurieren wir den Nginx-Webserver für die Verwendung. Bearbeiten Sie die SSL-Vorlagendatei.
sudo nano /etc/nginx/templates/ssl.tmpl
Suchen Sie die folgenden 2 Zeilen.
ssl_certificate /etc/ssl/certs/iRedMail.crt; ssl_certificate_key /etc/ssl/private/iRedMail.key;
Ersetzen Sie sie durch:
ssl_certificate /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mail.your-domain.com/privkey.pem;
Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration und laden Sie neu.
sudo nginx -t sudo systemctl reload nginx
Besuchen Sie das iRedMail-Admin-Panel erneut, Ihr Webbrowser wird Sie nicht mehr warnen, da Nginx jetzt ein gültiges TLS-Zertifikat verwendet.
Installation des TLS-Zertifikats in Postfix und Dovecot
Wir müssen auch den Postfix-SMTP-Server und den Dovecot-IMAP-Server konfigurieren, um das von Let’s Encrypt ausgestellte Zertifikat zu verwenden, damit der Desktop-Mail-Client keine Sicherheitswarnung anzeigt. Bearbeiten Sie die Hauptkonfigurationsdatei von Postfix.
sudo nano /etc/postfix/main.cf
Finden Sie die folgenden 3 Zeilen. (Zeile 95, 96, 97).
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt
Ersetzen Sie sie durch:
smtpd_tls_key_file = /etc/letsencrypt/live/mail.your-domain.com/privkey.pem smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/cert.pem smtpd_tls_CAfile = /etc/letsencrypt/live/mail.your-domain.com/chain.pem
Speichern und schließen Sie die Datei. Laden Sie dann Postfix neu.
sudo systemctl reload postfix
Als nächstes bearbeiten Sie die Hauptkonfigurationsdatei von Dovecot.
sudo nano /etc/dovecot/dovecot.conf
Fein die folgenden 2 Zeilen. (Zeile 47, 48)
ssl_cert = </etc/ssl/certs/iRedMail.crt ssl_key = </etc/ssl/private/iRedMail.key
Ersetzen Sie sie durch:
ssl_cert = </etc/letsencrypt/live/mail.your-domain.com/fullchain.pem ssl_key = </etc/letsencrypt/live/mail.your-domain.com/privkey.pem
Speichern und schließen Sie die Datei. Dann Taubenschlag neu laden.
sudo systemctl reload dovecot
Von nun an werden Benutzern von Desktop-Mail keine Sicherheitswarnungen mehr angezeigt.
Schritt 6:Test-E-Mail senden
Melden Sie sich mit dem Postmaster-E-Mail-Konto ([email protected]) beim iredadmin-Steuerfeld an. Im Add
können Sie zusätzliche Domains oder E-Mail-Adressen hinzufügen.
Wenn Sie den Fehler „Keine Domain unter Kontrolle“ sehen, lesen Sie bitte diesen Artikel.
Nachdem Sie einen Benutzer erstellt haben, können Sie die Webmail-Adresse von Roundcube besuchen und sich mit dem neuen E-Mail-Benutzerkonto anmelden.
https://mail.your-domain.com/mail/
Jetzt können Sie das Senden und Empfangen von E-Mails testen. Bitte beachten Sie, dass Sie möglicherweise einige Minuten warten müssen, um E-Mails zu erhalten, da iRedMail standardmäßig Greylisting aktiviert, wodurch andere sendende SMTP-Server angewiesen werden, es in einigen Minuten erneut zu versuchen. Die folgende Zeile in der Mail-Protokolldatei /var/log/mail.log
zeigt an, dass Greylisting aktiviert ist.
Recipient address rejected: Intentional policy rejection, please try again later;
Auslagerungsbereich hinzufügen
ClamAV wird verwendet, um Viren in E-Mail-Nachrichten zu scannen. ClamAV kann ziemlich viel RAM verwenden. Wenn auf Ihrem Server nicht genügend RAM vorhanden ist, funktioniert ClamAV nicht richtig, was Ihren Mailserver daran hindert, E-Mails zu senden. Sie können Ihrem Server eine Auslagerungsdatei hinzufügen, um den Gesamt-RAM auf Ihrem Server zu erhöhen. (Beachten Sie, dass die Verwendung von Auslagerungsspeicher auf dem Server die Serverleistung beeinträchtigt. Wenn Sie eine bessere Leistung wünschen, sollten Sie den physischen Arbeitsspeicher aufrüsten, anstatt Auslagerungsspeicher zu verwenden.)
Um Auslagerungsspeicher auf dem Server hinzuzufügen, verwenden Sie zuerst fallocate
Befehl zum Erstellen einer Datei. Erstellen Sie beispielsweise eine Datei namens swapfile mit einer Kapazität von 1 GB im Root-Dateisystem:
sudo fallocate -l 1G /swapfile
Stellen Sie dann sicher, dass nur root darauf lesen und schreiben kann.
sudo chmod 600 /swapfile
Zum Tauschen formatieren:
sudo mkswap /swapfile
Ausgabe:
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes) no label, UUID=0aab5886-4dfb-40d4-920d-fb1115c67433
Aktivieren Sie die Auslagerungsdatei
sudo swapon /swapfile
Um den Auslagerungsbereich beim Systemstart bereitzustellen, bearbeiten Sie die Datei /etc/fstab
Datei.
sudo nano /etc/fstab
Fügen Sie die folgende Zeile am Ende dieser Datei hinzu.
/swapfile swap swap defaults 0 0
Speichern und schließen Sie die Datei. Laden Sie dann systemd neu und starten Sie ClamAV neu.
sudo systemctl daemon-reload sudo systemctl restart clamav-daemon
Schritt 7:Prüfen, ob Port 25 (ausgehend) blockiert ist
Ihr ISP oder Hosting-Provider blockiert eingehende Verbindungen zu Port 25 Ihres Servers nicht, was bedeutet, dass Sie E-Mails von anderen Mailservern empfangen können. Viele ISP/Hosting-Anbieter blockieren jedoch ausgehende Verbindungen zu Port 25 anderer Mailserver, was bedeutet, dass Sie keine E-Mails senden können.
Wenn Ihre E-Mail nicht an Ihrer anderen E-Mail-Adresse wie Google Mail angekommen ist, führen Sie den folgenden Befehl auf Ihrem E-Mail-Server aus, um zu überprüfen, ob Port 25 (ausgehend) blockiert ist.
telnet gmail-smtp-in.l.google.com 25
Wenn es nicht blockiert ist, sehen Sie Nachrichten wie unten, die darauf hinweisen, dass eine Verbindung erfolgreich hergestellt wurde. (Hinweis:Geben Sie quit
ein und drücken Sie die Eingabetaste, 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 Port 25 (ausgehend) blockiert ist, sehen Sie so etwas wie:
Trying 2607:f8b0:400e:c06::1a... Trying 74.125.195.27... telnet: Unable to connect to remote host: Connection timed out
In diesem Fall kann Ihr Postfix keine E-Mails an andere SMTP-Server senden. Bitten Sie Ihren ISP/Hosting-Provider, es für Sie zu öffnen. Wenn sie Ihre Anfrage ablehnen, müssen Sie ein SMTP-Relay einrichten, um die Blockierung von Port 25 zu umgehen.
Sie können immer noch keine E-Mail senden?
Wenn Port 25 (ausgehend) nicht blockiert ist, Sie aber trotzdem keine E-Mails von Ihrem eigenen Mailserver an Ihre andere E-Mail-Adresse wie Gmail senden können, sollten Sie das E-Mail-Protokoll (/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
Dies bedeutet, dass Ihr E-Mail-Server IPv6 zum Senden der E-Mail verwendet, Sie jedoch keine IPv6-Einträge eingerichtet haben. Sie sollten zu Ihrem DNS-Manager gehen und AAAA
einstellen Eintrag für mail.your-domain.com
, dann sollten Sie PTR
setzen record für Ihre IPv6-Adresse, die in Schritt 9 besprochen wird.
Schritt 8:Mail-Clients 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 hinzu.
- Wählen Sie im Abschnitt für eingehende Server das IMAP-Protokoll aus und geben Sie
mail.your-domain.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.your-domain.com
ein Wählen Sie als Servernamen Port 587 und STARTTLS. Wählen Sienormal password
als Authentifizierungsmethode.
Fail2ban blockiert Ihre eigene IP-Adresse
Wenn Sie einen Fehler gemacht haben und sich mehrmals nicht beim Mailserver anmelden konnten, blockiert möglicherweise der Fail2ban-Dienst auf dem Mailserver Ihre IP-Adresse. Sie können Ihre IP-Adresse zur Whitelist hinzufügen, indem Sie jail.local
bearbeiten Datei.
sudo nano /etc/fail2ban/jail.local
Fügen Sie Ihre eigene IP-Adresse zur Ignorierliste wie unten hinzu. Ersetzen Sie 12.34.56.78 durch Ihre echte IP-Adresse.
ignoreip = 12.34.56.78 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
Speichern und schließen Sie die Datei. Starten Sie dann Fail2ban neu.
sudo systemctl restart fail2ban
Schritt 9:E-Mail-Zustellbarkeit verbessern
Um zu verhindern, dass Ihre E-Mails als Spam gekennzeichnet werden, sollten Sie PTR
setzen , SPF
, DKIM
und DMARC
Aufzeichnungen.
PTR-Eintrag
Ein Zeigerdatensatz oder PTR-Datensatz ordnet eine IP-Adresse einem FQDN (vollständig qualifizierter Domänenname) zu. Er ist das Gegenstück zum A-Record und wird für Reverse DNS verwendet Lookup, das beim Blockieren von Spammern helfen kann. Viele SMTP-Server lehnen E-Mails ab, wenn kein PTR-Eintrag für den sendenden Server gefunden wird.
Um den PTR-Eintrag auf eine IP-Adresse zu überprüfen, führen Sie diesen Befehl aus:
dig -x IP-address +short
oder
host IP-address
Der PTR-Eintrag wird nicht von Ihrem Domain-Registrar verwaltet. Es wird von der Organisation verwaltet, die Ihnen eine IP-Adresse gibt. Da Sie die IP-Adresse von Ihrem Hosting-Provider oder ISP und nicht von Ihrem Domain-Registrar erhalten, müssen Sie den PTR-Eintrag für Ihre IP im Steuerungsfeld Ihres Hosting-Providers einrichten oder Ihren ISP fragen . Sein Wert sollte der Hostname Ihres Mailservers sein:mail.your-domain.com
. Falls Ihr Server eine IPv6-Adresse verwendet, stellen Sie sicher, dass Sie auch einen PTR-Eintrag für Ihre IPv6-Adresse hinzufügen .
Um den Reverse-DNS-Eintrag für Ihr Kamatera-VPS zu bearbeiten, melden Sie sich im Kamatera-Clientbereich an, öffnen Sie dann ein Support-Ticket und sagen Sie ihnen, dass sie einen PTR-Eintrag für Ihre Server-IP-Adressen hinzufügen sollen, um die IP-Adresse auf mail.your-domain.com
. Das ist nicht praktisch, denken Sie vielleicht, aber es dient dazu, Spammer von der Plattform fernzuhalten, damit legitime E-Mail-Absender wie wir einen hervorragenden IP-Ruf haben.
SPF-Eintrag
SPF (Sender Policy Framework)-Eintrag gibt an, welche Hosts oder IP-Adressen E-Mails im Namen einer Domäne senden dürfen. Sie sollten nur Ihrem eigenen E-Mail-Server oder dem Server Ihres Internetdienstanbieters erlauben, E-Mails für Ihre Domain zu senden. Erstellen Sie in Ihrer DNS-Verwaltungsoberfläche einen neuen TXT-Eintrag wie unten.
Erklärung:
- TXT gibt an, dass es sich um einen TXT-Eintrag handelt.
- Geben Sie @ ein im Namensfeld, um den Hauptdomänennamen darzustellen.
- v=spf1 gibt an, dass dies ein SPF-Eintrag ist und die Version SPF1 ist.
- mx bedeutet, dass alle in den MX-Einträgen aufgeführten Hosts E-Mails für Ihre Domain senden dürfen und alle anderen Hosts nicht zugelassen sind.
- ~alle gibt an, dass E-Mails von Ihrer Domain nur von Hosts kommen sollen, die im SPF-Eintrag angegeben sind. E-Mails, die von anderen Hosts stammen, werden als gefälscht gekennzeichnet.
Um zu überprüfen, ob Ihr SPF-Eintrag an das öffentliche Internet weitergegeben wird, können Sie das Dienstprogramm dig auf Ihrem Linux-Rechner wie folgt verwenden:
dig your-domain.com txt
Die txt
Option sagt dig
dass wir nur TXT-Einträge abfragen wollen.
DKIM-Eintrag
DKIM (DomainKeys Identified Mail) verwendet einen privaten Schlüssel, um E-Mails, die von Ihrer Domain gesendet werden, digital zu signieren. Empfangende SMTP-Server überprüfen die Signatur mithilfe des öffentlichen Schlüssels, der im DNS-DKIM-Eintrag veröffentlicht wird.
Das iRedMail-Skript konfiguriert DKIM automatisch für Ihren Server. Das einzige, was noch zu tun ist, ist das Erstellen eines DKIM-Eintrags im DNS-Manager. Führen Sie den folgenden Befehl aus, um den öffentlichen DKIM-Schlüssel anzuzeigen.
sudo amavisd-new showkeys
Der öffentliche DKIM-Schlüssel steht in Klammern.
Erstellen Sie dann in Ihrem DNS-Manager einen TXT-Eintrag und geben Sie dkim._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 und Zeilenumbrüche.
Führen Sie nach dem Speichern Ihrer Änderungen den folgenden Befehl aus, um zu testen, ob Ihr DKIM-Eintrag korrekt ist.
sudo amavisd-new testkeys
Wenn der DKIM-Eintrag korrekt ist, wird der Test bestanden.
TESTING#1 linuxbabe.com: dkim._domainkey.linuxbabe.com => pass
Beachten Sie, dass Ihr DKIM-Eintrag möglicherweise einige Zeit benötigt, um im Internet verbreitet zu werden. Abhängig von der von Ihnen verwendeten Domänenregistrierungsstelle wird Ihr DNS-Eintrag möglicherweise sofort weitergegeben oder es kann bis zu 24 Stunden dauern, bis er weitergegeben wird. Sie können zu https://www.dmarcanalyzer.com/dkim/dkim-check/ gehen und dkim
eingeben als Selektor und geben Sie Ihren Domänennamen ein, um die DKIM-Eintragsweitergabe 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 Ihr Domänenname durch E-Mail-Spoofing verwendet wird.
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. (Sie sollten den [email protected]
erstellen E-Mail-Adresse.)
v=DMARC1; p=none; pct=100; rua=mailto:[email protected]
Der obige DMARC-Eintrag ist ein sicherer Ausgangspunkt. Wenn Sie die vollständige Erklärung von DMARC lesen möchten, lesen Sie bitte den folgenden Artikel. Beachten Sie, dass dies optional ist.
- Erstellen eines DMARC-Eintrags zum Schutz Ihres Domainnamens vor E-Mail-Spoofing
Schritt 10:E-Mail-Score und Platzierung testen
Gehen Sie nach dem Erstellen des PTR-, SPF- und DKIM-Eintrags zu https://www.mail-tester.com . Sie sehen eine eindeutige E-Mail-Adresse. Senden Sie eine E-Mail von Ihrer Domain an diese Adresse und überprüfen Sie dann Ihre Punktzahl. Wie Sie sehen können, habe ich eine perfekte Punktzahl bekommen. Im Testergebnis sollten Sie überprüfen, ob Ihr PTR-Eintrag, SPF- und DKIM-Eintrag gültig ist.
Mail-tester.com kann Ihnen nur eine Absenderbewertung anzeigen. Es gibt einen weiteren Dienst namens GlockApps, mit dem Sie überprüfen können, ob Ihre E-Mail im Posteingang oder Spam-Ordner des Empfängers gelandet ist oder direkt abgelehnt wurde. Es unterstützt viele beliebte E-Mail-Anbieter wie Gmail, Outlook, Hotmail, YahooMail, iCloud-Mail usw.
Was ist, wenn Ihre E-Mails immer noch als Spam markiert werden?
In diesem Artikel habe ich weitere Tipps für dich:Wie du verhinderst, dass deine E-Mails als Spam markiert werden. Obwohl es einige Zeit und Mühe kosten wird, werden Ihre E-Mails schließlich im Posteingang platziert, nachdem Sie diese Tipps angewendet haben.
Was ist, wenn Ihre E-Mail von Microsoft Mailbox abgelehnt wird?
Microsoft scheint eine interne Blacklist zu verwenden, die viele legitime IP-Adressen blockiert. Wenn Ihre E-Mails von Outlook oder Hotmail abgelehnt werden, müssen Sie das Absenderinformationsformular einreichen. Danach wird Ihre E-Mail von Outlook/Hotmail akzeptiert.
Mehrere E-Mail-Domains hinzufügen
Ich habe diesen Artikel geschrieben, um Ihnen zu zeigen, wie Sie mehrere E-Mail-Domains in iRedMail hinzufügen.
Greylisting deaktivieren
Standardmäßig hat iRedMail Greylisting aktiviert, das andere sendende SMTP-Server anweist, es in ein paar Minuten erneut zu versuchen. Dies ist hauptsächlich nützlich, um Spam zu blockieren, verschlechtert aber auch die Benutzererfahrung. Wenn Sie Greylisting lieber deaktivieren möchten, befolgen Sie die nachstehenden Anweisungen.
Fügen Sie der /opt/iredapd/settings.py
Schreibberechtigung hinzu Datei.
sudo chmod 600 /opt/iredapd/settings.py
Bearbeiten Sie dann die Konfigurationsdatei.
sudo nano /opt/iredapd/settings.py
Suchen Sie die folgende Zeile.
plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]
Entfernen Sie "greylisting"
von der Liste. Speichern und schließen Sie die Datei. Starten Sie dann iredapd neu.
sudo systemctl restart iredapd
Ändern Sie die Konfigurationsdatei wieder in den schreibgeschützten Modus.
sudo chmod 400 /opt/iredapd/settings.py
SMPS-Port 465 aktivieren
Wenn Sie den Microsoft Outlook-Client verwenden, müssen Sie den SMTPS-Port 465 im Postfix-SMTP-Server aktivieren.
Fehlerbehebung
Verwenden Sie zunächst einen VPS mit mindestens 4 GB RAM. Das Ausführen von iRedMail auf einem VPS mit 1 GB RAM führt dazu, dass die Datenbank, SpamAssassin oder ClamAV aufgrund eines Problems mit unzureichendem Speicher beendet werden. Wenn Sie wirklich einen VPS mit 1 GB RAM verwenden möchten, werden Sie eingehende E-Mails verlieren und andere unerwünschte Folgen haben.
Wenn die iRedMail-Weboberfläche nicht zugänglich ist, wie bei einem 502-Gateway-Fehler, sollten Sie die Nginx-Protokolle in /var/log/nginx/
überprüfen Verzeichnis, um Hinweise zu finden. Sie können auch das E-Mail-Protokoll /var/log/mail.log
überprüfen .
Überprüfen Sie, 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
Wenn Sie die Firewall aktiviert haben, sollten Sie 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
Wenn Sie die UFW-Firewall verwenden möchten, sehen Sie sich meine Anleitung hier an:Erste Schritte mit der UFW-Firewall unter Debian und Ubuntu.
So erneuern Sie das TLS-Zertifikat
Das von Let’s Encrypt ausgestellte TLS-Zertifikat ist nur 90 Tage gültig und es ist wichtig, dass Sie einen Cron-Job einrichten, um das Zertifikat automatisch zu erneuern. Sie können den folgenden Befehl ausführen, um das Zertifikat zu erneuern.
sudo certbot renew -w /var/www/html/
Sie können den --dry-run
verwenden Möglichkeit, den Erneuerungsprozess zu testen, anstatt eine echte Erneuerung durchzuführen.
sudo certbot renew -w /var/www/html/ --dry-run
Wenn beim Erneuern des TLS-Zertifikats der folgende Fehler angezeigt wird.
The client lacks sufficient authorization :: Invalid response
Dann müssen Sie das versteckte Verzeichnis erstellen.
sudo mkdir -p /var/www/html/.well-known/acme-challenge
Und setze www-data
als Besitzer des Webroots.
sudo chown www-data:www-data /var/www/html/ -R
Bearbeiten Sie außerdem den virtuellen SSL-Host /etc/nginx/sites-enabled/00-default-ssl.conf
. Fügen Sie die folgenden Zeilen hinzu.
location ~ /.well-known/acme-challenge { root /var/www/html/; allow all; }
Speichern und schließen Sie die Datei. Nginx-Konfiguration testen und neu laden.
sudo nginx -t sudo systemctl reload nginx
Cronjob erstellen
Wenn jetzt der Probelauf erfolgreich ist, können Sie einen Cron-Job erstellen, um das Zertifikat automatisch zu erneuern. Öffnen Sie einfach die Crontab-Datei des Root-Benutzers.
sudo crontab -e
Fügen Sie dann die folgende Zeile am Ende der Datei hinzu.
@daily certbot renew -w /var/www/html/ --quiet && systemctl reload postfix dovecot nginx
Postfix, Dovecot und Nginx müssen neu geladen werden, damit diese Programme das neue Zertifikat und den privaten Schlüssel abrufen.
Backup-Mail-Server einrichten
Ihr primärer Mailserver kann manchmal ausfallen. Wenn Sie Ihren Mailserver in einem Rechenzentrum hosten, ist die Ausfallzeit sehr gering, sodass Sie sich keine Sorgen um den Verlust eingehender E-Mails machen müssen. Wenn Sie Ihren Mailserver zu Hause hosten, kann die Ausfallzeit nicht vorhergesagt werden, daher empfiehlt es sich, einen Backup-Mailserver in einem Rechenzentrum zu betreiben, um den Verlust eingehender E-Mails zu verhindern. Der Backup-Mailserver benötigt nur 512 MB RAM, um ausgeführt zu werden. Bitte überprüfen Sie die vollständigen Details im folgenden Artikel.
- So richten Sie einen Backup-E-Mail-Server mit Postfix unter Ubuntu ein (vollständige Anleitung)
Für fortgeschrittene Benutzer
iRedMail enthält keinen DMARC-Verifizierungsdienst, Sie können sich das folgende Tutorial ansehen, um OpenDMARC einzurichten, um E-Mail-Spoofing zu blockieren.
- Richten Sie OpenDMARC mit Postfix auf Ubuntu ein, um E-Mail-Spoofing/Spam zu blockieren
Möglicherweise möchten Sie den Inhaltsfilter von SpamAssassin anpassen, um Spam besser zu erkennen.
- E-Mail-Spam blockieren, indem Sie Header und Body in Postfix/SpamAssassin prüfen
Wenn Ihre Website und Ihr Mailserver auf zwei verschiedenen VPS (Virtual Private Server) laufen, können Sie ein SMTP-Relay zwischen Ihrer Website und Ihrem Mailserver einrichten, sodass Ihre Website E-Mails über Ihren Mailserver senden kann. Siehe folgenden Artikel.
- So richten Sie SMTP-Relay zwischen 2 Postfix-SMTP-Servern unter Ubuntu ein