Postfix på CentOS: äldre installation och säkerhet 2026
Datum för offentliggörande:
Uppdaterad:
Tekniska artiklar > Postfix på CentOS: äldre installation och säkerhet 2026
2026 status och säker användning
Slutsats: En produktionsposttransport är inte klar när Postfix bara startar. Den behöver ett operativsystem och Postfix-bygge som stöds, korrekt DNS-identitet, begränsad reläpolicy, autentiserad inlämning, modern TLS, certifikatförnyelse, missbrukskontroller, loggning, köövervakning och testad leveransbarhet.
Vad du kommer att lära dig
- Vad den ursprungliga CentOS 7/Postfix 2.10.1-genomgången konfigurerades.
- Varför får inlämningsautentisering inte skapa ett öppet relä av misstag.
- Vilka TLS-, SASL-, DNS-, brandväggs- och driftbeslut måste göras om för en aktuell implementering.
Vem är det här för: Administratörer som utvärderar en ärvd Postfix-runbook, inte nybörjare som söker en kopiera-och-klistra offentlig e-postserver.
2026-kontext: CentOS 7 och de angivna paketversionerna är föråldrade. Den äldre konfigurationen nedan har inte validerats som en säker aktuell e-posttjänst och får inte distribueras oförändrad; i synnerhet, verifiera inlämningsbegränsningar slutar i en explicit avvisningspolicy, skydda referenser och använd den paketerade systemd-tjänsten istället för att uppfinna en enhet som inte har granskats.
Säkerhetsanmärkning: Kommandona och konfigurationsexemplen i den ursprungliga artikeln har inte körts om i en aktuell produktionsmiljö. Verifiera versioner som stöds, säkerhetskopior, åtkomstkontroller och återställningssteg i en separat testmiljö innan du använder dem.
Viktiga officiella källor
Översikt.
Detta är den inledande konfigurationsproceduren som krävs för att installera Postfix på CentOS och starta det. Informationen bygger på antagandet att CentOS7 används. Vi skulle vilja ställa in det här i inlämningshamnen.
Om du också installerar Dovecot, se också.
Postfix är till för att skicka e-post och Dovecot är till för att ta emot e-post. Om du behöver skicka e-post installerar du Postfix, och om du också vill ta emot e-post installerar du Dovecot.
Versionerna är följande.
| CentOS-version | 7.6 (1810) |
|---|---|
| Postfix-version | 2.10.1 |
Innehållsförteckning
1. installera
Det här avsnittet beskriver konfigurationen av Postfix från installation till uppstart.
1-1. Installation av Postfix
Installera Postfix med hjälp av kommandot yum. Utför arbetet som rotanvändare.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postfix
1-2. kontroll av uppstartsklämma
För att kontrollera att den har installerats framgångsrikt kan du kontrollera starten.
[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
Alla processer som körs som postfix-användare enligt beskrivningen ovan är OK. Stopp.
[root@hostname ~]# /usr/sbin/postfix stop
2. Uppsättningsinformation
2-1. Initialisering
Initial konfiguration av Postfix. Postfix konfiguration beskrivs i princip i "/etc/postfix/main.cf", så vi kommer att ändra main.cf.
[root@hostname ~]# vi /etc/postfix/main.cf
Ändra på följande sätt.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
~förkortning~
#
#mydomain = domain.tld
~förkortning~
#myorigin = $myhostname
#myorigin = $mydomain
~förkortning~
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
~förkortning~
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
~förkortning~
#mynetworks = 168.100.189.0/24, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~förkortning~
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
#
myhostname = example.com
#myhostname = virtual.domain.tld
~förkortning~
#
mydomain = example.com
~förkortning~
#myorigin = $myhostname
myorigin = $mydomain
~förkortning~
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
~förkortning~
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
~förkortning~
mynetworks = 127.0.0.0/8, 192.168.100.0/24
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~förkortning~
#
#home_mailbox = Mailbox
home_mailbox = Maildir/
myhostname", "mydomain" och "myorigin" Detta är inställningar som rör domänen. Den del som ändras till "example.com" ska anges till serverns domännamn. Delen "example.com" i "https://example.com/" är domännamnet.
E-postadressen är username@example.com.
"mynetworks" är en nätverksrelaterad inställning. Detta är en IP-adress som kan anslutas till postfix. Om e-postservern är kopplad till en annan server, ändra det här värdet i enlighet med detta.
"home_mailbox" är e-postkatalogen. Spara det skickade e-postmeddelandet.
2-2. OS-användare eller förkasta om det inte är definierat i $alias_maps.
Konfigurera inställningarna för att skicka e-post med OS-användaren och de användare som anges i $alias_maps. En OS-användare är en användare som läggs till med useradd.
[root@hostname ~]# vi /etc/postfix/main.cf
Ändra på följande sätt.
#local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
local_recipient_maps = unix:passwd.byname $alias_maps
#local_recipient_maps = proxy:unix:passwd.byname $alias_maps
#local_recipient_maps =
Lägg till följande i slutet av 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
"smtpd_tls_cert_file" och "smtpd_tls_key_file" ska ställas in i enlighet med miljön. Ange sökvägen där servercertifikatet lagras.
SSL-inställningar krävs i förväg, så om du inte har ställt in SSL-inställningar bör du göra det först. Se följande.
Installera Apache HTTP Server säkert på CentOS
2-3. Inställningar för Postfix inlämningsport
Konfigurera inställningarna för att skicka e-postmeddelanden med hjälp av inlämningsporten.
[root@hostname ~]# vi /etc/postfix/master.cf
Obs: Observera att filen som ska redigeras är "master.cf", inte "main.cf", så filnamnen liknar varandra.
Ändra på följande sätt.
#submission inet n - n - - smtpd
~förkortning~
#-o smtpd_sasl_auth_enable=yes
~förkortning~
#-o smtpd_client_restrictions=$mua_helo_restrictions
~förkortning~
#-o smtpd_sender_restrictions=$mua_sender_restrictions
~förkortning~
#-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
submission inet n - n - - smtpd
~förkortning~
-o smtpd_sasl_auth_enable=yes
~förkortning~
-o smtpd_client_restrictions=permit_sasl_authenticated
~förkortning~
-o smtpd_sender_restriction=permit_sasl_authenticated
~förkortning~
-o smtpd_recipient_restrictions=permit_sasl_authenticated
Installera de nödvändiga biblioteken för SASL-autentisering med 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
Redigera saslauthd för att använda UNIX-konton för autentisering.
[root@hostname ~]# vi /etc/sysconfig/saslauthd
Ändra på följande sätt.
#MECH=pam
MECH=shadow
2-4. Aktivering av SASL
Aktivera 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. kontroll av uppstartsklämma
Kontrollera att Postfix startar.
[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
Om det finns en process som körs som postfix-användare enligt beskrivningen ovan har konfigurationen slutförts framgångsrikt och den körs. När startskottet har bekräftats är det dags att sluta.
[root@hostname ~]# /usr/sbin/postfix stop
2-6. Inställning för automatisk start
Slutligen, även om det inte är obligatoriskt, är det svårt att starta Postfix varje gång servern startas om, så lägg in en inställning så att Postfix startar automatiskt när servern startar. Den registrerar också kommandot systemctl. Observera att den här proceduren gäller för CentOS7, så om du använder något annat än CentOS7 måste du använda kommandot Service för att hantera detta.
Kontrollera om "/usr/lib/systemd/system/postfix.service" finns. Om det inte finns någon, skapa en "postfix.service" med hjälp av följande procedur. Kör som root-användare.
[root@hostname ~]# touch /etc/systemd/system/postfix.service
[root@hostname ~]# vi /etc/systemd/system/postfix.service
Följande information tillhandahålls.
[Unit]
#Beskrivning.
Description=Postfix
#Kontroll före och efter utförandet.
#Before=xxx.service
After=syslog.target network.target
[Service]
#Användar- och gruppbeteckning
User=root
Group=root
#När den är aktiverad, sätts statusen till Aktiverad.
Type=oneshot
RemainAfterExit=yes
#Starta, stoppa och ladda om.
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload
[Install]
#Motsvarande inställningar för Runlevel 3.
WantedBy=multi-user.target
Registrera dig sedan med kommandot systemctl.
[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. sammanfattning
Vi har beskrivit den första konfigurationen som krävs när Postfix installeras.
Det var ganska svårt att sätta upp, så om du bygger Postfix bör du läsa det här.
Tack för att du tittade på till slutet.