Postfix ist eine beliebte freie und Open-Source-Software, die als Mail Transfer Agent (MTA) agiert. Die Aufgabe von Postfix ist es, E-Mails weiterzuleiten und zuzustellen. Neben der klassischen Nutzung kann Postfix auch so konfiguriert werden, dass E-Mails nur von lokalen Anwendungen gesendet werden.
Diese Anwendung von Postfix ist ein nützlicher Trick, der in verschiedenen Situationen eingesetzt werden kann. Sie kann beispielsweise beim regelmäßigen Versenden von E-Mail-Benachrichtigungen verwendet werden, bei der Zusammenarbeit mit einem Drittanbieter-E-Mail-Dienst mit begrenztem ausgehenden Datenverkehr usw. Im Vergleich zu einem vollwertigen SMTP-Server ist Postfix eine schlankere Alternative, die gleichzeitig die notwendigen Funktionalitäten beibehält.
In dieser Anleitung erfahren Sie, wie Sie Postfix als reinen Sende-SMTP-Server auf Ubuntu installieren und konfigurieren.
Voraussetzungen
Um dieser Anleitung zu folgen, müssen Sie die folgenden Voraussetzungen erfüllen:
-
Sie müssen über einen ordnungsgemäß konfigurierten Ubuntu-Server mit Zugriff auf einen Sudo-Nicht-Root-Benutzer verfügen.
-
Sie benötigen außerdem einen vollständig registrierten Domainnamen. Erfahren Sie mehr über Domainnamen in unserem Beitrag Installation eines SSL-Zertifikats von einer kommerziellen Zertifizierungsstelle.
-
Schließlich benötigen Sie einen DNS-Eintrag, bei dem der Domainname auf die öffentliche IP-Adresse des Servers verweist.
Postfix installieren
Sobald die Voraussetzungen erfüllt sind, ist der Server bereit für die Bereitstellung von Postfix. Der einfachste Weg, Postfix zu installieren, ist die Installation des Pakets mailutils. Es ist direkt in den offiziellen Ubuntu-Repositories verfügbar.
Öffnen Sie zuerst ein Terminal und aktualisieren Sie die APT-Paketdatenbank:
|
1 |
sudo apt update |

Anschließend können Sie Postfix installieren:
|
1 |
sudo apt install mailutils |

Während des Installationsprozesses öffnet sich das folgende Konfigurationsfenster. Die Standardoption ist Internet Site. Um die Auswahl zu bestätigen, drücken Sie TAB, um den Cursor in den nächsten Bereich zu bewegen. Drücken Sie dann Enter:

Im nächsten Schritt werden Sie nach dem System-E-Mail-Namen gefragt. Dies ist der Name, der dem Server zum Zeitpunkt der Erstellung zugewiesen wurde. Wie im Skript beschrieben: Wenn die E-Mail-Adresse für den lokalen Host „foo@example.org“ lautet, wäre der System-E-Mail-Name example.org:

Beachten Sie, dass das Konfigurationsskript auch später jederzeit mit dem folgenden Befehl aufgerufen werden kann:
|
1 |
sudo dpkg-reconfigure postfix |
Postfix konfigurieren
In diesem Schritt wird Postfix so konfiguriert, dass es E-Mails nur von localhost sendet und empfängt. Dies erfordert, dass Postfix auf der Schnittstelle loopback lauscht. Dies ist die virtuelle Netzwerkschnittstelle, die der Server für die interne Kommunikation verwendet. Öffnen Sie als Nächstes die Postfix-Konfigurationsdatei mit dem Texteditor Ihrer Wahl:
|
1 |
sudo nano /etc/postfix/main.cf |
Ändern Sie den Wert von inet_interface in loopback-only:

Eine weitere Direktive, die Sie ändern müssen, ist mydestination. Sie definiert die Liste der Domains, die über den Mail-Zustellungstransport local_transport zugestellt werden. Der Standardwert sieht in etwa so aus:

