Eine frühere Version dieses Tutorials wurde von Justin Ellingwood geschrieben
Einführung
Postfix ist ein beliebter Open-Source-Mail-Transfer-Agent (MTA), mit dem E-Mails auf einem Linux-System weitergeleitet und zugestellt werden können. Es wird geschätzt, dass rund 25% der öffentlichen Mailserver im Internet Postfix ausführen.
In diesem Handbuch erfahren Sie, wie Sie Postfix auf einem Ubuntu 20.04-Server installieren und konfigurieren., Anschließend testen Sie, ob Postfix in der Lage ist, E-Mails korrekt zu routen, indem Sie s-nail
, einen Mail User Agent (MUA), auch als E-Mail Client bekannt, installieren.
Beachten Sie, dass das Ziel dieses Tutorials darin besteht, Ihnen zu helfen, Postfix mit nur einigen nackten Knochen schnell zum Laufen zu bringen E-Mail-Funktionalität. Am Ende dieses Handbuchs haben Sie keinen voll ausgestatteten E-Mail-Server, aber einige der grundlegenden Komponenten eines solchen Setups helfen Ihnen beim Einstieg.
Voraussetzungen
Um dieser Anleitung zu folgen, benötigen Sie Folgendes:
- Ein Server mit Ubuntu 20.,04 um als Postfix Mail Server zu fungieren. Dieser Server sollte über einen Nicht-Root-Benutzer mit
sudo
– Berechtigungen und eine mit UFW konfigurierte Firewall verfügen. Sie können in unserem Ubuntu 20.04 initial server setup guide, um dies einzurichten. - Ein vollständig qualifizierter Domainname, der auf Ihren Ubuntu 20.04-Server zeigt. Hilfe zum Einrichten Ihres Domainnamens mit DigitalOcean finden Sie in unserer Dokumentation zu Domains und DNS-Netzwerken. Beachten Sie, dass Sie, wenn Sie von einem externen Speicherort aus auf E-Mails zugreifen möchten, sicherstellen müssen, dass auch ein MX-Datensatz auf Ihren E-Mail-Server verweist.,
Beachten Sie, dass in diesem Lernprogramm davon ausgegangen wird, dass Sie einen Host mit dem FQDN von mail.example.com
konfigurieren. Ändern Sie bei Bedarf example.com
oder mail.example.com
, um Ihren eigenen FQDN widerzuspiegeln.
Schritt 1-Installieren von Postfix
Postfix ist in den Standard-Repositorys von Ubuntu enthalten, sodass Sie es mit APT installieren können.
Aktualisieren Sie zunächst Ihren lokalenapt
Paketcache:
- sudo apt update
Installieren Sie dann das Paketpostfix
mit dem folgenden Befehl., Beachten Sie, dass wir hier die Umgebungsvariable DEBIAN_PRIORITY=low
an diesen Installationsbefehl übergeben. Dies führt dazu, dass der Installationsprozess Sie auffordert, einige zusätzliche Optionen zu konfigurieren:
- sudo DEBIAN_PRIORITY=low apt install postfix
Dieser Installationsprozess öffnet eine Reihe interaktiver Eingabeaufforderungen. Verwenden Sie für die Zwecke dieses Tutorials die folgenden Informationen, um Ihre Eingabeaufforderungen auszufüllen:
- Allgemeine Art der E-Mail-Konfiguration?: Wählen Sie dazu eine Website, da diese unseren Infrastrukturanforderungen entspricht.,
- System-Mail-Name: Dies ist die Basisdomäne, die zum Erstellen einer gültigen E-Mail-Adresse verwendet wird, wenn nur der Kontoteil der Adresse angegeben wird. Angenommen, der Hostname Ihres Servers lautet
mail.example.com
. Wahrscheinlich möchten Sie den System-Mail-Namen aufexample.com
setzen, damit Postfix bei Angabe des Benutzernamensuser1
die Adresse.
- Root-und Postmaster-E-Mail-Empfänger: Dies ist das Linux-Konto, das E-Mails an
root@
undpostmaster@
weiterleitet., Verwenden Sie hierfür Ihr Primärkonto. In diesem Beispielfall Sammy. - Andere Ziele, für die E-Mails akzeptiert werden sollen: Dies definiert die E-Mail-Ziele, die diese Postfix-Instanz akzeptiert. Wenn Sie andere Domänen hinzufügen müssen, für die dieser Server verantwortlich ist, fügen Sie diese hier hinzu. Andernfalls ist der Standardwert ausreichend.
- Erzwingen synchrone Updates auf Mail-Warteschlange?: Da Sie wahrscheinlich ein journaled Dateisystem verwenden, akzeptieren Sie hier Keine.
- Lokale Netzwerke: Dies ist eine Liste der Netzwerke, für die Ihr Mailserver zum Weiterleiten von Nachrichten konfiguriert ist., Der Standardwert funktioniert für die meisten Szenarien. Wenn Sie es jedoch ändern möchten, stellen Sie sicher, dass es in Bezug auf den Netzwerkbereich sehr restriktiv ist.
- Mailbox size limit: Dies kann verwendet werden, um die Größe von Nachrichten zu begrenzen. Wenn Sie es auf
0
, wird jede Größenbeschränkung deaktiviert. - Local address extension character: Dies ist das Zeichen, mit dem der reguläre Teil der Adresse von einer Erweiterung getrennt werden kann (zum Erstellen dynamischer Aliase). Der Standardwert
+
funktioniert für dieses Tutorial., - Zu verwendende Internetprotokolle: Wählen Sie aus, ob die von Postfix unterstützte IP-Version eingeschränkt werden soll. Für die Zwecke dieses Tutorials, wählen Sie alle.
Um explizit zu sein, sind dies die in diesem Handbuch verwendeten Einstellungen:
Hinweis: Wenn Sie jemals zurückkehren müssen, um diese Einstellungen zu ändern, können Sie dies tun, indem Sie Folgendes eingeben:
- sudo dpkg-reconfigure postfix
Die Eingabeaufforderungen werden mit Ihren vorherigen Antworten vorab ausgefüllt.
Wenn der Installationsvorgang abgeschlossen ist, können Sie einige Aktualisierungen Ihrer Postfix-Konfiguration vornehmen.,
Schritt 2 – Ändern der Postfix-Konfiguration
Jetzt können Sie einige Einstellungen anpassen, zu denen der Paketinstallationsprozess Sie nicht aufgefordert hat. Viele der Konfigurationseinstellungen von Postfix sind in der Datei /etc/postfix/main.cf
definiert. Anstatt diese Datei direkt zu bearbeiten, können Sie den Befehl postconf
von Postfix verwenden, um Konfigurationseinstellungen abzufragen oder festzulegen.
Legen Sie zunächst den Speicherort für das Postfach Ihres Ubuntu-Benutzers fest, der kein Root ist., In diesem Handbuch verwenden wir das Maildir-Format, das Nachrichten in einzelne Dateien trennt, die dann basierend auf Benutzeraktionen zwischen Verzeichnissen verschoben werden. Die alternative Option, die in diesem Handbuch nicht behandelt wird, ist das mbox-Format, das alle Nachrichten in einer einzigen Datei speichert.
Setzen Sie die Variable home_mailbox
auf Maildir/
. Später erstellen Sie eine Verzeichnisstruktur unter diesem Namen im Home-Verzeichnis Ihres Benutzers., Konfigurieren Sie home_mailbox
, indem Sie Folgendes eingeben:
- sudo postconf -e 'home_mailbox= Maildir/'
Legen Sie als nächstes den Speicherort der Tabelle virtual_alias_maps
fest, die beliebige E-Mail-Konten Linux-Systemkonten zuordnet. Führen Sie den folgenden Befehl aus, der den Tabellenspeicherort einer Hash-Datenbankdatei mit dem Namen /etc/postfix/virtual
zuordnet:
- sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'
Nachdem Sie nun den Speicherort der virtuellen Kartendatei in Ihrer main.cf
– Datei definiert haben, können Sie die Datei selbst erstellen und mit der Zuordnung von E-Mail-Konten zu Benutzerkonten auf Ihrem Linux-System beginnen., Erstellen Sie die Datei mit Ihrem bevorzugten Texteditor; In diesem Beispiel verwenden wir nano
:
- sudo nano /etc/postfix/virtual
Listen Sie alle Adressen auf, für die Sie E-Mails akzeptieren möchten, gefolgt von einem Leerzeichen und dem Linux-Benutzer, an den Sie diese E-Mail senden möchten.,
Wenn Sie beispielsweise E-Mails unter und
annehmen und diese E-Mails an den sammy Linux-Benutzer senden möchten, können Sie Ihre Datei folgendermaßen einrichten:
[email protected] [email protected] sammy
Nachdem Sie alle Adressen zugeordnet haben speichern und schließen Sie die Datei in den entsprechenden Serverkonten. Wenn Sie nano
verwendet haben, drücken Sie dazu CTRL + X
, Y
und dann ENTER
.,
Wenden Sie das Mapping an, indem Sie Folgendes eingeben:
- sudo postmap /etc/postfix/virtual
Starten Sie den Postfix-Prozess neu, um sicherzustellen, dass alle Ihre Änderungen angewendet wurden:
- sudo systemctl restart postfix
Angenommen, Sie haben die Anleitung zum Einrichten des erforderlichen Servers befolgt, haben Sie eine Firewall mit UFW konfiguriert. Diese Firewall blockiert standardmäßig externe Verbindungen zu Diensten auf Ihrem Server, es sei denn, diese Verbindungen sind explizit zulässig, sodass Sie eine Firewallregel hinzufügen müssen, um eine Ausnahme für Postfix zuzulassen.,
Sie können Verbindungen zum Dienst zulassen, indem Sie Folgendes eingeben:
- sudo ufw allow Postfix
Damit ist Postfix konfiguriert und bereit, externe Verbindungen zu akzeptieren. Sie sind jedoch noch nicht bereit, es mit einem Mail-Client zu testen. Bevor Sie einen Client installieren und für die Interaktion mit der an Ihren Server gelieferten E-Mail verwenden können, müssen Sie einige Änderungen am Setup Ihres Ubuntu-Servers vornehmen.,
Schritt 3-Installieren des Mail-Clients und Initialisieren der Maildir-Struktur
Um mit der zugestellten E-Mail zu interagieren, führt Sie dieser Schritt durch die Installation des Pakets s-nail
. Dies ist eine funktionsreiche Variante des BSD xmail
– Clients, der das Maildir-Format korrekt verarbeiten kann.
Vor der Installation des Clients ist es jedoch ratsam, sicherzustellen, dass IhreMAIL
Umgebungsvariable korrekt eingestellt ist., s-nail
sucht nach dieser Variablen, um herauszufinden, wo E-Mails für Ihren Benutzer zu finden sind.
Um sicherzustellen, dass die Variable MAIL
unabhängig davon festgelegt wird, wie Sie auf Ihr Konto zugreifen — ob über ssh
, su
, su -
oder sudo
— müssen Sie beispielsweise die Variable in die /etc/bash.bashrc
– Datei und fügen Sie sie einer Datei in /etc/profile.d
hinzu, um sicherzustellen, dass sie standardmäßig für alle Benutzer festgelegt ist.,
Um die Variable zu diesen Dateien hinzuzufügen, geben Sie Folgendes ein:
- echo 'export MAIL=~/Maildir' | sudo tee -a /etc/bash.bashrc | sudo tee -a /etc/profile.d/mail.sh
Um die Variable in Ihre aktuelle Sitzung zu lesen, geben Sie die /etc/profile.d/mail.sh
– Datei ein:
- source /etc/profile.d/mail.sh
Installieren Sie die s-nail
E-Mail-Client mit APT:
- sudo apt install s-nail
Bevor Sie den Client ausführen, müssen Sie einige Einstellungen anpassen. Öffnen Sie die Datei /etc/s-nail.rc
in Ihrem Editor:
- sudo nano /etc/s-nail.rc
Fügen Sie unten in der Datei die folgenden Optionen hinzu:
. . .set emptystartset folder=Maildirset record=+sent
Hier ist, was diese Zeilen tun:
-
set emptystart
: Ermöglicht dem Client, auch mit einem leeren Posteingang zu öffnen -
set folder=Maildir
: Legt das VerzeichnisMaildir
auf die internefolder
Variable -
set record=+sent
erstellt einesent
mbox-Datei zum Speichern von gesendeten E-Mails in jedem Verzeichnis, das alsfolder
Variable festgelegt ist, in diesem FallMaildir
Speichern und Schließen datei, wenn Sie fertig sind., Sie sind jetzt bereit, die Maildir-Struktur Ihres Systems zu initialisieren.
Eine schnelle Möglichkeit, die Maildir-Struktur in Ihrem Home-Verzeichnis zu erstellen, besteht darin, sich eine E-Mail mit dem Befehl s-nail
zu senden. Da diesent
– Datei erst verfügbar ist, wenn das Maildir erstellt wurde, sollten Sie das Schreiben für diese erste E-Mail deaktivieren. Übergeben Sie dazu die Option -Snorecord
.
Senden Sie die E-Mail, indem Sie eine Zeichenfolge an den Befehl s-nail
., Passen Sie den Befehl an, um Ihren Linux-Benutzer als Empfänger zu markieren:
- echo 'init' | s-nail -s 'init' -Snorecord sammy
Hinweis: Möglicherweise erhalten Sie die folgende Antwort:
OutputCan't canonicalize "/home/sammy/Maildir"
Dies ist normal und wird möglicherweise nur beim Senden dieser ersten Nachricht angezeigt.,
Sie können überprüfen, ob das Verzeichnis erstellt wurde, indem Sie nach Ihrer ~/Maildir
Verzeichnis:
- ls -R ~/Maildir
Sie werden sehen, dass die Verzeichnisstruktur erstellt wurde und dass sich eine neue Nachrichtendatei in der ~/Maildir/new
Verzeichnis:
Nachdem die Verzeichnisstruktur erstellt wurde, können Sie testen Sie den s-nail
– Client, indem Sie die von Ihnen gesendete init
– Nachricht anzeigen und eine Nachricht an eine externe E-Mail-Adresse senden.,
Schritt 4 — Testen des Clients
Um den Client zu öffnen, führen Sie den Befehl s-nail
aus:
- s-nail
In Ihrer Konsole sehen Sie einen rudimentären Posteingang mit der init
Nachricht warten:
Drücken Sie ENTER
um die Nachricht anzuzeigen:
Sie können zur Nachrichtenliste zurückkehren, indem Sie h
und dann ENTER
:
- h
Output>R 1 [email protected] 2020-05-19 15:40 14/392 init
Beachten Sie, dass die Nachricht jetzt den Status R
, was darauf hinweist, dass es gelesen wurde.,
Da diese Nachricht nicht sehr nützlich ist, können Sie sie löschen, indem Sie d
und dann ENTER
:
- d
Um zum Terminal zurückzukehren, geben Sie q
und dann ENTER
:
- q
Überprüfen Sie als letzten Test, ob s-nail
in der Lage ist, E-Mails korrekt zu senden. Dazu können Sie den Inhalt einer Textdatei in den s-nail
– Prozess leiten, wie Sie es mit der init
– Nachricht getan haben, die Sie im vorherigen Schritt gesendet haben.,
Beginnen Sie mit dem Schreiben einer Testnachricht in einem Texteditor:
- nano ~/test_message
Geben Sie einen Text ein, den Sie senden möchten:
Hello,This is a test. Please confirm receipt!
Speichern und schließen Sie die Datei nach dem Schreiben Ihrer Nachricht.
Verwenden Sie dann den Befehl cat
, um die Nachricht an den Prozess s-nail
weiterzuleiten., Sie können dies mit dem folgenden Beispiel tun, das diese Optionen verwendet:
-
-s
: Dies definiert die Betreffzeile der E-Mail-Nachricht -
-r
: Eine optionale Änderung des Felds „From:“ der E-Mail. Standardmäßig wird der Linux-Benutzer, bei dem Sie angemeldet sind, zum Ausfüllen dieses Felds verwendet. Mit der Option-r
können Sie dies mit einer gültigen Adresse überschreiben, z. B. einer der in der Datei/etc/postfix/virtual
definierten., Zur Veranschaulichung verwendet der folgende Befehl
Ändern Sie außerdem in eine gültige E-Mail-Adresse, auf die Sie Zugriff haben:
- cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] [email protected]
Navigieren Sie dann zum Posteingang der E-Mail-Adresse, an die Sie die Nachricht gesendet haben. Sie werden Ihre Nachricht fast sofort dort warten sehen.
Hinweis: Wenn sich die Nachricht nicht in Ihrem Posteingang befindet, wurde sie möglicherweise an Ihren Spam-Ordner gesendet.
Sie können Ihre gesendeten Nachrichten in Ihrem s-nail
Client anzeigen., Starten Sie den interaktiven Client erneut:
- s-nail
Zeigen Sie Ihre gesendeten Nachrichten über den E-Mail-Client an, indem Sie Folgendes eingeben:
- file +sent
Sie sehen die Ausgabe wie folgt:
Sie können gesendete E-Mails mit denselben Befehlen verwalten, die Sie für eingehende E-Mails verwenden.
Fazit
Sie haben jetzt Postfix auf Ihrem Ubuntu 20.04-Server konfiguriert. Das Verwalten von E-Mail-Servern kann für neue Systemadministratoren eine schwierige Aufgabe sein, aber mit dieser Konfiguration sollten Sie über genügend MTA-E-Mail-Funktionen verfügen, um loszulegen.