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 versija | 7.6 (1810) |
|---|---|
| Postfix versija | 2.10.1 |
Satura rādītājs
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.
#
#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/
#
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.
#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 =
Faila main.cf beigās tika pievienoti ziņojuma lieluma un TLS parametri.
### 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.
#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
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.
#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.