Ändern Sie den Wert in Folgendes:
|
1 |
mydestination = localhost.$mydomain, localhost, $myhostname |

Falls Ihre Domain tatsächlich eine Subdomain ist und Sie möchten, dass die E-Mails so aussehen, als ob sie von der Hauptdomain gesendet wurden, fügen Sie die folgende Direktive am Ende der Postfix-Konfiguration hinzu. Dadurch wird die Subdomain aus der E-Mail-Adresse entfernt:
|
1 |
masquerade_domains = <main_domain> |

Um die Änderungen wirksam zu machen, starten Sie Postfix neu:
|
1 |
sudo systemctl restart postfix |
Testen des SMTP-Servers
Angenommen, der Konfigurationsprozess war erfolgreich, ist es an der Zeit, ihn zu testen. Überprüfen Sie dazu mit dem Befehl mail, ob Postfix eine E-Mail an ein externes E-Mail-Konto senden kann. Er ist Teil des Pakets mailutils:
|
1 |
echo "Test email body" | mail -s "Subject line" <email_address> |
Die Nachricht sollte an der angegebenen E-Mail-Adresse ankommen. Zu diesem Zeitpunkt sind alle gesendeten E-Mails unverschlüsselt. Dienstanbieter markieren solche E-Mails im Allgemeinen als Spam, stellen Sie also sicher, dass Sie den Spam-Ordner auf den Eingang der E-Mail überprüfen.
Wenn der mail -Befehl einen Fehler meldet oder die E-Mail nach längerer Zeit nicht angekommen ist, überprüfen Sie die Postfix-Konfiguration erneut und stellen Sie sicher, dass der Servername und der Hostname korrekt eingestellt sind. Mit dieser Konfiguration scheinen die E-Mails von der folgenden Adresse gesendet zu werden:
|
1 |
<username>@<domain> |
Hier ist der Benutzername der Benutzername des Server-Benutzers, der den mail -Befehl ausgeführt hat.
System-E-Mails weiterleiten
Wir haben erfolgreich überprüft, dass der E-Mail-Server ordnungsgemäß konfiguriert und funktionsfähig ist. Nun muss er so konfiguriert werden, dass er E-Mails für root weiterleitet. Alle vom System generierten Nachrichten, die an den Server gesendet werden, werden an eine externe E-Mail-Adresse weitergeleitet. Für E-Mail-Empfänger enthält die /etc/aliases-Datei die Liste der alternativen Namen. Öffnen Sie sie mit dem Texteditor Ihrer Wahl:
|
1 |
sudo nano /etc/aliases |
Standardmäßig sieht es so aus:

Fügen Sie am Ende der Datei die folgende Zeile hinzu:
|
1 |
root: <email_address> |

Dies besagt, dass die an root gesendeten E-Mails an eine E-Mail-Adresse weitergeleitet werden. Um die Änderung wirksam zu machen, führen Sie den folgenden Befehl aus. Dadurch wird die Alias-Datenbank neu erstellt, die der mail -Befehl verwendet:
|
1 |
sudo newaliases |
![]()
Als Nächstes müssen Sie testen, ob die Änderung erfolgreich war. Senden Sie eine Test-E-Mail an root:
|
1 |
echo "Test root email body" | mail -s "Subject line" root |
Die E-Mail sollte an der angegebenen E-Mail-Adresse ankommen. Vergessen Sie nicht, den Spam-Ordner zu überprüfen, da noch keine Verschlüsselung konfiguriert ist.
SMTP-Verschlüsselung aktivieren
Das Senden von E-Mails im unverschlüsselten Format ist ein riskantes Unterfangen. Um die Sicherheit zu gewährleisten, muss die SMTP-Verschlüsselung aktiviert sein. Um dies zu erreichen, fordern wir ein kostenloses TLS-Zertifikat von Let’s Encrypt für Ihre Domain an.
Für Ubuntu ist es das Tool Certbot, das diese Aufgabe übernimmt. Glücklicherweise ist es direkt im offiziellen Ubuntu-Repository verfügbar. Installieren Sie Certbot mit dem folgenden Befehl:
|
1 |
sudo apt install certbot |

