Wie man Postfix auf Ubuntu 22.04 installiert und konfiguriert

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:

  1. sudo apt update

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:

  1. sudo DEBIAN_PRIORITY=low apt install postfix

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 auf example.com setzen, damit Postfix die Adresse user1@example.com verwendet, wenn der Benutzername user1 gegeben ist.
  • Root- und Postmaster-Mail-Empfänger: Dies ist das Linux-Konto, an das E-Mails weitergeleitet werden, die an root@ und postmaster@ 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 (nicht mail.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:

  1. sudo dpkg-reconfigure postfix

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:

  1. sudo postconf -e 'home_mailbox= Maildir/'

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:

  1. sudo postconf -e 'virtual_alias_maps= hash:/etc/postfix/virtual'

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:

  1. sudo nano /etc/postfix/virtual

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:

/etc/postfix/virtual
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:

  1. sudo postmap /etc/postfix/virtual

Starten Sie den Postfix-Prozess neu, um sicherzustellen, dass alle Ihre Änderungen übernommen wurden:

  1. sudo systemctl restart postfix

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:

  1. sudo ufw allow Postfix

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:

  1. 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 laden, sourcen Sie die Datei /etc/profile.d/mail.sh:

  1. source /etc/profile.d/mail.sh

Mit dieser Aktion abgeschlossen, installieren Sie den E-Mail-Client s-nail mit APT:

  1. 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:

  1. sudo nano /etc/s-nail.rc

Fügen Sie am Ende der Datei die folgenden Optionen hinzu:

/etc/s-nail.rc
. . .
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 öffnen
  • set folder=Maildir: setzt das Verzeichnis Maildir als internen folder-Variablenwert
  • set record=+sent: erstellt eine sent-Mbox-Datei zum Speichern gesendeter E-Mails im Verzeichnis, das als folder-Variable gesetzt ist, in diesem Fall Maildir

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:

  1. echo 'init' | s-nail -s 'init' -Snorecord sammy

Hinweis: Sie erhalten möglicherweise die folgende Antwort:

Output
Can'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:

  1. ls -R ~/Maildir

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:

  1. s-nail

In Ihrer Konsole sehen Sie ein rudimentäres Postfach mit der wartenden init-Nachricht:

Output
s-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:

  1. h
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:

  1. d

Um zur Konsole zurückzukehren, geben Sie q ein und drücken Sie dann ENTER:

  1. q

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:

  1. nano ~/test_message

Tragen Sie darin den Text ein, den Sie senden möchten:

~/test_message
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:

  1. cat ~/test_message | s-nail -s 'Test email subject line' -r [email protected] user@email.com

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:

  1. s-nail

Von Ihrem E-Mail-Client aus können Sie Ihre gesendeten Nachrichten anzeigen, indem Sie Folgendes eingeben:

  1. file +sent

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.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-on-ubuntu-22-04