Der Autor hat den kostenlosen Open-Source-Fonds ausgewählt, um eine Spende als Teil des Write for DOnations-Programms zu erhalten.

Einleitung

Postfix ist ein mail transfer agent (MTA), eine Anwendung zum senden und empfangen von E-Mail. Es kann so konfiguriert werden, dass es nur zum Senden von E-Mails über eine lokale Anwendung verwendet werden kann., Dies ist nützlich in Situationen, in denen Sie regelmäßig E-Mail-Benachrichtigungen von Ihren Apps senden müssen oder einfach viel ausgehenden Datenverkehr haben, den ein Drittanbieter-E-Mail-Dienstanbieter nicht zulässt. Es ist auch eine leichtere Alternative zum Ausführen eines ausgewachsenen SMTP-Servers unter Beibehaltung der erforderlichen Funktionalität.

In diesem Tutorial installieren und konfigurieren Sie Postfix als reinen Send-SMTP-Server. Sie werden auch kostenlose TLS-Zertifikate von Let ‚ s Encrypt für Ihre Domain anfordern und die ausgehenden E-Mails mit ihnen verschlüsseln.

Voraussetzungen

  • Ein Ubuntu 18.,04 server einrichten mit dem ersten Server-Setup mit Ubuntu 18.04, einschließlich der Erstellung eines Sudo-Nicht-Root-Benutzers.
  • Ein vollständig registrierter Domainname. In diesem Tutorial wird your_domain verwendet. Sie können einen Domainnamen auf Namecheap erwerben, einen kostenlosen auf Freenom erhalten oder den Domain-Registrar Ihrer Wahl verwenden.
  • Ein DNS-Eintrag mit your_domain, der auf die öffentliche IP-Adresse Ihres Servers verweist. Sie können dieser Einführung in DigitalOcean DNS folgen, um Details zum Hinzufügen zu erhalten.,

Hinweis: Der Hostname Ihres Servers und der Name Ihres Droplets müssen mit your_domain übereinstimmen, da DigitalOcean automatisch PTR-Datensätze für die IP-Adresse des Droplets entsprechend seinem Namen festlegt.

Sie können den Hostnamen des Servers überprüfen, indem Sie hostname an der Eingabeaufforderung eingeben. Die Ausgabe sollte mit dem Namen übereinstimmen, den Sie dem Tröpfchen beim Erstellen gegeben haben.

Schritt 1-Installieren von Postfix

In diesem Schritt installieren Sie Postfix., Der schnellste Weg ist die Installation desmailutils – Pakets, das Postfix mit einigen zusätzlichen Programmen bündelt, mit denen Sie das Senden von E-Mails testen.

Aktualisieren Sie zuerst die Paketdatenbank:

  • sudo apt update

Installieren Sie Postfix, indem Sie den folgenden Befehl ausführen:

  • sudo apt install mailutils

Am Ende des Installationsprozesses wird Ihnen das Postfix-Konfigurationsfenster angezeigt:

Die die Standardoption ist Internet Site., Das ist die empfohlene Option für Ihren Anwendungsfall, also drücken Sie TAB und dann . Wenn Sie nur den Beschreibungstext sehen, drücken Sie TAB, um OK und dann auszuwählen.,

Wenn es nicht automatisch angezeigt wird, führen Sie den folgenden Befehl aus, um es zu starten:

  • sudo dpkg-reconfigure postfix

Danach erhalten Sie eine weitere Konfigurationsaufforderung bezüglich des System-Mail-Namens:

Der System-Mail-Name muss mit dem Namen übereinstimmen, den Sie Ihrem Server zugewiesen haben, als Sie ihn erstellt haben. Wenn Sie fertig sind, drücken Sie TAB, gefolgt von .

Sie haben jetzt Postfix installiert und können mit der Konfiguration beginnen.,

Schritt 2-Konfigurieren von Postfix

In diesem Schritt konfigurieren Sie Postfix so, dass E—Mails nur von dem Server gesendet und empfangen werden, auf dem sie ausgeführt werden-dh von localhost.

Dazu muss Postfix so konfiguriert werden, dass es nur auf der Loopback-Schnittstelle, der virtuellen Netzwerkschnittstelle, die der Server für die interne Kommunikation verwendet, abhört. Um die Änderungen vorzunehmen, müssen Sie die Haupt-Postfix-Konfigurationsdatei mit dem Namen main.cf bearbeiten, die unter etc/postfixgespeichert ist.,

Öffnen Sie es zur Bearbeitung mit Ihrem bevorzugten Texteditor:

  • sudo nano /etc/postfix/main.cf

Suchen Sie die folgenden Zeilen:

/etc/postfix/main.cf
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all. . .

Setzen Sie den Wert der Einstellung auf loopback-only:

/etc/postfix/main.cf
. . .mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = loopback-only. . .

Eine weitere Direktive, die Sie ändern müssen, ist mydestination, die verwendet wird, um die Liste der Domänen anzugeben, die über den local_transport mail delivery transport geliefert werden., Standardmäßig sind die Werte ähnlich wie folgt:

