Einführung
Postfix ist ein beliebter Open-Source-Mail-Transfer-Agent (MTA), der auf einem Linux-System zum Routen und Zustellen von E-Mails verwendet werden kann. Es wird geschätzt, dass etwa 25% der öffentlichen Mailserver im Internet Postfix verwenden.
In diesem Leitfaden erfahren Sie, wie Sie Postfix auf einem Ubuntu 22.04 Server installieren und konfigurieren können. Anschließend testen Sie, ob Postfix in der Lage ist, E-Mails korrekt zu routen, indem Sie s-nail
installieren, einen Mail-Benutzer-Agent (MUA), auch bekannt als E-Mail-Client.
Beachten Sie, dass das Ziel dieses Tutorials darin besteht, Ihnen zu helfen, Postfix schnell und mit nur grundlegender E-Mail-Funktionalität einzurichten. Sie werden am Ende dieses Leitfadens keinen vollständig ausgestatteten E-Mail-Server haben, aber Sie werden einige der grundlegenden Komponenten einer solchen Konfiguration haben, um Ihnen den Einstieg zu erleichtern.
Voraussetzungen
Das Einrichten und die Wartung eines eigenen Mail-Servers sind kompliziert und zeitaufwendig. Für die meisten Benutzer ist es praktischer, stattdessen auf einen kostenpflichtigen Mail-Dienst zu setzen. Wenn Sie darüber nachdenken, Ihren eigenen Mail-Server zu betreiben, empfehlen wir Ihnen, diesen Artikel zu lesen, warum Sie dies möglicherweise nicht tun möchten.
Wenn Sie sicher sind, dass Sie diese Anleitung zur Installation und Konfiguration von Postfix befolgen möchten, müssen Sie zunächst Folgendes haben:
- A server running Ubuntu 22.04 to function as your Postfix mail server. This server should have a non-root user with
sudo
privileges and a firewall configured with UFW. You can follow our Ubuntu 22.04 initial server setup guide to set this up. - A Fully Qualified Domain Name pointed at your Ubuntu 22.04 server. You can find help on setting up your domain name with DigitalOcean by following our Domains and DNS Networking documentation. Be aware that if you plan on accessing mail from an external location, you will need to make sure you have an MX record pointing to your mail server as well.
Beachten Sie, dass dieses Tutorial davon ausgeht, dass Sie einen Host konfigurieren, der den FQDN mail.example.com
hat. Wo immer erforderlich, ändern Sie bitte example.com
oder mail.example.com
, um Ihren eigenen FQDN widerzuspiegeln.
Schritt 1 — Installation von Postfix
Postfix ist in den Standard-Repositories von Ubuntu enthalten, sodass Sie es mit APT installieren können.
Beginnen Sie damit, Ihren lokalen apt
-Paket-Cache zu aktualisieren:
Dann installieren Sie das Paket postfix
mit folgendem Befehl. Beachten Sie, dass hier die Umgebungsvariable DEBIAN_PRIORITY=low
an diesen Installationsbefehl übergeben wird. Dadurch werden Sie aufgefordert, einige zusätzliche Optionen zu konfigurieren:
Dieser Installationsprozess wird eine Reihe interaktiver Abfragen öffnen. Verwenden Sie zu Schulungszwecken die folgenden Informationen, um Ihre Abfragen auszufüllen:
- Allgemeiner Typ der E-Mail-Konfiguration?: Wählen Sie hierfür Internet-Site aus, da dies unseren Infrastrukturanforderungen entspricht.
- Name des Systemmails: Dies ist die Basisdomäne, die verwendet wird, um eine gültige E-Mail-Adresse zu konstruieren, wenn nur der Kontoteil der Adresse angegeben ist. Angenommen, der Hostname Ihres Servers ist
mail.example.com
. Sie möchten wahrscheinlich den Systemmailnamen aufexample.com
setzen, damit Postfix die Adresseuser1@example.com
verwendet, wenn der Benutzernameuser1
gegeben ist. - Root- und Postmaster-Mail-Empfänger: Dies ist das Linux-Konto, an das E-Mails weitergeleitet werden, die an
root@
undpostmaster@
adressiert sind. Verwenden Sie hierfür Ihr primäres Konto. In diesem Beispiel ist es sammy. - Andere Ziele, für die E-Mails akzeptiert werden sollen: Hier werden die E-Mail-Ziele definiert, die diese Postfix-Instanz akzeptieren wird. Wenn Sie weitere Domänen hinzufügen müssen, für die dieser Server zuständig sein soll, fügen Sie diese hier hinzu. Andernfalls ist die Standardeinstellung ausreichend.
- Synchrone Updates in der Mail-Warteschlange erzwingen?: Da Sie wahrscheinlich ein journalisiertes Dateisystem verwenden, akzeptieren Sie hier Nein.
- Lokale Netzwerke: Dies ist eine Liste der Netzwerke, für die Ihr Mailserver so konfiguriert ist, dass er Nachrichten weiterleitet. Die Standardeinstellung funktioniert in den meisten Szenarien. Wenn Sie sich jedoch dazu entscheiden, sie zu ändern, stellen Sie sicher, dass Sie hinsichtlich des Netzwerkbereichs sehr restriktiv vorgehen.
- Postfachgrößenlimit: Dies kann verwendet werden, um die Größe von Nachrichten zu begrenzen. Wenn Sie es auf
0
setzen, wird jede Größenbeschränkung deaktiviert. - Zeichen für lokale Adresserweiterung: Dies ist das Zeichen, das verwendet werden kann, um den regulären Teil der Adresse von einer Erweiterung (verwendet zur Erstellung dynamischer Aliase) zu trennen. Das Standardzeichen
+
funktioniert für dieses Tutorial. - Zu verwendende Internetprotokolle: Wählen Sie, ob die IP-Version eingeschränkt werden soll, die Postfix unterstützt. Wählen Sie für die Zwecke dieses Tutorials alle.
Um es klar zu sagen, dies sind die Einstellungen, die in dieser Anleitung verwendet werden:
- Allgemeiner Typ der Mailkonfiguration?: Internetseite
- Systemmailname:
beispiel.com
(nichtmail.beispiel.com
) - Root- und Postmaster-Mail-Empfänger: Der Benutzername Ihres primären Linux-Kontos (sammy in unseren Beispielen)
- Weitere Ziele, für die Mails akzeptiert werden sollen:
$myhostname, beispiel.com, mail.beispiel.com, localhost.beispiel.com, localhost
- Synchronisierte Updates in der Mail-Warteschlange erzwingen?: Nein
- Lokale Netzwerke:
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Postfachgrößenlimit:
0
- Zeichen für lokale Adresserweiterung:
+
- Zu verwendende Internetprotokolle: alle
Hinweis: Wenn Sie jemals zurückkehren müssen, um diese Einstellungen zu ändern, können Sie dies tun, indem Sie Folgendes eingeben:
Die Eingabeaufforderungen werden mit Ihren vorherigen Antworten vorab ausgefüllt sein.
Wenn Sie aufgefordert werden, Dienste neu zu starten, akzeptieren Sie die Standardeinstellungen und wählen Sie OK
.
Wenn der Installationsprozess abgeschlossen ist, sind Sie bereit, einige Updates an Ihrer Postfix-Konfiguration vorzunehmen.
Schritt 2 — Ändern der Postfix-Konfiguration
Jetzt können Sie einige Einstellungen anpassen, für die Sie während des Paketinstallationsprozesses nicht aufgefordert wurden. 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.
Um anzufangen, setzen Sie den Speicherort für das Mailbox Ihres nicht-root Ubuntu-Benutzers. In diesem Leitfaden verwenden wir das Maildir-Format, das Nachrichten in einzelne Dateien aufteilt, die dann basierend auf Benutzeraktionen zwischen Verzeichnissen verschoben werden. Die alternative Option, die in diesem Leitfaden nicht behandelt wird, ist das mbox-Format, das alle Nachrichten in einer einzigen Datei speichert.
Setzen Sie die home_mailbox
-Variable auf Maildir/
. Später werden Sie eine Verzeichnisstruktur unter diesem Namen im Benutzerverzeichnis erstellen. Konfigurieren Sie home_mailbox
, indem Sie Folgendes eingeben:
Legen Sie als Nächstes den Speicherort der virtual_alias_maps
-Tabelle fest, die beliebige E-Mail-Konten auf Linux-Systemkonten abbildet. Führen Sie den folgenden Befehl aus, der den Tabellenstandort auf eine Hash-Datenbankdatei mit dem Namen /etc/postfix/virtual
abbildet:
Nachdem Sie den Speicherort der virtuellen Abbildungsdatei in Ihrer main.cf
-Datei definiert haben, können Sie die Datei selbst erstellen und beginnen, E-Mail-Konten auf Benutzerkonten in Ihrem Linux-System abzubilden. Erstellen Sie die Datei mit Ihrem bevorzugten Texteditor; in diesem Beispiel verwenden wir nano
:
Listen Sie alle Adressen auf, für die Sie E-Mails empfangen möchten, gefolgt von einem Leerzeichen und dem Linux-Benutzer, an den Sie diese E-Mails zustellen möchten.
Zum Beispiel, wenn Sie E-Mails an contact@example.com
und admin@example.com
empfangen und diese E-Mails an den sammy-Linux-Benutzer zustellen möchten, könnten Sie Ihre Datei wie folgt einrichten:
contact@example.com sammy
admin@example.com sammy
Nachdem Sie alle Adressen den entsprechenden Serverkonten zugeordnet haben, speichern Sie die Datei und schließen Sie sie. Wenn Sie nano
verwendet haben, tun Sie dies, indem Sie CTRL + X
, Y
und dann ENTER
drücken.
Wenden Sie die Zuordnung an, indem Sie Folgendes eingeben:
Starten Sie den Postfix-Prozess neu, um sicherzustellen, dass alle Ihre Änderungen übernommen wurden:
Angenommen, Sie haben dem vorausgesetzten Leitfaden zur Initialkonfiguration des Servers gefolgt, 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 ausdrücklich zugelassen, daher müssen Sie eine Firewall-Regel hinzufügen, um eine Ausnahme für Postfix zu ermöglichen.
Sie können Verbindungen zum Dienst zulassen, indem Sie Folgendes eingeben:
Mit dieser Konfiguration ist Postfix eingerichtet und bereit, externe Verbindungen anzunehmen. Sie sind jedoch noch nicht bereit, es mit einem E-Mail-Client zu testen. Bevor Sie einen Client installieren und verwenden können, um mit der an Ihren Server gelieferten E-Mail zu interagieren, müssen Sie einige Änderungen an der Einrichtung Ihres Ubuntu-Servers vornehmen.
Schritt 3 – Installation des E-Mail-Clients und Initialisierung der Maildir-Struktur
Um mit der zugestellten E-Mail interagieren zu können, führt Sie dieser Schritt durch den Prozess der Installation des Pakets s-nail
. Dies ist eine funktionsreiche Variante des BSD xmail
-Clients, der das Maildir-Format korrekt verarbeiten kann.
Bevor Sie den Client installieren, wäre es jedoch ratsam sicherzustellen, dass Ihre Umgebungsvariable MAIL
korrekt festgelegt ist. s-nail
sucht nach dieser Variable, um herauszufinden, wo die E-Mails für Ihren Benutzer zu finden sind.
Um sicherzustellen, dass die MAIL
-Variable unabhängig davon gesetzt ist, wie Sie auf Ihr Konto zugreifen – ob über ssh
, su
, su -
oder sudo
, zum Beispiel – müssen Sie die Variable in der Datei /etc/bash.bashrc
setzen und sie zu einer Datei innerhalb von /etc/profile.d
hinzufügen, um sicherzustellen, dass sie standardmäßig für alle Benutzer gesetzt ist.
Um die Variable zu diesen Dateien hinzuzufügen, geben Sie ein:
Um die Variable in Ihre aktuelle Sitzung zu laden, sourcen Sie die Datei /etc/profile.d/mail.sh
:
Mit dieser Aktion abgeschlossen, installieren Sie den E-Mail-Client s-nail
mit APT:
Bevor Sie den Client ausführen, müssen Sie einige Einstellungen anpassen. Öffnen Sie die Datei /etc/s-nail.rc
in Ihrem Editor:
Fügen Sie am Ende der Datei die folgenden Optionen hinzu:
. . .
set emptystart
set folder=Maildir
set record=+sent
Hier ist, was diese Zeilen tun:
set emptystart
: ermöglicht es dem Client, sich auch bei einem leeren Posteingang zu öffnenset folder=Maildir
: setzt das VerzeichnisMaildir
als internenfolder
-Variablenwertset record=+sent
: erstellt einesent
-Mbox-Datei zum Speichern gesendeter E-Mails im Verzeichnis, das alsfolder
-Variable gesetzt ist, in diesem FallMaildir
Speichern und schließen Sie die Datei, wenn Sie fertig sind. Jetzt können Sie die Maildir-Struktur Ihres Systems initialisieren.
A quick way to create the Maildir structure within your home directory is to send yourself an email with the s-nail
command. Because the sent
file will only be available once the Maildir is created, you should disable writing to it for this initial email. Do this by passing the -Snorecord
option.
Versenden Sie die E-Mail, indem Sie einen String an den s-nail
-Befehl pipen. Passen Sie den Befehl an, um Ihren Linux-Benutzer als Empfänger zu kennzeichnen:
Hinweis: Sie erhalten möglicherweise die folgende Antwort:
OutputCan't canonicalize "/home/sammy/Maildir"
Dies ist normal und kann nur erscheinen, wenn Sie diese erste Nachricht senden.
Sie können überprüfen, ob das Verzeichnis erstellt wurde, indem Sie nach Ihrem ~/Maildir
-Verzeichnis suchen:
Sie werden feststellen, dass die Verzeichnisstruktur erstellt wurde und dass sich eine neue Nachrichtendatei im Verzeichnis ~/Maildir/new
befindet:
Output/home/sammy/Maildir/:
cur new tmp
/home/sammy/Maildir/cur:
/home/sammy/Maildir/new:
1650294586.Vfc01I7e11dM993645.mail.example.com
/home/sammy/Maildir/tmp:
Nun, da die Verzeichnisstruktur erstellt wurde, sind Sie bereit, den s-nail
-Client zu testen, 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:
In Ihrer Konsole sehen Sie ein rudimentäres Postfach mit der wartenden init
-Nachricht:
Outputs-nail version v14.9.15. Type `?' for help
"/home/sammy/Maildir": 1 message 1 new
>N 1 [email protected] 2022-04-18 15:09 14/452 init
Drücken Sie ENTER
, um die Nachricht anzuzeigen:
Output[-- Message 1 -- 14 lines, 452 bytes --]:
Date: Mon, 18 Apr 2022 15:09:46 +0000
To: [email protected]
Subject: init
Message-Id: <20220418150946.EE6897E11A@@mail.example.com>
From: [email protected]
init
Sie können zur Nachrichtenliste zurückkehren, indem Sie h
eingeben und dann ENTER
drücken:
Output>R 1 [email protected] 2022-04-18 15:09 14/452 init
Bemerken Sie, dass die Nachricht nun den Status R
hat, was bedeutet, dass sie gelesen wurde.
Da diese Nachricht nicht sehr nützlich ist, können Sie sie durch Drücken von d
und dann ENTER
löschen:
Um zur Konsole zurückzukehren, geben Sie q
ein und drücken Sie dann ENTER
:
Als abschließenden Test überprüfen Sie, ob s-nail
in der Lage ist, E-Mail-Nachrichten korrekt zu senden. Dazu können Sie den Inhalt einer Textdatei in den s-nail
-Prozess leiten, wie Sie es mit der init
-Nachricht im vorherigen Schritt getan haben.
Beginnen Sie damit, eine Testnachricht in einem Texteditor zu schreiben:
Tragen Sie darin den Text ein, den Sie senden möchten:
Hello,
This is a test. Please confirm receipt!
Speichern und schließen Sie die Datei nach dem Verfassen Ihrer Nachricht.
Verwenden Sie dann das cat
-Kommando, um die Nachricht an den s-nail
-Prozess zu leiten. 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 „Von:“ der E-Mail. Standardmäßig wird der Linux-Benutzer, unter dem Sie angemeldet sind, verwendet, um dieses Feld auszufüllen. Die Option-r
ermöglicht es Ihnen, dies durch eine gültige Adresse zu überschreiben, wie eine der Adressen, die Sie in der Datei/etc/postfix/virtual
definiert haben. Zur Veranschaulichung verwendet der folgende Befehl[email protected]
Außerdem sollten Sie user@email.com
in eine gültige E-Mail-Adresse ändern, auf die Sie Zugriff haben:
Gehen Sie dann zum Posteingang für die E-Mail-Adresse, an die Sie die Nachricht gesendet haben. Sie sehen dort Ihre Nachricht fast sofort.
Hinweis: Wenn die Nachricht nicht in Ihrem Posteingang ist, wurde sie möglicherweise in Ihren Spam-Ordner verschoben.
Sie können Ihre gesendeten Nachrichten innerhalb Ihres s-nail
-Clients anzeigen. Starten Sie den interaktiven Client erneut:
Von Ihrem E-Mail-Client aus können Sie Ihre gesendeten Nachrichten anzeigen, indem Sie Folgendes eingeben:
Sie sehen dann eine Ausgabe wie diese:
Output+[/home/sammy/Maildir/]sent: 1 message 1 new
▸N 1 To [email protected] 2022-04-18 15:12 10/211 Test email subject line
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 22.04 Server konfiguriert. Die Verwaltung von E-Mail-Servern kann für neue Systemadministratoren eine schwierige Aufgabe sein, aber mit dieser Konfiguration sollten Sie genügend MTA-E-Mail-Funktionalität haben, um zu starten.