Dovecot CentOS vidē: vēsturiska IMAP/POP3 konfigurēšanas rokasgrāmata ar 2026. gada drošības piezīmēm
Publikācijas datums:
Atjaunināts:
Tehniskie raksti > Dovecot CentOS vidē: vēsturiska IMAP/POP3 konfigurēšanas rokasgrāmata ar 2026. gada drošības piezīmēm
2026. gada statuss un droša lietošana
Galvenais: mūsdienīgam Dovecot servisam vajadzīga atbalstīta pakotne, derīgi un atjaunojami sertifikāti, obligāti šifrēta autentifikācija, pasta krātuve ar minimālām privilēģijām, rūpīgi ierobežota Postfix integrācija un uzraudzīti žurnāli. Publiski darbiniet tikai lietotājiem nepieciešamos protokolus.
Ko jūs uzzināsiet
- Ko mēģināja nodrošināt sākotnējā Dovecot 2.2/CentOS 7 konfigurācija.
- Kā savstarpēji saistīti IMAP/POP3 klausītāji, TLS, autentifikācijas mehānismi, pasta glabāšanas vietas un Postfix SASL integrācija.
- Kāpēc vienkāršā teksta autentifikācijas iestatījumi ir bīstami, ja vien pirms akreditācijas datu pieņemšanas netiek stingri ievērota šifrēšana.
Kam tas paredzēts: pasta administratoriem, kuri pārskata mantotu Postfix un Dovecot izvietojumu; tas nav internetam gatavs noklusējuma iestatījumu komplekts.
2026. gada konteksts: tālāk redzamās vecās versijas un komandas saglabātas kā vēsturisks piemērs un nav apstiprinātas kā droša mūsdienu konfigurācija. Nekopējiet disable_plaintext_auth=no ražošanas vidē bez arhitektūras, kas garantē TLS; dodiet priekšroku IMAP, nevis POP3, vienmēr izmantojiet TLS, atspējojiet neizmantoto POP3 un izmantojiet izplatītāja pārbaudīto systemd 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ā Dovecot instalē un palaiž sistēmā CentOS 7. Piekļuve pastkastēm paredzēta ar IMAP un POP3, taču mūsdienīgā izvietojumā autentifikācija vienmēr jāaizsargā ar TLS.
Pirms Dovecot integrācijas iespējošanas droši konfigurējiet Postfix.
Aprakstā izmantotās versijas:
| CentOS versija | 7.6 (1810) |
|---|---|
| Postfix versija | 2.10.1 |
| Dovecot versija | 2.2.36 |
Satura rādītājs
1. Instalēšana
Šajā sadaļā parādīta vēsturiskā Dovecot instalēšanas un sākotnējās palaišanas procedūra.
1-1. Dovecot instalēšana
Vēsturiskajā CentOS vidē Dovecot instalēja ar yum, izmantojot administratora čaulu.
[username@hostname ~]$ su -
[root@hostname ~]# yum -y install dovecot
1-2. Sākotnējās palaišanas pārbaude
Lai pārliecinātos, ka pakotne ir instalēta, īslaicīgi palaidiet Dovecot un pārbaudiet tā procesus. Šajā vēsturiskajā komandā palaišanai nav jānorāda arguments "start".
[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
Ja izvadē redzami procesi, kas darbojas ar kontu dovecot, sākotnējā palaišana ir izdevusies. Pirms konfigurēšanas turpināšanas servisu apturiet.
[root@hostname ~]# /usr/sbin/dovecot stop
2. Vēsturiskā Dovecot konfigurēšana
2-1. Pamatparametri
Tālāk saglabāta sākotnējā Dovecot konfigurācija. Katru direktīvu salīdziniet ar instalētās un atbalstītās versijas dokumentāciju.
[root@hostname ~]# vi /etc/dovecot/dovecot.conf
Vēsturiskajā piemērā veica šādas izmaiņas.
#protocols = imap pop3 lmtp
~saīsinājums~
#listen = *, ::
~saīsinājums~
#login_greeting = Dovecot ready.
protocols = imap pop3
~saīsinājums~
listen = *
~saīsinājums~
login_greeting = pop3 and imap ready.
'protocols' norāda protokolus, kurus Dovecot nodrošina.
'listen = *' piesaista servisu visām pieejamajām adresēm. Tas pats par sevi klientu neautorizē, bet paplašina tīkla ekspozīciju. Klausieties tikai vajadzīgajās saskarnēs un izmantojiet resursdatora ugunsmūri, šifrētus protokolus un skaidrus autentifikācijas noteikumus. Vēsturiskajā piemērā IPv6 adrese "::" tika noņemta, jo izvietojumā izmantoja tikai IPv4.
'login_greeting' ir klientam pēc savienojuma izveides parādītais sveiciens. Tā maiņa var samazināt liekas informācijas izpaušanu, taču neaizstāj piekļuves kontroli, atjauninājumus un drošu konfigurāciju.
2-2. POP3 un IMAP klausītāji
Vēsturiskā konfigurācija iespējo standarta POP3 portu 110 un IMAP portu 143. Šajos portos autentifikācijas datus drīkst pieņemt tikai pēc droša TLS savienojuma izveides; ja POP3 nav vajadzīgs, atspējojiet to.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-master.conf
Vēsturiskajā piemērā veica šādas izmaiņas.
service imap-login {
inet_listener imap {
#port = 143
}
~saīsinājums~
service pop3-login {
inet_listener pop3 {
#port = 110
}
service imap-login {
inet_listener imap {
port = 143
}
~saīsinājums~
service pop3-login {
inet_listener pop3 {
port = 110
}
2-3. Dovecot autentifikācijas mehānismi
Vēsturiskajā piemērā Dovecot autentifikācijas mehānismiem pievienoja LOGIN.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-auth.conf
Konfigurācijā veica šādas izmaiņas.
#disable_plaintext_auth = yes
~saīsinājums~
auth_mechanisms = plain
disable_plaintext_auth = no
~saīsinājums~
auth_mechanisms = login plain
Iestatījums, kas atļauj vienkāršā teksta autentifikācijas mehānismus, ir drošs tikai tad, ja Dovecot pirms akreditācijas datu pieņemšanas obligāti izveido TLS savienojumu. Pārbaudiet efektīvo konfigurāciju un klienta savienojumu, nevis paļaujieties uz vienu direktīvu.
2-4. Maildir pasta krātuve
Šajā piemērā pasta glabāšanas vieta ir katra lietotāja mājas direktorija zem "/home/xxx/", izmantojot Maildir formātu.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-mail.conf
Vēsturiskajā piemērā veica šādas izmaiņas.
#mail_location =
~saīsinājums~
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
~saīsinājums~
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. TLS un paroļu autentifikācija
Vispirms konfigurējiet TLS sertifikātu un privāto atslēgu.
[root@hostname ~]# vi /etc/dovecot/conf.d/10-ssl.conf
Vēsturiskajā piemērā veica šādas izmaiņas.
ssl = required
~saīsinājums~
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
ssl = required
~saīsinājums~
ssl_cert = </etc/pki/tls/certs/localhost.crt
ssl_key = </etc/pki/tls/private/localhost.key
Parametriem 'ssl_cert' un 'ssl_key' norādiet derīgu sertifikātu ķēdi un aizsargātu privāto atslēgu. Plānojiet atjaunošanu un pārbaudiet, vai Dovecot 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 Dovecot dokumentāciju.
Vēsturiska Apache TLS konfigurācija CentOS vidē
Pēc tam failā 'auth-system.conf.ext' konfigurējiet paroļu datubāzi.
[root@hostname ~]# vi /etc/dovecot/conf.d/auth-system.conf.ext
Vēsturiskajā piemērā veica šādas izmaiņas.
passdb {
driver = pam
# [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
# [cache_key=<key>] [<service name>]
#args = dovecot
}
~saīsinājums~
#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
#}
~saīsinājums~
passdb {
driver = shadow
# [blocking=no]
#args =
}
2-6. Palaišanas pārbaude
Pēc konfigurēšanas pārbaudiet, vai Dovecot tiek palaists. Šajā vēsturiskajā komandā arguments "start" nav jānorāda.
[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
Ja redzams process ar kontu dovecot, serviss ir palaists. Tas vēl neapstiprina autentifikāciju, TLS, pastkastīšu atļaujas, protokolu ekspozīciju vai Postfix integrāciju; pārskatiet žurnālus un veiciet kontrolētus klienta testus.
[root@hostname ~]# /usr/sbin/dovecot stop
2-7. Automātiskās palaišanas iestatīšana
Automātiskai palaišanai izmantojiet operētājsistēmas pakotnes nodrošināto Dovecot servisa vienību. Vienību nosaukumi un pārvaldības komandas dažādos izplatījumos atšķiras; neveidojiet otru, konkurējošu servisa definīciju.
Vēsturiskajā procedūrā pārbaudīja, vai pastāv '/usr/lib/systemd/system/dovecot.service'. Ja faila nebija, administratora kontā veidoja 'dovecot.service' ar tālāk redzamo saturu.
[root@hostname ~]# touch /etc/systemd/system/dovecot.service
[root@hostname ~]# vi /etc/systemd/system/dovecot.service
Servisa vienībā tika norādīti šādi iestatījumi.
[Unit]
#Apraksts.
Description=Dovecot
#Kontrole pirms un pēc izpildes.
#Before=xxx.service
After = 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
#Uzsākt, apturēt un atkārtoti ielādēt.
ExecStart=/usr/sbin/dovecot
ExecStop=/usr/sbin/dovecot stop
ExecReload=/usr/sbin/dovecot 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 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. Kopsavilkums
Vēsturiskajā procedūrā aplūkota pakotnes instalēšana, tīkla klausītāji, autentifikācija, pastkastīšu piekļuve, TLS, Postfix integrācija un servisa palaišana. Mūsdienīgam izvietojumam vajadzīgas atbalstītas pakotnes, šifrēta autentifikācija, pasta krātuve ar minimālām privilēģijām, sertifikātu atjaunošana, žurnālu uzraudzība un kontrolēti klienta testi.