Postfix CentOS vidē: vēsturiska konfigurēšanas rokasgrāmata ar 2026. gada drošības piezīmēm


Publikācijas datums:

Atjaunināts:


Tehniskie raksti > Postfix CentOS vidē: vēsturiska konfigurēšanas rokasgrāmata ar 2026. gada drošības piezīmēm

2026. gada statuss un droša lietošana

Galvenais: ar Postfix procesa palaišanu vien nepietiek, lai pasta transporta serviss būtu gatavs ražošanai. Vajadzīga atbalstīta operētājsistēma un Postfix versija, pareiza DNS identitāte, ierobežota releja politika, autentificēta ziņojumu iesniegšana, mūsdienīgs TLS, sertifikātu atjaunošana, aizsardzība pret ļaunprātīgu izmantošanu, žurnālu un rindas uzraudzība un pārbaudīta piegādājamība.

Ko jūs uzzināsiet

  • Ko konfigurēja sākotnējā CentOS 7/Postfix 2.10.1 rokasgrāmata.
  • Kāpēc iesniegšanas autentifikācija nedrīkst nejauši izveidot atvērtu releju.
  • Kuri TLS, SASL, DNS, ugunsmūra un ekspluatācijas lēmumi jāpārskata mūsdienīgam izvietojumam.

Kam tas paredzēts: administratoriem, kuri izvērtē mantotu Postfix procedūru; tas nav kopēšanai gatavs publiska pasta servera ceļvedis iesācējiem.

2026. gada konteksts: CentOS 7 un norādītās pakotņu versijas ir novecojušas. Tālāk redzamā mantotā konfigurācija nav apstiprināta kā drošs mūsdienu pasta serviss, tāpēc to nedrīkst izvietot bez izmaiņām. Īpaši pārbaudiet, vai iesniegšanas ierobežojumu beigās ir nepārprotama noraidīšanas politika, aizsargājiet akreditācijas datus un izmantojiet pakotnes nodrošināto systemd servisu, nevis veidojiet nepārbaudītu servisa vienību.

Drošības piezīme. Sākotnējā rakstā esošās komandas un konfigurācijas piemēri nav atkārtoti izpildīti pašreizējā ražošanas vidē. Pirms to lietošanas pārbaudiet atbalstītās versijas, dublējumus, piekļuves vadīklas un atcelšanas darbības atsevišķā testa vidē.

Galvenie oficiālie avoti

Pārskats

Šajā vēsturiskajā procedūrā Postfix instalē un palaiž sistēmā CentOS 7, kā arī konfigurē ziņojumu iesniegšanas portu.

Pēc Postfix drošas konfigurēšanas skatiet arī Dovecot integrācijas aprakstu.

Postfix darbojas kā pasta pārsūtīšanas aģents, savukārt Dovecot nodrošina IMAP un POP3 piekļuvi pastkastēm. Ja lietotājiem jāsaņem pasts klienta programmā, abi servisi jākonfigurē kā vienota sistēma.

Aprakstā izmantotās versijas:

CentOS versija7.6 (1810)
Postfix versija2.10.1

Satura rādītājs

  1. Instalēšana
  2. Vēsturiskā Postfix konfigurēšana
  3. Kopsavilkums

1. Instalēšana

Šajā sadaļā parādīta vēsturiskā Postfix instalēšanas un sākotnējās palaišanas procedūra.

1-1. Postfix instalēšana

Vēsturiskajā CentOS vidē Postfix instalēja ar yum, izmantojot administratora čaulu.

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

1-2. Sākotnējās palaišanas pārbaude

Lai pārliecinātos, ka pakotne ir instalēta, īslaicīgi palaidiet Postfix un pārbaudiet tā procesus.

