Postfix na CentOS: vodič za staro namestitev z varnostnimi opombami za leto 2026


Datum objave:

Osveženo:


Tehnični članki > Postfix na CentOS: vodič za staro namestitev z varnostnimi opombami za leto 2026

Status in varna uporaba 2026

Sklep: Produkcijski poštni sistem ni končana, ko se Postfix zgolj zažene. Potrebuje podprto OS in podprto različico Postfixa, pravilno DNS identiteto, omejena rele politika, overjena predložitev, sodobna TLS, obnovitev certifikatov, nadzor zlorabe, beleženje, spremljanje čakalne vrste, in preizkušena dostava.

Kaj se boš naučil?

  • Kaj je nastavljen prvotni CentOS 7/Postfix 2.10.1 hoja skozi.
  • Zakaj overovitev predložitve ne sme po nesreči ustvariti odprtega releja.
  • Katere TLS, SASL, DNS, požarni zid in operativne odločitve je treba preoblikovati za trenutno uporabo.

Za koga je to? Administratorji, ki ocenjujejo podedovano runbook Postfix, ne začetniki, ki iščejo kopiranje in paste javni poštni strežnik.

Kontekst za leto 2026: CentOS 7 in naštete različice paketov so zastarele. Spodnja konfiguracija ni bila validirana kot varna trenutna pošta in se ne sme uporabljati nespremenjena; zlasti preveri omejitve glede predložitve, ki se končajo z izrecno politiko zavrnitve, zaščiti poverilnice in uporabi zapakirano sistemsko storitev, namesto da bi izumil nepregledano enoto.

Varnostna opomba: Ukazi in konfiguracijski primeri v prvotnem članku niso bili ponovno predvajani v trenutnem proizvodnem okolju. Pred uporabo preveri podprte različice, varnostne kopije, nadzor dostopa in povratne korake v ločenem preskusnem okolju.

Glavni uradni viri

Pregled.

To je postopek začetne konfiguracije, ki je potreben za namestitev in zagon sistema Postfix v sistemu CentOS. Informacije temeljijo na predpostavki, da se uporablja sistem CentOS7. To bi radi nastavili v pristanišču za predložitev.

Če namestite tudi Dovecot, glejte tudi.

Postfix je namenjen pošiljanju pošte, Dovecot pa sprejemanju pošte. Če morate obdelati pošiljanje e-poštnih sporočil, namestite Postfix, če pa želite e-poštna sporočila tudi prejemati, namestite Dovecot.

Različice so naslednje.

Različica sistema CentOS7.6 (1810)
Različica programa Postfix2.10.1

Kazalo vsebine

  1. namestitev
  2. Podrobnosti o nastavitvi
  3. povzetek

1. namestitev

V tem razdelku je opisana konfiguracija programa Postfix od namestitve do zagona.

1-1. Postfix namestitev

Postfix namestite z ukazom yum. Delo opravite kot uporabnik root.

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

1-2. preverjanje zagonskega pasu

Če želite preveriti, ali je bil uspešno nameščen, preverite zagon.

