Postfix auf CentOS: Alt-Setup mit Sicherheitshinweisen für 2026


Datum der Veröffentlichung:

Aktualisiert:


Fachartikel > Postfix auf CentOS: Alt-Setup mit Sicherheitshinweisen für 2026

Status 2026 und sichere Verwendung

Schlussfolgerung: Ein Produktions-Mail-Transport ist nicht abgeschlossen, wenn Postfix lediglich gestartet wird. Es erfordert ein unterstütztes Betriebssystem und einen Postfix-Build, eine korrekte DNS-Identität, eine eingeschränkte Relay-Richtlinie, eine authentifizierte Übermittlung, modernes TLS, eine Zertifikatserneuerung, Missbrauchskontrollen, Protokollierung, Warteschlangenüberwachung und eine getestete Zustellbarkeit.

Was Sie lernen werden

  • Was in der ursprünglichen Komplettlösung für CentOS 7/Postfix 2.10.1 konfiguriert wurde.
  • Warum die Übermittlungsauthentifizierung nicht versehentlich ein offenes Relay erzeugen darf.
  • Welche TLS-, SASL-, DNS-, Firewall- und Betriebsentscheidungen für eine aktuelle Bereitstellung neu gestaltet werden müssen.

Für wen ist dies gedacht: Administratoren, die ein geerbtes Postfix-Runbook evaluieren, nicht Anfänger, die einen öffentlichen Mailserver zum Kopieren und Einfügen suchen.

Stand 2026: CentOS 7 und die aufgeführten Paketversionen sind veraltet. Die unten aufgeführte Legacy-Konfiguration wurde nicht als sicherer aktueller E-Mail-Dienst validiert und darf nicht unverändert bereitgestellt werden. Prüfen Sie insbesondere, ob die Übermittlungsbeschränkungen in einer expliziten Ablehnungsrichtlinie enden, schützen Sie Anmeldeinformationen und verwenden Sie den paketierten systemd-Dienst, anstatt eine nicht überprüfte Einheit zu erfinden.

Sicherheitshinweis: Die Befehle und Konfigurationsbeispiele im Originalartikel wurden nicht in einer aktuellen Produktionsumgebung erneut ausgeführt. Überprüfen Sie unterstützte Versionen, Backups, Zugriffskontrollen und Rollback-Schritte in einer separaten Testumgebung, bevor Sie sie anwenden.

Offizielle Primärquellen

Überblick

Dieses historische Verfahren installiert und startet Postfix unter CentOS 7 und richtet den Submission-Port ein.

Wenn Sie auch Dovecot installieren, siehe auch.

Postfix ist für den Versand von E-Mails und Dovecot für den Empfang von E-Mails zuständig. Wenn Sie den Versand von E-Mails verarbeiten müssen, installieren Sie Postfix, und wenn Sie auch E-Mails empfangen möchten, installieren Sie Dovecot.

Getestete Versionen:

CentOS-Version7.6 (1810)
Postfix-Version2.10.1

Inhaltsübersicht

  1. installieren
  2. Details zur Einrichtung
  3. Zusammenfassung

1. installieren

In diesem Abschnitt wird die Konfiguration von Postfix von der Installation bis zum Start beschrieben.

1-1. Postfix-Installation

Führen Sie die Installation von Postfix mit dem Befehl yum durch. Führen Sie die Arbeiten als root-Benutzer durch.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postfix

1-2. Bootstrap-Check

Um zu überprüfen, ob die Installation erfolgreich war, kontrollieren Sie den Startvorgang.

[root@hostname ~]# /usr/sbin/postfix start
[root@hostname ~]# ps aux | grep postfix
root      1485  0.7  0.2  89744  2128 ?        Ss   16:02   0:00 /usr/libexec/postfix/master -w
postfix   1486  0.2  0.4  89848  4080 ?        S    16:02   0:00 pickup -l -t unix -u
postfix   1487  0.2  0.4  89916  4104 ?        S    16:02   0:00 qmgr -l -t unix -u
root      1489  0.0  0.1 112824   964 pts/0    S+   16:02   0:00 grep --color=auto postfix

Jeder Prozess, der wie oben beschrieben als Postfix-Benutzer läuft, ist OK. Halt!

