GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So richten Sie mit iRedMail ganz einfach einen Mailserver unter Debian 9 Stretch ein

Das Einrichten Ihres eigenen E-Mail-Servers unter Linux von Grund auf ist ein mühsamer Prozess, ein Schmerz im Hintern, wenn Sie kein erfahrener Serveradministrator sind. Dieses Tutorial zeigt Ihnen, wie Sie iRedMail verwenden, um schnell einen voll ausgestatteten Mailserver auf Debian 9 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, PostreSQL-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 Debian 9 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 können sich auf der Website Ihres Domain-Registrars (z. B. NameCheap) anmelden, 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

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 dann 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 anzuzeigen, melden Sie sich ab und wieder an und führen Sie dann den folgenden Befehl aus, um Ihren Hostnamen anzuzeigen.

hostname -f

Schritt 4:Mailserver auf Debian 9 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.1.tar.gz

Extrahieren Sie die archivierte Datei.

tar xvf 1.5.1.tar.gz

Dann cd in das neu erstellte Verzeichnis.

cd iRedMail-1.5.1/

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 Standard /var/vmail verwenden , drücken Sie einfach die Eingabetaste.

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 auf das Roundcube-Webmail zugreifen. Standardmäßig ist der Nginx-Webserver ausgewählt, sodass Sie einfach die Eingabetaste 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] wünschen . 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 haben möchten, wählen Sie sie aus und drücken Sie die Eingabetaste.

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, SOGo-Groupware und Web-Admin-Panel sowie die Anmeldeinformationen mitgeteilt. Die iRedMail.tips Datei enthält wichtige Informationen über Ihren iRedMail-Server.

Starten Sie Ihren Debian 9-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 von Let’s Encrypt (certbot) auf Debian 9 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 das Zertifikat zu erhalten. Führen Sie den folgenden Befehl aus. 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/

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 erneut das iRedMail-Admin-Panel (https://mail.your-domain.com/iredadmin/ ), wird Ihr Webbrowser 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 die Systeme 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-SMTP-Server 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 Sie normal 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 Sie normal 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 Person verwaltet, die Ihnen eine IP-Adresse gibt. Da Sie die IP-Adresse von Ihrem Hosting-Provider oder ISP erhalten, nicht von Ihrem Domain-Registrar, müssen Sie den PTR-Eintrag für Ihre IP im Control Panel Ihres Hosting-Providers festlegen oder Ihren ISP fragen. Sein Wert sollte der Hostname Ihres Mailservers sein:mail.your-domain.com . Wenn 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 automatisch die DKIM-Signierung und -Verifizierung 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 die [E-Mail-geschützte] E-Mail-Adresse erstellen.)

v=DMARC1; p=none; pct=100; rua=mailto:[email protected]

Der obige DMARC-Eintrag ist ein sicherer Ausgangspunkt. Um die vollständige Erklärung von DMARC zu sehen, lesen Sie bitte den folgenden Artikel.

  • 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-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.

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.

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"]

Remove "greylisting" von der Liste. Speichern und schließen Sie die Datei. Then restart iredapd.

sudo systemctl restart iredapd

Change the configuration file back to read only mode.

sudo chmod 400 /opt/iredapd/settings.py

Enabling SMTPS Port 465

If you are going to use Microsoft Outlook client, then you need to enable SMTPS port 465 in Postfix SMTP server.

Troubleshooting

First, please use a VPS with at least 4GB RAM. Running iRedMail on a 1GB RAM VPS will cause the database, SpamAssassin, or ClamAV to be killed because of out-of-memory problem. If you insist on using a 1GB RAM VPS, you are going to lose incoming emails and have other undesirable outcomes.

If the iRedMail web interface isn’t accessible, like a 502 gateway error, you should check the Nginx logs in /var/log/nginx/ directory to find clues. You may also want to check the mail log /var/log/mail.log .

Check if the various services are running.

systemctl status postfix

systemctl status dovecot

systemctl status nginx

systemctl status mariadb

systemctl status clamav-daemon

systemctl status amavis

If you enabled the firewall, you should open the following ports in the firewall.

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

If you would like to use the UFW firewall, check my guide here:Getting started with UFW firewall on Debian and Debian.

How to Renew TLS Certificate

Let’s Encrypt issued TLS certificate is valid for 90 days only and it’s important that you set up a Cron job to automatically renew the certificate. You can run the following command to renew certificate.

sudo certbot renew -w /var/www/html/

You can use the --dry-run option to test the renewal process, instead of doing a real renewal.

sudo certbot renew -w /var/www/html/ --dry-run

If you see the following error when renewing TLS certificate.

The client lacks sufficient authorization :: Invalid response

Then you need to create the hidden directory.

sudo mkdir -p /var/www/html/.well-known/acme-challenge

And set www-data as the owner of the webroot.

sudo chown www-data:www-data /var/www/html/ -R

Also, edit the SSL virtual host /etc/nginx/sites-enabled/00-default-ssl.conf . Add the following lines.

location ~ /.well-known/acme-challenge {
     root /var/www/html/;
     allow all;
}

Speichern und schließen Sie die Datei. Test Nginx configuration and reload.

sudo nginx -t

sudo systemctl reload nginx

Create Cron Job

If now the dry run is successful, you can create Cron job to automatically renew certificate. Simply open root user’s crontab file.

sudo crontab -e

Then add the following line at the bottom of the file.

@daily certbot renew -w /var/www/html --quiet && systemctl reload postfix dovecot nginx

Reloading Postfix, Dovecot and Nginx is necessary to make these programs pick up the new certificate and private key.

For Advanced Users

You may want to customize the SpamAssassin content filter to better detect spam.

  • Block Email Spam By Checking Header and Body in Postfix/SpamAssassin

If your website and mail server are running on two different VPS (virtual private server), you can set up SMTP relay between your website and mail server, so that your website can send emails through your mail server. See the following article. (It’s written for Ubuntu, but also works on Debian).

  • How to set up SMTP relay between 2 Postfix SMTP servers on Ubuntu

Debian
  1. So richten Sie eine Firewall mit UFW unter Debian 10 ein

  2. So richten Sie einen SFTP-Server auf Debian 11 Server ein

  3. Richten Sie einen Mailserver mit PostfixAdmin auf Debian 9 ein

  4. Wie man E-Mails liest, die auf einem Debian-Server empfangen wurden

  5. Wie sende ich E-Mails mit meinem CentOS-Server?

So richten Sie den E-Mail-Server mit Plesk unter Ubuntu 20.04 ein

So richten Sie mit iRedMail ganz einfach einen vollwertigen Mailserver unter Ubuntu 20.04 ein

So richten Sie schnell einen Mailserver unter Ubuntu 20.04 mit Modoboa ein

So richten Sie einen voll ausgestatteten Mailserver mit IRedMail auf Centos 7 VPS ein

So richten Sie einen voll ausgestatteten Mailserver mit iRedMail auf Ubuntu 18.04 VPS ein

So richten Sie einen Mailserver mit Modoboa unter Ubuntu 20.04 ein