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 CentOS | 7.6 (1810) |
|---|---|
| Različica programa Postfix | 2.10.1 |
Kazalo vsebine
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.
#
#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/
#
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.
#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 =
Na konec datoteke main.cf dodajte naslednje.
### 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.
#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
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.
#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.