[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

Vsak proces, ki teče kot uporabnik postfiksa, kot je opisano zgoraj, je v redu. Ustavite se.

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

2. Podrobnosti o nastavitvi

2-1. inicializacija

Začetna konfiguracija programa Postfix. Postfixova konfiguracija je opisana v "/etc/postfix/main.cf", zato bomo spremenili main.cf.

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

Spremeni se na naslednji način.

main.cf【Pred spremembo】


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

main.cf【po spremembi】


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

myhostname", "mydomain" in "myorigin" To so nastavitve, povezane z domeno. Del, ki je spremenjen v 'example.com', je treba nastaviti na ime domene strežnika. Del "example.com" v "https://example.com/" je ime domene.

E-poštni naslov je username@example.com.

"mynetworks" je nastavitev, povezana z omrežjem. To je naslov IP, ki ga je mogoče povezati s postfixom. Če je poštni strežnik povezan z drugim strežnikom, to vrednost ustrezno spremenite.

'home_mailbox' je e-poštni imenik. Shranite poslano e-poštno sporočilo.

2-2. Uporabnik OS ali zavrniti, če ni določen v $alias_maps

Konfigurirajte nastavitve za pošiljanje e-poštnih sporočil z uporabnikom operacijskega sistema in uporabniki, navedenimi v $alias_maps. Uporabnik operacijskega sistema je uporabnik, ki je dodan z useradd.

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

Spremeni se na naslednji način.

main.cf【Pred spremembo】


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

main.cf【po spremembi】


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

Na konec datoteke main.cf dodajte naslednje.

main.cf


### MAIL SIZE (20 MB.)
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

Datoteki 'smtpd_tls_cert_file' in 'smtpd_tls_key_file' je treba nastaviti glede na okolje. Nastavite pot, kjer je shranjeno potrdilo strežnika.

Nastavitve SSL so potrebne vnaprej, zato, če jih še niste nastavili, najprej opravite nastavitve SSL. Oglejte si naslednje.

Začetna konfiguracija je potrebna od namestitve Apacheja v sistemu CentOS do zagona.

2-3. Nastavitve pristanišča za pošiljanje Postfix

Konfigurirajte nastavitve za pošiljanje e-poštnih sporočil z uporabo vrat za pošiljanje.

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

Opomba: Upoštevajte, da je datoteka, ki jo je treba urediti, 'master.cf' in ne 'main.cf', zato so imena datotek podobna.

Spremeni se na naslednji način.

master.cf【Pred spremembo】


#submission inet n - n - - smtpd
~okrajšava~
#-o smtpd_sasl_auth_enable=yes
~okrajšava~
#-o smtpd_client_restrictions=$mua_helo_restrictions
~okrajšava~
#-o smtpd_sender_restrictions=$mua_sender_restrictions
~okrajšava~
#-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

master.cf【po spremembi】


submission inet n - n - - smtpd
~okrajšava~
-o smtpd_sasl_auth_enable=yes
~okrajšava~
-o smtpd_client_restrictions=permit_sasl_authenticated
~okrajšava~
-o smtpd_sender_restriction=permit_sasl_authenticated
~okrajšava~
-o smtpd_recipient_restrictions=permit_sasl_authenticated


Z yumom namestite potrebne knjižnice za avtentikacijo SASL.

[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

Uredite saslauthd za uporabo računov UNIX za avtentikacijo.

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

Spremeni se na naslednji način.

saslauthd


#MECH=pam
MECH=shadow

2-4. Omogočanje SASL

Omogočite 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. preverjanje zagonskega pasu

Preverite, ali se Postfix zažene.

[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

Če se proces izvaja kot uporabnik postfix, kot je opisano zgoraj, je bila konfiguracija uspešno zaključena in se izvaja. Ko je zagon potrjen, je čas za ustavitev.

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

2-6. Nastavitev samodejnega zagona

Nazadnje, čeprav to ni obvezno, je Postfix težko zagnati ob vsakem ponovnem zagonu strežnika, zato vnesite nastavitev, da se Postfix samodejno zažene ob zagonu strežnika. Prav tako se registrira z ukazom systemctl. Upoštevajte, da ta postopek velja za sistem CentOS7, če uporabljate kaj drugega kot sistem CentOS7, boste morali za to uporabiti ukaz Service.

Preverite, ali obstaja '/usr/lib/systemd/system/postfix.service'. Če ga ni, ustvarite datoteko 'postfix.service' z naslednjim postopkom. Zaženite kot uporabnik root.

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

Na voljo so naslednje informacije.

[Unit]
#Opis.
Description=Postfix
#Nadzor pred in po izvedbi.
#Before=xxx.service
After=syslog.target network.target

[Service]
#Imenovanje uporabnikov in skupin
User=root
Group=root
#Ko je aktivirano, nastavite stanje na Aktivirano.
Type=oneshot
RemainAfterExit=yes
#Zagon, zaustavitev in ponovno polnjenje.
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload

[Install]
#Enakovredne nastavitve na ravni Runlevel 3.
WantedBy=multi-user.target

Nato se registrirajte z ukazom 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. povzetek

Opisali smo začetno konfiguracijo, ki je potrebna ob namestitvi strežnika Postfix.

Vzpostavitev je bila precej težavna, zato si, če gradite Postfix, oglejte to.

Upamo, da je bila razlaga koristna.