[root@hostname ~]# /usr/sbin/postfix stop

2. Details zur Einrichtung

2-1. Initialisierung

Erstkonfiguration von Postfix. Die Postfix-Konfiguration wird im Wesentlichen in der Datei "/etc/postfix/main.cf" beschrieben, so dass wir die Datei main.cf ändern werden.

[root@hostname ~]# vi /etc/postfix/main.cf

Folgende Änderung ist erforderlich:

main.cf【Vor der Änderung】


#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
~Verkürzung~
#
#mydomain = domain.tld
~Verkürzung~
#myorigin = $myhostname
#myorigin = $mydomain
~Verkürzung~
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
~Verkürzung~
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
~Verkürzung~
#mynetworks = 168.100.189.0/24, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~Verkürzung~
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/

main.cf【nach der Änderung】


#
myhostname = example.com
#myhostname = virtual.domain.tld
~Verkürzung~
#
mydomain = example.com
~Verkürzung~
#myorigin = $myhostname
myorigin = $mydomain
~Verkürzung~
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
~Verkürzung~
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
~Verkürzung~
mynetworks = 127.0.0.0/8, 192.168.100.0/24
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~Verkürzung~
#
#home_mailbox = Mailbox
home_mailbox = Maildir/

myhostname", "mydomain" und "myorigin" Diese Einstellungen beziehen sich auf die Domäne. Der Teil, der auf "example.com" geändert wird, sollte auf den Domänennamen des Servers gesetzt werden. Der Teil "example.com" von "https://example.com/" ist der Domänenname.

Die E-Mail Adresse lautet username@example.com.

mynetworks" ist eine netzbezogene Einstellung. Dies ist eine IP-Adresse, die mit Postfix verbunden werden kann. Wenn der Mailserver mit einem anderen Server verbunden ist, ändern Sie diesen Wert entsprechend.

home_mailbox" ist das E-Mail-Verzeichnis. Speichern Sie die gesendete E-Mail.

2-2. OS-Benutzer oder Ablehnung, wenn nicht in $alias_maps definiert

Konfigurieren Sie die Einstellungen für den Versand von E-Mails mit dem Betriebssystembenutzer und den in $alias_maps aufgeführten Benutzern. Ein OS-Benutzer ist ein Benutzer, der mit useradd hinzugefügt wird.

[root@hostname ~]# vi /etc/postfix/main.cf

Folgende Änderung ist erforderlich:

main.cf【Vor der Änderung】


#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

main.cf【nach der Änderung】


local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =

Fügen Sie Folgendes am Ende von main.cf hinzu.

main.cf


### MAIL SIZE (20 Mbyte.)
message_size_limit = 20971520
### TLS
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/pki/tls/certs/localhost.crt
smtpd_tls_key_file = /etc/pki/tls/private/localhost.key

Die 'smtpd_tls_cert_file' und 'smtpd_tls_key_file' sollten entsprechend der Umgebung gesetzt werden. Legen Sie den Pfad fest, in dem das Serverzertifikat gespeichert ist.

Wenn Sie also noch keine SSL-Einstellungen vorgenommen haben, nehmen Sie bitte zuerst die SSL-Einstellungen vor. Bitte beachten Sie die folgenden Hinweise.

Apache HTTP Server sicher auf CentOS installieren

2-3. Postfix-Übermittlungsport-Einstellungen

Konfigurieren Sie die Einstellungen für den Versand von E-Mails über den Übermittlungsport.

[root@hostname ~]# vi /etc/postfix/master.cf

Hinweis: Beachten Sie, dass die zu bearbeitende Datei "master.cf" und nicht "main.cf" heißt, die Dateinamen sind also ähnlich.

Folgende Änderung ist erforderlich:

master.cf【Vor der Änderung】


#submission inet n - n - - smtpd
~Verkürzung~
#-o smtpd_sasl_auth_enable=yes
~Verkürzung~
#-o smtpd_client_restrictions=$mua_helo_restrictions
~Verkürzung~
#-o smtpd_sender_restrictions=$mua_sender_restrictions
~Verkürzung~
#-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

master.cf【nach der Änderung】