/etc/postfix/main.cf
. . .mydestination = $myhostname, your_domain, localhost.com, , localhost. . .

Ändern Sie die Zeile so:

/etc/postfix/main.cf
. . .mydestination = localhost.$mydomain, localhost, $myhostname. . .

Wenn Ihre Domain tatsächlich eine Subdomain ist und Sie möchten, dass die E-Mail-Nachrichten so aussehen, als ob sie von der Hauptdomäne gesendet würden, sie können die folgende Zeile am Ende von main.cfhinzufügen:

/etc/postfix/main.,cf
...masquerade_domains = your_main_domain

Die optionale masquerade_domains – Einstellung gibt an, für welche Domänen der Subdomain-Teil in der E-Mail-Adresse entfernt wird.

Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Hinweis: Wenn Sie mehrere Domains auf einem einzelnen Server hosten, können die anderen Domains auch mit der mydestination Direktive an Postfix übergeben werden.

Starten Sie dann Postfix neu, indem Sie den folgenden Befehl ausführen:

  • sudo systemctl restart postfix

Sie haben Postfix so konfiguriert, dass nur E-Mails von Ihrem Server gesendet werden., Sie werden es jetzt testen, indem Sie eine Beispielnachricht an eine E-Mail-Adresse senden.

Schritt 3-Testen des SMTP-Servers

In diesem Schritt testen Sie, ob Postfix E-Mails mit dem Befehl mail an ein externes E-Mail-Konto senden kann, das Teil des Pakets mailutils ist, das Sie im ersten Schritt installiert haben.

Um eine Test-E-Mail zu senden, führen Sie den folgenden Befehl aus:

  • echo "This is the body of the email" | mail -s "This is the subject line" your_email_address

Sie können den Text und den Betreff der E-Mail nach Ihren Wünschen ändern., Denken Sie daran, your_email_address durch eine gültige E-Mail-Adresse zu ersetzen, auf die Sie zugreifen können.

Überprüfen Sie nun die E-Mail-Adresse, an die Sie diese Nachricht gesendet haben. Sie sollten die Nachricht in Ihrem Posteingang sehen. Wenn es nicht da ist, überprüfen Sie Ihren Spam-Ordner. Zu diesem Zeitpunkt sind alle von Ihnen gesendeten E-Mails unverschlüsselt, sodass Dienstanbieter glauben, dass es sich wahrscheinlich um Spam handelt. Sie richten die Verschlüsselung später in Schritt 5 ein.,

Wenn Sie einen Fehler vom Befehl mail erhalten oder nach längerer Zeit keine Nachricht erhalten haben, überprüfen Sie, ob die von Ihnen bearbeitete Postfix-Konfiguration gültig ist und dass der Name und der Hostname Ihres Servers auf Ihre Domäne festgelegt sind.

Beachten Sie, dass bei dieser Konfiguration die Adresse im Feld From für die von Ihnen gesendeten Test-E-Mails die Form von your_user_name@your_domain hat, wobei your_user_name der Benutzername des Serverbenutzers ist, unter dem Sie den Befehl ausgeführt haben.,

Sie haben jetzt eine E-Mail von Ihrem Server gesendet und überprüft, ob sie erfolgreich empfangen wurde. Im nächsten Schritt richten Sie die E-Mail-Weiterleitung für rootein.

Schritt 4-Weiterleitung der Systempost

In diesem Schritt richten Sie die E-Mail-Weiterleitung für den Benutzer root ein, sodass vom System generierte Nachrichten, die an Ihren Server gesendet werden, an eine externe E-Mail-Adresse weitergeleitet werden.

Die/etc/aliases – Datei enthält eine Liste alternativer Namen für E-Mail-Empfänger., Öffnen Sie es zur Bearbeitung:

  • sudo nano /etc/aliases

In seinem Standardzustand sieht es so aus:

/etc/aliases

Die einzige vorhandene Direktive gibt an, dass vom System generierte E-Mails an rootgesendet werden.

Fügen Sie am Ende der Datei die folgende Zeile hinzu:

/ etc / aliases

...root: your_email_address

Mit dieser Zeile geben Sie an, dass an root gesendete E-Mails an eine E-Mail-Adresse weitergeleitet werden. Denken Sie daran, your_email_address durch Ihre persönliche E-Mail-Adresse zu ersetzen., Wenn Sie fertig sind, speichern und schließen Sie die Datei.

Damit die Änderung wirksam wird, führen Sie den folgenden Befehl aus:

  • sudo newaliases

Wenn Sie newaliases ausführen, wird eine Datenbank mit Aliasnamen erstellt, die der Befehl mail verwendet, die aus der gerade bearbeiteten Konfigurationsdatei stammen.

Testen Sie, ob das Senden von E-Mails an root funktioniert, indem Sie Folgendes ausführen:

  • echo "This is the body of the email" | mail -s "This is the subject line" root

Sie sollten die E-Mail an Ihre E-Mail-Adresse erhalten. Wenn es nicht da ist, überprüfen Sie Ihren Spam-Ordner.,