[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

Ja izvadē redzami procesi, kas darbojas ar kontu postfix, sākotnējā palaišana ir izdevusies. Pirms konfigurēšanas turpināšanas servisu apturiet.

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

2. Vēsturiskā Postfix konfigurēšana

2-1. Pamatparametri

Šajā aprakstā galvenie Postfix iestatījumi atrodas failā "/etc/postfix/main.cf". Efektīvā konfigurācija var ietvert arī noklusējuma vērtības un citus failus, tāpēc pārbaudiet to ar instalētās Postfix pakotnes nodrošinātajiem rīkiem.

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

Vēsturiskajā piemērā veica šādas izmaiņas.

main.cf【Pirms pārmaiņām】


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

main.cf【pēc izmaiņām】


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

"myhostname", "mydomain" un "myorigin" nosaka servera pasta identitāti. Vietturi "example.com" aizstājiet ar serverim atbilstošu pilno domēna nosaukumu un domēnu; tāpat kā adresē "https://example.com/", domēna daļa ir "example.com".

Piemērā izveidotā e-pasta adrese ir username@example.com.

"mynetworks" nosaka uzticamos tīklus, kuriem Postfix drīkst atļaut releju. Norādiet tikai pārbaudītus avotus; pārāk plašs diapazons var izveidot atvērtu releju.

"home_mailbox" norāda vietējās pastkastes glabāšanas formātu un atrašanās vietu.

2-2. Vietējo adresātu un TLS iestatījumi

local_recipient_maps pārbauda vietējos adresātus pret operētājsistēmas kontiem un aliasu karti. Tas palīdz noraidīt nezināmas vietējās adreses, pirms ziņojums nonāk rindā.

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

Vēsturiskajā piemērā veica šādas izmaiņas.

main.cf【Pirms pārmaiņām】


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

main.cf【pēc izmaiņām】


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

Faila main.cf beigās tika pievienoti ziņojuma lieluma un TLS parametri.

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

Parametriem 'smtpd_tls_cert_file' un 'smtpd_tls_key_file' norādiet derīgu sertifikātu ķēdi un tās aizsargāto privāto atslēgu. Plānojiet automātisku atjaunošanu un pārbaudiet, vai Postfix pēc tās ielādē jauno materiālu.

Saistītajā Apache rakstā ir vēsturisks sertifikāta piemērs, nevis aktuāla pasta servera sertifikātu procedūra. Izmantojiet izvēlētās sertifikācijas iestādes un Postfix dokumentāciju.

Vēsturiska Apache TLS konfigurācija CentOS vidē

2-3. Postfix iesniegšanas porta iestatījumi

Ziņojumu iesniegšanas portā konfigurējiet autentificētu pasta nosūtīšanu.

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

Piezīme: rediģējamais fails ir 'master.cf', nevis līdzīgi nosauktais 'main.cf'.

Vēsturiskajā piemērā veica šādas izmaiņas.

master.cf【Pirms pārmaiņām】


#submission inet n - n - - smtpd
~saīsinājums~
#-o smtpd_sasl_auth_enable=yes
~saīsinājums~
#-o smtpd_client_restrictions=$mua_helo_restrictions
~saīsinājums~
#-o smtpd_sender_restrictions=$mua_sender_restrictions
~saīsinājums~
#-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject

master.cf【pēc izmaiņām】


submission inet n - n - - smtpd
~saīsinājums~
-o smtpd_sasl_auth_enable=yes
~saīsinājums~
-o smtpd_client_restrictions=permit_sasl_authenticated
~saīsinājums~
-o smtpd_sender_restriction=permit_sasl_authenticated
~saīsinājums~
-o smtpd_recipient_restrictions=permit_sasl_authenticated


Pēc tam ar yum instalēja SASL autentifikācijai nepieciešamās pakotnes.

[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

Failā saslauthd autentifikācijai tika izvēlēti UNIX konti.

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

Vēsturiskajā piemērā tika izmantots šāds iestatījums.

saslauthd


#MECH=pam
MECH=shadow

2-4. SASL iespējošana

Iespējojiet saslauthd servisa automātisku palaišanu.

[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. Palaišanas pārbaude

Pēc konfigurēšanas pārbaudiet, vai Postfix tiek palaists.

[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

Ja redzams process ar kontu postfix, serviss ir palaists. Tas vēl neapstiprina pasta maršrutēšanu, releja ierobežojumus, DNS, TLS vai piegādi; pirms SMTP publiskošanas pārskatiet žurnālus un veiciet kontrolētus gala–gala testus.

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

2-6. Automātiskās palaišanas iestatīšana

Automātiskai palaišanai izmantojiet operētājsistēmas pakotnes nodrošināto servisa vienību. Vienību nosaukumi un pārvaldības komandas dažādos izplatījumos atšķiras; neveidojiet dublējošu servisa definīciju.

Vēsturiskajā procedūrā pārbaudīja, vai pastāv '/usr/lib/systemd/system/postfix.service'. Ja faila nebija, administratora kontā veidoja 'postfix.service' ar tālāk redzamo saturu.

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

Servisa vienībā tika norādīti šādi iestatījumi.

[Unit]
#Apraksts.
Description=Postfix
#Kontrole pirms un pēc izpildes.
#Before=xxx.service
After=syslog.target network.target

[Service]
#Lietotāja un grupas apzīmējums
User=root
Group=root
#Pēc aktivizēšanas iestatiet statusu Aktivizēts.
Type=oneshot
RemainAfterExit=yes
#Palaist, apturēt un atkārtoti ielādēt.
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload

[Install]
#Runlevel 3 līdzvērtīgi iestatījumi.
WantedBy=multi-user.target

Pēc tam servisa vienību iespējoja un pārbaudīja ar 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. Kopsavilkums

Vēsturiskajā procedūrā aplūkota pakotnes instalēšana, pasta identitāte un maršrutēšana, TLS, SASL autentifikācija un servisa palaišana. Mūsdienīgam pasta serverim vajadzīgas arī atbalstītas pakotnes, stingri releja ierobežojumi, pareizi DNS ieraksti, sertifikātu atjaunošana, ļaunprātīgas izmantošanas uzraudzība un piegādājamības pārbaudes.