submission inet n - n - - smtpd
~Verkürzung~
-o smtpd_sasl_auth_enable=yes
~Verkürzung~
-o smtpd_client_restrictions=permit_sasl_authenticated
~Verkürzung~
-o smtpd_sender_restriction=permit_sasl_authenticated
~Verkürzung~
-o smtpd_recipient_restrictions=permit_sasl_authenticated


Installieren Sie die notwendigen Bibliotheken für die SASL-Authentifizierung mit yum.

[root@hostname ~]# yum -y install cyrus-sasl
[root@hostname ~]# yum -y install cyrus-sasl-plain
[root@hostname ~]# yum -y install cyrus-sasl-md5
[root@hostname ~]# yum -y install cyrus-sasl-devel

Bearbeiten Sie saslauthd, um UNIX-Konten für die Authentifizierung zu verwenden.

[root@hostname ~]# vi /etc/sysconfig/saslauthd

Folgende Änderung ist erforderlich:

saslauthd


#MECH=pam
MECH=shadow

2-4. Aktivieren von SASL

Aktivieren Sie SASL.

[root@hostname ~]# systemctl enable saslauthd
[root@hostname ~]# systemctl is-enabled saslauthd
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep saslauthd
saslauthd.service                                enabled
[root@hostname ~]# systemctl daemon-reload

2-5. Bootstrap-Check

Prüfen Sie, ob Postfix startet.

[root@hostname ~]# /usr/sbin/postfix start
[root@hostname ~]# ps aux | grep postfix
root      1838  0.0  0.1  89744  2080 ?        Ss   18:14   0:00 /usr/libexec/postfix/master -w
postfix   1839  0.0  0.3  89848  3988 ?        S    18:14   0:00 pickup -l -t unix -u
postfix   1840  0.0  0.3  89916  4008 ?        S    18:14   0:00 qmgr -l -t unix -u
root      1845  0.0  0.0 112824   968 pts/0    S+   18:15   0:00 grep --color=auto postfix

Wenn es einen Prozess gibt, der wie oben beschrieben als Postfix-Benutzer läuft, wurde die Konfiguration erfolgreich abgeschlossen und er läuft. Sobald die Inbetriebnahme bestätigt wurde, ist es an der Zeit, aufzuhören.

[root@hostname ~]# /usr/sbin/postfix stop

2-6. Einstellung der automatischen Inbetriebnahme

Schließlich ist es zwar nicht zwingend erforderlich, aber es ist schwierig, Postfix bei jedem Neustart des Servers zu starten. Daher sollten Sie einstellen, dass Postfix beim Start des Servers automatisch gestartet wird. Er registriert sich auch bei dem Befehl systemctl. Bitte beachten Sie, dass dieses Verfahren für CentOS7 gilt. Wenn Sie also ein anderes Betriebssystem als CentOS7 verwenden, müssen Sie den Befehl Service verwenden, um dieses Problem zu lösen.

Prüfen Sie, ob '/usr/lib/systemd/system/postfix.service' existiert. Wenn keine vorhanden ist, erstellen Sie eine "postfix.service" nach dem folgenden Verfahren. Als Root-Benutzer ausführen.

[root@hostname ~]# touch /etc/systemd/system/postfix.service
[root@hostname ~]# vi /etc/systemd/system/postfix.service

Verwendete Einstellungen:

[Unit]
#Beschreibung.
Description=Postfix
#Kontrolle vor und nach der Ausführung.
#Before=xxx.service
After=syslog.target network.target

[Service]
#Benutzer- und Gruppenbezeichnung
User=root
Group=root
#Nach der Aktivierung setzen Sie den Status auf Aktiviert.
Type=oneshot
RemainAfterExit=yes
#Starten, stoppen und neu laden.
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload

[Install]
#Runlevel 3 entsprechende Einstellungen.
WantedBy=multi-user.target

Anschließend wird der Dienst mit systemctl aktiviert.

[root@hostname ~]# systemctl enable postfix
[root@hostname ~]# systemctl is-enabled postfix
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep postfix
postfix.service                                enabled
[root@hostname ~]# systemctl daemon-reload

3. Zusammenfassung

Wir haben die Erstkonfiguration beschrieben, die bei der Installation von Postfix erforderlich ist.

Es war ziemlich schwierig, es einzurichten. Wenn Sie also Postfix erstellen, lesen Sie bitte diesen Artikel.