GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

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

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

Ubuntu
  1. Richten Sie mit PostfixAdmin einen Mailserver ein

  2. So richten Sie einen OpenVPN-Server unter Ubuntu 18.04 ein

  3. So installieren und konfigurieren Sie Ubuntu Mail Server auf Version 18.04 LTS

  4. So richten Sie einen E-Mail-Server mit Mail-in-a-Box unter Ubuntu ein

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

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 Seafile-Server mit Nginx unter Ubuntu 18.04 ein

So richten Sie einen FTP-Server mit ProFTPD in Ubuntu 18.04 ein

So richten Sie einen Mailserver mit Modoboa unter Ubuntu 20.04 ein