Dovecot na CentOS: sprievodca staršou inštaláciou IMAP/POP3 s bezpečnostnými poznámkami na rok 2026
Dátum vydania:
Aktualizované:
Technické články > Dovecot na CentOS: sprievodca staršou inštaláciou IMAP/POP3 s bezpečnostnými poznámkami na rok 2026
Stav a bezpečné používanie v roku 2026
Záver: Súčasná služba Dovecot má používať podporovaný balík, platné obnoviteľné certifikáty, dôsledne vynútené šifrovanie pred overením, úložisko pošty s minimálnymi oprávneniami, presne vymedzenú integráciu s Postfixom a sledované protokoly. Sprístupnite iba tie poštové protokoly, ktoré používatelia potrebujú.
Čo sa naučíte
- Čo mala zabezpečiť pôvodná konfigurácia Dovecotu 2.2 v CentOS 7.
- Ako spolu súvisia sieťové služby IMAP/POP3, TLS, mechanizmy autentifikácie, umiestnenie pošty a integrácia SASL s Postfixom.
- Prečo je overovanie obyčajným textom nebezpečné, ak služba pred prijatím prihlasovacích údajov dôsledne nevynúti šifrovanie.
Pre koho je to určené: Správcovia pošty, ktorí kontrolujú staršie nasadenie Postfixu a Dovecotu, nie čitatelia hľadajúci predvolené nastavenie pripravené na internet.
Kontext v roku 2026: Staré verzie a príkazy nižšie zostávajú iba ako historický materiál a neboli overené ako bezpečná súčasná zostava. Nekopírujte disable_plaintext_auth=no do produkcie bez návrhu, ktorý zaručí TLS; uprednostnite IMAP cez TLS, nepoužívaný POP3 vypnite a použite jednotku systemd dodanú distribúciou.
Bezpečnostná poznámka: Príkazy a príklady konfigurácie v pôvodnom článku neboli znovu spustené v aktuálnom produkčnom prostredí. Pred ich použitím overte podporované verzie, zálohy, prístupové oprávnenia a postup obnovy v oddelenom testovacom prostredí.
Hlavné oficiálne zdroje
Prehľad
Tento historický postup inštaluje a spúšťa Dovecot v systéme CentOS 7. Prístup k poštovým schránkam nastavuje cez šifrované protokoly IMAPS a POP3S.
Pred zapnutím integrácie s Dovecotom nakonfigurujte a zabezpečte Postfix.
V pôvodnom prostredí boli použité tieto verzie:
| Verzia systému CentOS | 7.6 (1810) |
|---|---|
| Verzia služby Postfix | 2.10.1 |
| Verzia Dovecotu | 2.2.36 |
Obsah
1. Inštalácia
Táto časť zachytáva inštaláciu a prvé spustenie Dovecotu v pôvodnom prostredí.
1-1. Inštalácia Dovecotu
Pôvodný systém nainštaloval Dovecot pomocou správcu yum z administrátorského shellu.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install dovecot
1-2. Prvé overenie spustenia
Po inštalácii pôvodný postup službu spustil a skontroloval jej procesy. Pri priamom spustení binárneho súboru Dovecotu sa argument "start" nepoužíval.
[root@hostname ~]# /usr/sbin/dovecot
[root@hostname ~]# ps aux | grep dovecot
root 1470 0.0 0.1 16092 1156 ? Ss 18:38 0:00 /usr/sbin/dovecot
dovecot 1471 0.0 0.1 9752 1120 ? S 18:38 0:00 dovecot/anvil
root 1472 0.0 0.1 9884 1320 ? S 18:38 0:00 dovecot/log
root 1474 0.0 0.2 12916 2384 ? S 18:38 0:00 dovecot/config
root 1476 0.0 0.0 112824 968 pts/0 R+ 18:38 0:00 grep --color=auto dovecot
Ak výstup obsahuje proces pod používateľom dovecot, prvé spustenie prebehlo úspešne. Pred ďalšou konfiguráciou službu zastavte.
[root@hostname ~]# /usr/sbin/dovecot stop
2. Historický postup konfigurácie Dovecotu
2-1. Základná konfigurácia
Nasledujúce kroky zachytávajú pôvodnú konfiguráciu Dovecotu. Každú direktívu porovnajte s dokumentáciou nainštalovanej podporovanej verzie.
[root@hostname ~]# vi /etc/dovecot/dovecot.conf
Pôvodný postup vykonal nasledujúce zmeny.
#protocols = imap pop3 lmtp
~skrátenie~
#listen = *, ::
~skrátenie~
#login_greeting = Dovecot ready.
protocols = imap pop3
~skrátenie~
listen = *
~skrátenie~
login_greeting = pop3 and imap ready.
Položka "protocols" určuje poštové protokoly, ktoré Dovecot poskytuje. Povoľte iba tie, ktoré klienti skutočne používajú.
Hodnota "listen = *" naviaže službu na všetky dostupné adresy IPv4. Sama klienta neoprávňuje, ale rozširuje sieťovú plochu. Naviažte službu iba na potrebné rozhrania a kombinujte nastavenie s firewallom, šifrovanými protokolmi a výslovnými pravidlami overovania. Odstránenie hodnoty "::" v tomto historickom príklade vypína počúvanie na IPv6; nerobte to automaticky, ak IPv6 v prostredí používate.
Položka "login_greeting" určuje uvítaciu správu spojenia. Skrytie názvu produktu nie je podstatnou bezpečnostnou kontrolou; dôležitejšie sú aktualizácie, TLS, overovanie a obmedzenie sieťového prístupu.
2-2. Nastavenie POP3 a IMAP
Historická konfigurácia povoľuje štandardný port 110 pre POP3 a port 143 pre IMAP. Na týchto portoch prijímajte prihlasovacie údaje iba po vynútení TLS; nepoužívaný protokol úplne vypnite. Overovanie bolo neskôr prepojené aj s Postfixom.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-master.conf
Pôvodný postup odkomentoval nasledujúce porty.
service imap-login {
inet_listener imap {
#port = 143
}
~skrátenie~
service pop3-login {
inet_listener pop3 {
#port = 110
}
service imap-login {
inet_listener imap {
port = 143
}
~skrátenie~
service pop3-login {
inet_listener pop3 {
port = 110
}
2-3. Mechanizmy overovania
Pôvodný postup pridal mechanizmus LOGIN k mechanizmu PLAIN a zároveň povolil overovanie obyčajným textom.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-auth.conf
Historická zmena vyzerala takto.
#disable_plaintext_auth = yes
~skrátenie~
auth_mechanisms = plain
disable_plaintext_auth = no
~skrátenie~
auth_mechanisms = login plain
2-4. Ukladanie pošty vo formáte Maildir
Umiestnenie pošty sa nastavilo na adresár "Maildir" v domovskom adresári každého používateľa. V aktuálnom prostredí overte vlastníka, kvóty, zálohovanie, kontext SELinux a oddelenie oprávnení.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-mail.conf
Pôvodný postup nastavil nasledujúce hodnoty.
#mail_location =
~skrátenie~
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
#location =
mail_location = maildir:~/Maildir
~skrátenie~
namespace inbox {
# Namespace type: private, shared or public
#type = private
# Hierarchy separator to use. You should use the same separator for all
# namespaces or some clients get confused. '/' is usually a good one.
# The default however depends on the underlying mail storage format.
#separator =
# Prefix required to access this namespace. This needs to be different for
# all namespaces. For example "Public/".
#prefix =
# Physical location of the mailbox. This is in same format as
# mail_location, which is also the default for it.
location = maildir:~/Maildir
2-5. Nastavenie TLS a systémového overovania
Nasledujúca časť vyžaduje TLS a určuje certifikát aj súkromný kľúč služby.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-ssl.conf
Pôvodný postup zmenil cesty takto.
ssl = required
~skrátenie~
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
ssl = required
~skrátenie~
ssl_cert = </etc/pki/tls/certs/localhost.crt
ssl_key = </etc/pki/tls/private/localhost.key
Položky "ssl_cert" a "ssl_key" musia odkazovať na platný reťazec certifikátu a chránený súkromný kľúč. Naplánujte obnovu a overte, že Dovecot po obnove načíta nový certifikát a kľúč.
Súvisiaci článok o Apache obsahuje iba historický príklad certifikátu, nie aktuálny postup pre poštový server. Riaďte sa dokumentáciou certifikačnej autority a Dovecotu pre dané nasadenie.
Historický príklad vytvorenia certifikátu TLS
Potom historický postup upravil zdroj systémových hesiel v súbore "auth-system.conf.ext".
[root@hostname ~]# vi /etc/dovecot/conf.d/auth-system.conf.ext
Zdroj overovania zmenil z PAM na shadow takto.
passdb {
driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
#args = dovecot
}
~skrátenie~
#passdb {
#driver = shadow
# [blocking=no]
#args =
#}
#passdb {
#driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
#args = dovecot
#}
~skrátenie~
passdb {
driver = shadow
# [blocking=no]
#args =
}
2-6. Overenie spustenia
Po konfigurácii pôvodný postup znova spustil Dovecot bez argumentu "start" a skontroloval jeho procesy.
[root@hostname ~]# /usr/sbin/dovecot
[root@hostname ~]# ps aux | grep dovecot
root 1716 0.0 0.1 16092 1184 ? Ss 22:09 0:00 /usr/sbin/dovecot
dovecot 1717 0.0 0.1 9752 1120 ? S 22:09 0:00 dovecot/anvil
root 1718 0.0 0.1 9884 1312 ? S 22:09 0:00 dovecot/log
root 1720 0.5 0.2 12916 2396 ? S 22:09 0:00 dovecot/config
root 1722 0.0 0.0 112824 972 pts/0 S+ 22:09 0:00 grep --color=auto dovecot
Proces pod používateľom dovecot potvrdzuje iba spustenie služby. Nepotvrdzuje overovanie, TLS, oprávnenia schránok, vystavené protokoly ani integráciu s Postfixom. Skontrolujte protokoly a vykonajte riadené testy klienta; potom testovaciu službu zastavte.
[root@hostname ~]# /usr/sbin/dovecot stop
2-7. Automatické spustenie služby
Dovecot povoľte pomocou jednotky systemd dodanej balíkom operačného systému. Názvy jednotiek a príkazy sa medzi distribúciami líšia; nevytvárajte druhú konkurenčnú jednotku.
Pôvodný postup skontroloval súbor "/usr/lib/systemd/system/dovecot.service" a pri jeho absencii vytvoril vlastný súbor "dovecot.service" pod účtom root. Táto vlastná jednotka je zachovaná iba ako historický materiál.
[root@hostname ~]# touch /etc/systemd/system/dovecot.service
[root@hostname ~]# vi /etc/systemd/system/dovecot.service
Do súboru zapísal nasledujúcu konfiguráciu.
[Unit]
#Popis.
Description=Dovecot
#Kontrola pred a po vykonaní.
#Before=xxx.service
After = network.target
[Service]
#Označenie používateľa a skupiny
User=root
Group=root
#Po aktivácii nastavte stav na možnosť Aktivované.
Type=oneshot
RemainAfterExit=yes
#Spustenie, zastavenie a opätovné načítanie.
ExecStart=/usr/sbin/dovecot
ExecStop=/usr/sbin/dovecot stop
ExecReload=/usr/sbin/dovecot reload
[Install]
#Ekvivalentné nastavenia úrovne Runlevel 3.
WantedBy=multi-user.target
Jednotku následne zaregistroval a povolil pomocou systemctl. V aktuálnom systéme použite jednotku dodanú balíkom a overte jej správanie pri štarte, zastavení aj opätovnom načítaní.
[root@hostname ~]# systemctl enable dovecot
[root@hostname ~]# systemctl is-enabled dovecot
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep dovecot
dovecot.service enabled
[root@hostname ~]# systemctl daemon-reload
3. Zhrnutie
Historický postup zahŕňa inštaláciu balíka, sieťové rozhrania a porty, mechanizmy overovania, prístup k schránkam, TLS, systémové heslá a správu služby.
Súčasné nasadenie vyžaduje podporované balíky, dôsledne vynútené šifrovanie pred overením, úložisko pošty s minimálnymi oprávneniami, obnovu certifikátov, sledovanie protokolov a riadené testy klientov aj integrácie s Postfixom.
Konfiguráciu nižšie preto používajte iba na pochopenie starého prostredia, nie ako predvolené nastavenie pripravené na internet.
Technické články
Profil
Kontakt