In diesem Schritt haben Sie die Weiterleitung von systemgenerierten Nachrichten an Ihre E-Mail-Adresse eingerichtet. Sie aktivieren nun die Nachrichtenverschlüsselung, sodass alle E-Mails, die Ihr Server sendet, immun gegen Manipulationen während des Transports sind und als legitimer angesehen werden.

Schritt 5-SMTP-Verschlüsselung aktivieren

Sie aktivieren nun die SMTP-Verschlüsselung, indem Sie ein kostenloses TLS-Zertifikat von Let ‚ s Encrypt für Ihre Domain anfordern (mit Certbot) und Postfix konfigurieren, um es beim Senden von Nachrichten zu verwenden.

Ubuntu enthält Certbot in ihrem Standard-Paket-Repository, aber es kann vorkommen, dass es veraltet ist., Stattdessen fügen Sie das offizielle Repository hinzu, indem Sie den folgenden Befehl ausführen:

  • sudo add-apt-repository ppa:certbot/certbot

Drücken Sie , wenn Sie zum Akzeptieren aufgefordert werden. Aktualisieren Sie dann den Paketmanager-Cache Ihres Servers:

  • sudo apt update

Schließlich installieren Sie die neueste Version von Certbot:

  • sudo apt install certbot -y

Als Teil der ersten Servereinrichtung in den Voraussetzungen haben Sie ufw, die unkomplizierte Firewall, installiert. Sie müssen es so konfigurieren, dass der HTTP-Port 80, damit die Domänenüberprüfung abgeschlossen werden kann., Führen Sie den folgenden Befehl aus, um ihn zu aktivieren:

  • sudo ufw allow 80

Die Ausgabe sieht folgendermaßen aus:

Output
Rule addedRule added (v6)

Nachdem der Port geöffnet ist, führen Sie Certbot aus, um ein Zertifikat zu erhalten:

  • sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d your_domain

Dieser Befehl befiehlt Certbot, Zertifikate mit einer RSA-Schlüsselgröße von 4096 Bit auszustellen, um eine temporäre standalone-Webserver (--standalone) zur Überprüfung und Überprüfung über Port 80 (--preferred-challenges http)., Denken Sie daran, your_domain durch Ihre Domäne zu ersetzen, bevor Sie den Befehl ausführen, und geben Sie Ihre E-Mail-Adresse ein, wenn Sie dazu aufgefordert werden.

Die Ausgabe ähnelt der folgenden:

Output
Saving debug log to /var/log/letsencrypt/letsencrypt.logPlugins selected: Authenticator standalone, Installer NoneObtaining a new certificatePerforming the following challenges:http-01 challenge for `your_domain`Waiting for verification...Cleaning up challengesIMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/your_domain/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/your_domain/privkey.pem Your cert will expire on 2020-07-11. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le

Wie in den Notizen beschrieben, wurden Ihr Zertifikat und Ihre private Schlüsseldatei unter /etc/letsencrypt/live/your_domaingespeichert.

Nachdem Sie Ihr Zertifikat haben, öffnen Sie main.cf zur Bearbeitung:

  • sudo nano /etc/postfix/main.cf

Hier finden Sie den folgenden Abschnitt:

/etc/postfix/main.,cf

Ändern Sie es so, dass es so aussieht, und ersetzen Sie bei Bedarf your_domain durch Ihre Domain, wodurch Ihre TLS-Einstellungen für Postfix aktualisiert werden:

/ etc / postfix / main.cf

Speichern und schließen Sie die Datei, sobald Sie fertig sind.

Übernehmen Sie die Änderungen, indem Sie Postfix neu starten:

  • sudo systemctl restart postfix

Versuchen Sie nun erneut, eine E-Mail zu senden:

  • echo "This is the body of an encrypted email" | mail -s "This is the subject line" your_email_address

Überprüfen Sie dann die von Ihnen angegebene E-Mail-Adresse. Es ist möglich, dass Sie die Nachricht sofort in Ihrem Posteingang sehen, da E-Mail-Anbieter unverschlüsselte Nachrichten viel eher als Spam markieren.,

Sie können die technischen Informationen zur E-Mail-Nachricht in Ihrem Client überprüfen, um festzustellen, dass die Nachricht tatsächlich verschlüsselt ist.

Sie haben jetzt einen Nur-Send-E-Mail-Server, der von Postfix unterstützt wird. Das Verschlüsseln aller ausgehenden Nachrichten ist ein guter erster Schritt für E-Mail-Anbieter, die Ihre Nachrichten nicht direkt als Spam markieren. Wenn Sie dies in einem Entwicklungsszenario tun, sollte diese Maßnahme ausreichen.,

Wenn Ihr Anwendungsfall jedoch darin besteht, E-Mails an potenzielle Site-Benutzer zu senden (z. B. Bestätigungs-E-Mails für eine Message Board-Anmeldung), sollten Sie die Einrichtung von SPF-Datensätzen prüfen, damit die E-Mails Ihres Servers noch wahrscheinlicher sind als legitim angesehen werden.

Articles

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.