Postfix na CentOS: návod na starší konfiguraci s bezpečnostními poznámkami pro rok 2026
Publikováno:
Aktualizováno:
Články › Postfix na CentOS: návod na starší konfiguraci s bezpečnostními poznámkami pro rok 2026
Stav v roce 2026 a bezpečné použití
Závěr: Produkční přenos pošty není dokončen, když se Postfix pouze spustí. Potřebuje podporované sestavení operačního systému a Postfixu, správnou identitu DNS, zásady omezeného přenosu, ověřené odesílání, moderní TLS, obnovování certifikátů, kontroly zneužití, protokolování, monitorování front a testovanou doručitelnost.
Co se dozvíte
- Jaký byl nakonfigurován původní návod CentOS 7/Postfix 2.10.1.
- Proč ověření odeslání nesmí náhodně vytvořit otevřený přenos.
- Která rozhodnutí týkající se TLS, SASL, DNS, firewallu a operací musí být přepracována pro aktuální nasazení.
Pro koho je článek určen: Administrátoři vyhodnocující zděděnou sadu Runbook Postfixu, nikoli začátečníci, kteří hledají veřejný poštovní server pro kopírování a vkládání.
Aktuální stav v roce 2026: CentOS 7 a uvedené verze balíčků jsou zastaralé. Níže uvedená starší konfigurace nebyla ověřena jako zabezpečená aktuální poštovní služba a nesmí být nasazena beze změny; zejména ověřte omezení odesílání končí explicitní zásadou odmítnutí, chraňte přihlašovací údaje a používejte zabalenou službu systemd namísto vymýšlení nezkontrolované jednotky.
Bezpečnostní poznámka: Příkazy a konfigurační příklady z původního článku nebyly znovu spuštěny v současném produkčním prostředí. Před nasazením ověřte podporované verze, vytvořte zálohu a připravte postup návratu v odděleném testovacím prostředí.
Oficiální zdroje
Přehled
Toto je úvodní konfigurační postup potřebný k instalaci a spuštění služby Postfix v systému CentOS. Informace vycházejí z předpokladu, že je používán systém CentOS7. Rádi bychom to nastavili v přístavu pro odesílání.
Pokud instalujete také službu Dovecot, viz také.
Postfix slouží k odesílání pošty a Dovecot k jejímu přijímání. Pokud potřebujete zpracovávat odesílání e-mailů, nainstalujte si Postfix, a pokud chcete e-maily také přijímat, nainstalujte si Dovecot.
Verze jsou následující.
| Verze systému CentOS | 7.6 (1810) |
|---|---|
| Verze aplikace Postfix | 2.10.1 |
1. nainstalovat
Tato část popisuje konfiguraci služby Postfix od instalace až po spuštění.
1-1. Instalace aplikace Postfix
Instalaci Postfixu proveďte pomocí příkazu yum. Práci proveďte jako uživatel root.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install postfix
1-2. kontrola bootstrapu
Chcete-li zkontrolovat, zda byla úspěšně nainstalována, zkontrolujte spuštění.
[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
Jakýkoli proces spuštěný jako uživatel postfixu, jak je popsáno výše, je v pořádku. Zastavte.
[root@hostname ~]# /usr/sbin/postfix stop
2. Podrobnosti o nastavení
2-1. inicializace
Počáteční konfigurace služby Postfix. Konfigurace Postfixu je v podstatě popsána v souboru "/etc/postfix/main.cf", takže upravíme soubor main.cf.
[root@hostname ~]# vi /etc/postfix/main.cf
Změnit takto.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
~zkrácení~
#
#mydomain = domain.tld
~zkrácení~
#myorigin = $myhostname
#myorigin = $mydomain
~zkrácení~
#inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
inet_interfaces = localhost
~zkrácení~
mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
~zkrácení~
#mynetworks = 168.100.189.0/24, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~zkrácení~
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
#
myhostname = example.com
#myhostname = virtual.domain.tld
~zkrácení~
#
mydomain = example.com
~zkrácení~
#myorigin = $myhostname
myorigin = $mydomain
~zkrácení~
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
~zkrácení~
#mydestination = $myhostname, localhost.$mydomain, localhost
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
~zkrácení~
mynetworks = 127.0.0.0/8, 192.168.100.0/24
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
~zkrácení~
#
#home_mailbox = Mailbox
home_mailbox = Maildir/
myhostname", "mydomain" a "myorigin" Jedná se o nastavení týkající se domény. Část, která je upravena na 'example.com', by měla být nastavena na název domény serveru. Část "example.com" ve slově "https://example.com/" je název domény.
E-mailová adresa je username@example.com.
"mynetworks" je nastavení související se sítí. Jedná se o IP adresu, která může být připojena k serveru postfix. Pokud je poštovní server propojen s jiným serverem, upravte tuto hodnotu odpovídajícím způsobem.
'home_mailbox' je e-mailový adresář. Uložení odeslaného e-mailu.
2-2. uživatel OS nebo odmítnout, pokud není definováno v $alias_maps
Konfigurace nastavení pro odesílání e-mailů s uživatelem operačního systému a uživateli uvedenými v poli $alias_maps. Uživatel operačního systému je uživatel přidaný pomocí příkazu useradd.
[root@hostname ~]# vi /etc/postfix/main.cf
Změnit takto.
#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 souboru main.cf přidejte následující příkaz.
### 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
Soubory 'smtpd_tls_cert_file' a 'smtpd_tls_key_file' by měly být nastaveny podle prostředí. Nastavte cestu, kde je uložen certifikát serveru.
Nastavení SSL je vyžadováno předem, takže pokud jste nastavení SSL nenastavili, nejprve proveďte nastavení SSL. Podívejte se prosím na následující informace.
Počáteční konfigurace potřebná od instalace Apache v systému CentOS až po spuštění.
2-3. Nastavení portu pro odesílání zpráv Postfix
Konfigurace nastavení pro odesílání e-mailů pomocí portu pro odesílání.
[root@hostname ~]# vi /etc/postfix/master.cf
Poznámka:Všimněte si, že upravovaný soubor je 'master.cf', nikoli 'main.cf', takže názvy souborů jsou podobné.
Změnit takto.
#submission inet n - n - - smtpd
~zkrácení~
#-o smtpd_sasl_auth_enable=yes
~zkrácení~
#-o smtpd_client_restrictions=$mua_helo_restrictions
~zkrácení~
#-o smtpd_sender_restrictions=$mua_sender_restrictions
~zkrácení~
#-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
submission inet n - n - - smtpd
~zkrácení~
-o smtpd_sasl_auth_enable=yes
~zkrácení~
-o smtpd_client_restrictions=permit_sasl_authenticated
~zkrácení~
-o smtpd_sender_restriction=permit_sasl_authenticated
~zkrácení~
-o smtpd_recipient_restrictions=permit_sasl_authenticated
Nainstalujte potřebné knihovny pro ověřování SASL pomocí nástroje 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
Upravte saslauthd tak, aby pro ověřování používal účty UNIX.
[root@hostname ~]# vi /etc/sysconfig/saslauthd
Změnit takto.
#MECH=pam
MECH=shadow
2-4. Povolení protokolu SASL
Povolte 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. kontrola bootstrapu
Zkontrolujte, zda se spustí služba Postfix.
[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
Pokud je proces spuštěn jako uživatel postfixu, jak je popsáno výše, byla konfigurace úspěšně dokončena a je spuštěn. Po potvrzení spuštění je čas zastavit.
[root@hostname ~]# /usr/sbin/postfix stop
2-6. Nastavení automatického spuštění
A konečně, ačkoli to není povinné, je obtížné spouštět Postfix při každém restartu serveru, proto nastavte, aby se Postfix spouštěl automaticky při startu serveru. Registruje se také do příkazu systemctl. Upozorňujeme, že tento postup je určen pro systém CentOS7, takže pokud používáte jiný systém než CentOS7, budete muset použít příkaz Service.
Zkontrolujte, zda existuje soubor '/usr/lib/systemd/system/postfix.service'. Pokud není k dispozici, vytvořte soubor 'postfix.service' následujícím postupem. Spusťte jako uživatel root.
[root@hostname ~]# touch /etc/systemd/system/postfix.service
[root@hostname ~]# vi /etc/systemd/system/postfix.service
K dispozici jsou následující informace.
[Unit]
#Popis.
Description=Postfix
#Kontrola před a po provedení.
#Before=xxx.service
After=syslog.target network.target
[Service]
#Označení uživatele a skupiny
User=root
Group=root
#Po aktivaci nastavte stav na Aktivováno.
Type=oneshot
RemainAfterExit=yes
#Spuštění, zastavení a opětovné načtení.
ExecStart=/usr/sbin/postfix start
ExecStop=/usr/sbin/postfix stop
ExecReload=/usr/sbin/postfix reload
[Install]
#Ekvivalentní nastavení úrovně Runlevel 3.
WantedBy=multi-user.target
Poté se zaregistrujte pomocí příkazu 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. shrnutí
Popsali jsme počáteční konfiguraci vyžadovanou při instalaci služby Postfix.
Nastavení bylo docela náročné, takže pokud vytváříte Postfix, podívejte se na tento dokument.
Tím jsou shrnuty hlavní kroky a omezení, která je třeba zohlednit.