Angenommen, auf dem Server ist UFW konfiguriert, ist es notwendig, den Port 80 zu öffnen, damit die Domain-Verifizierung stattfinden kann. Führen Sie den folgenden Befehl aus, um ihn freizugeben:
|
1 |
sudo ufw allow 80 |

Führen Sie nun Certbot aus, um ein Zertifikat zu generieren. Dies weist Certbot an, Zertifikate mit einem 4096-Bit-RSA-Schlüssel auszustellen. Die Verifizierung erfolgt über Port 80 (HTTP):
|
1 |
sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --preferred-challenges http -d <domain> |
Die Ausgabe wird in etwa so aussehen:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Speichern Debug-Log unter /var/log/letsencrypt/letsencrypt.log Plugins ausgewählt: Authenticator standalone, Installer None Erhalten eines neuen Zertifikats Ausführen der folgenden Challenges: http-01 Challenge für '<domain>' Warten auf Verifizierung... Bereinigen von Herausforderungen WICHTIGE HINWEISE: - Herzlichen Glückwunsch! Ihr Zertifikat und die Kette wurden gespeichert unter at: /etc/letsencrypt/live/<domain>/fullchain.pem Ihre Schlüssel-datei wurde gespeichert unter at: /etc/letsencrypt/live/<domain>/privkey.pem Ihr Zertifikat läuft ab am 2020-07-11. Um in Zukunft eine neue oder geänderte Version dieses Zertifikats zu erhalten, führen Sie, einfach erneut certbot aus. Um nicht--interaktiv zu erneuern *alle* Ihrer Zertifikate, führen Sie, aus "certbot renew" - Wenn Sie like Certbot, mögen, unterstützen Sie bitte unsere Arbeit durch eine Spende : an die ISRG / Let's Encrypt: https://letsencrypt.org/donate eine Spende an die : EFF:https |
Der Schlüssel wird im folgenden Verzeichnis gespeichert:
|
1 |
/etc/letsencrypt/live/<domain> |
Nachdem Ihr Zertifikat generiert wurde, öffnen Sie die Postfix-Konfigurationsdatei in einem Texteditor:
|
1 |
sudo nano /etc/postfix/main.cf |
Suchen Sie den Abschnitt TLS Parameter:

Ändern Sie danach den Wert der Direktiven smtpd_tls_cert_file und smtpd_tls_key_file:

Speichern und schließen Sie anschließend die Datei. Um die Änderungen wirksam zu machen, starten Sie Postfix neu:
|
1 |
sudo systemctl restart postfix |
Senden Sie schließlich erneut eine Test-E-Mail an eine Ziel-E-Mail-Adresse:
|
1 |
echo "Dies ist der E-Mail-Text" | mail -s "E-Mail-Betreffzeile" <email> |
Die E-Mail sollte nun normal wie andere E-Mails erscheinen. Wenn Sie die technischen Informationen der E-Mail überprüfen, wird sie als verschlüsselt angezeigt.
Fazit
Herzlichen Glückwunsch! Sie haben erfolgreich einen Postfix-basierten E-Mail-Server konfiguriert, der nur für den Versand bestimmt ist. Die E-Mail-Übertragungen sind zudem durch einen entsprechenden Verschlüsselungsschlüssel gesichert.
Weitere Möglichkeiten zur Optimierung der E-Mail-Übertragung finden Sie in diesem Tutorial Die besten Möglichkeiten zur Nutzung des SMTP-Servers von Google.
Viel Spaß beim Computing!
Kommentare
Noch keine Kommentare. Schreiben Sie den ersten.