Dovecot på CentOS: äldre IMAP/POP3-installation


Publicerad:

Uppdaterad:


Tekniska artiklar > Dovecot på CentOS: äldre IMAP/POP3-installation

Status 2026 och säker användning

Slutsats: En aktuell Dovecot-tjänst ska använda ett paket som stöds, giltiga certifikat med fungerande förnyelse, obligatorisk kryptering före autentisering, postlådor med minsta privilegium, avgränsad Postfix-integration och övervakade loggar. Aktivera endast de protokoll som användarna behöver.

Det här går artikeln igenom

  • Vad den ursprungliga konfigurationen för Dovecot 2.2 och CentOS 7 gjorde.
  • Hur IMAP/POP3-lyssnare, TLS, autentiseringsmekanismer, postlådor och Postfix-integration hänger ihop.
  • Varför autentiseringsmekanismerna PLAIN och LOGIN bara är säkra när kryptering krävs innan autentiseringsuppgifter tas emot.

Målgrupp: Erfarna e-postadministratörer som granskar en äldre installation med Postfix och Dovecot. Artikeln är inte en färdig standard för en internetansluten tjänst.

Läge 2026: Versionerna och kommandona nedan är historiska och har inte validerats som en säker aktuell lösning. Kopiera inte disable_plaintext_auth=no till produktion utan en design som garanterar TLS före autentisering. Föredra IMAP med TLS, stäng av oanvänd POP3 och använd distributionens granskade systemd-enhet.

Säkerhetsinformation: Kommandona och konfigurationsexemplen har inte testats på nytt i en aktuell produktionsmiljö. Verifiera protokoll, certifikat, autentisering, filbehörigheter, brandvägg, säkerhetskopior och återställning i en separat testmiljö.

Viktiga officiella källor

Översikt

Artikeln dokumenterar installation av Dovecot på CentOS 7 och en äldre konfiguration för IMAP, POP3, TLS, Maildir och autentisering. Exemplet aktiverar port 143 och 110, inte de separata implicit-TLS-portarna 993 och 995.

Postfix på CentOS: äldre installation och säkerhet 2026

Originalmiljön använde följande versioner.

CentOS-version7.6 (1810)
Postfix-version2.10.1
Version av Dovecot2.2.36

Innehållsförteckning

  1. Installation
  2. Grundkonfiguration
  3. Sammanfattning

1. Installation

Det här avsnittet beskriver paketinstallationen och en första startkontroll i originalmiljön.

1-1. Installera Dovecot

I den äldre CentOS-miljön installerades paketet dovecot med yum och root-behörighet.

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

1-2. Kontrollera att Dovecot startar

Starta Dovecot och kontrollera processerna. Det bevarade kommandot startar tjänsten utan ett separat "start"-argument.

[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

När processerna visas utan startfel stoppar originalproceduren tjänsten igen före konfigurationen.

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

2. Grundkonfiguration

2-1. Välj protokoll och lyssningsadresser

Grundinställningarna för protokoll, lyssningsadresser och hälsningsmeddelande finns i dovecot.conf.

[root@hostname ~]# vi /etc/dovecot/dovecot.conf

Originalartikeln gör följande ändring.

dovecot.conf【Före förändring】


#protocols = imap pop3 lmtp
~förkortning~
#listen =  *, ::
~förkortning~
#login_greeting = Dovecot ready.

dovecot.conf【efter ändringen】


protocols = imap pop3
~förkortning~
listen = *
~förkortning~
login_greeting = pop3 and imap ready.

protocols anger vilka protokoll Dovecot ska erbjuda. Aktivera inte POP3 om alla klienter kan använda IMAP.

listen anger vilka lokala adresser Dovecot binder till. Värdet "*" betyder alla IPv4-gränssnitt; det begränsar inte vilka klientadresser som får ansluta. Bind endast till avsedda gränssnitt och komplettera med en snäv brandväggsregel. IPv6-adressen "::" togs bort i originalmiljön eftersom IPv6 inte användes. Inaktivera dock inte IPv6 utan att bedöma miljöns nätverkskrav.

login_greeting ändrar serverns hälsningsrad. Att dölja produktnamnet är inte ett tillräckligt säkerhetsskydd; patchning, TLS, autentisering och åtkomstkontroll är viktigare.

2-2. Konfigurera IMAP- och POP3-lyssnare

Originalkonfigurationen aktiverar IMAP på port 143 och POP3 på port 110. Dessa är inte implicit-TLS-portarna; kräv STARTTLS före autentisering eller konfigurera separata TLS-lyssnare enligt aktuell dokumentation.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-master.conf

Den bevarade ändringen ser ut så här.

10-master.conf【Före förändring】


service imap-login {
  inet_listener imap {
    #port = 143
  }
~förkortning~
service pop3-login {
  inet_listener pop3 {
    #port = 110
  }

10-master.conf【efter ändringen】


service imap-login {
  inet_listener imap {
    port = 143
  }
~förkortning~
service pop3-login {
  inet_listener pop3 {
    port = 110
  }

2-3. Konfigurera autentiseringsmekanismer

Originalartikeln aktiverar mekanismerna LOGIN och PLAIN och tillåter dem även när Dovecot inte har identifierat anslutningen som krypterad.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-auth.conf

Den bevarade ändringen ser ut så här. Använd inte disable_plaintext_auth = no utan en verifierad design som garanterar TLS före autentisering.

10-auth.conf【Före förändring】


#disable_plaintext_auth = yes
~förkortning~
auth_mechanisms = plain

10-auth.conf【efter ändringen】


disable_plaintext_auth = no
~förkortning~
auth_mechanisms = login plain

2-4. Använd Maildir för postlådor

Ange Maildir som postlådeformat under varje användares hemkatalog. Kontrollera ägare, grupp, katalogbehörigheter, kvoter och säkerhetskopiering.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-mail.conf

Originalartikeln anger följande mail_location och namespace-plats.

10-mail.conf【Före förändring】


#mail_location =
~förkortning~
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 =

10-mail.conf【efter ändringen】


mail_location = maildir:~/Maildir
~förkortning~
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. Konfigurera TLS och lösenordsdatabas

Kräv TLS och ange certifikat och privat nyckel för Dovecots publika servernamn.

[root@hostname ~]# vi /etc/dovecot/conf.d/10-ssl.conf

Originalartikeln ersätter Dovecots standardsökvägar med följande filer.

10-ssl.conf【Före förändring】


ssl = required
~förkortning~
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem

10-ssl.conf【efter ändringen】


ssl = required
~förkortning~
ssl_cert = </etc/pki/tls/certs/localhost.crt
ssl_key = </etc/pki/tls/private/localhost.key

ssl_cert och ssl_key ska peka på ett giltigt certifikat med fullständig kedja och en skyddad privat nyckel. Kontrollera även aktuella protokoll, chiffersviter och automatisk certifikatförnyelse.

Följande artikel innehåller ett äldre exempel på certifikathantering. Följ Dovecots aktuella dokumentation för e-postserverns verkliga namn.

Installera Apache HTTP Server säkert på CentOS


Därefter konfigureras lösenordsdatabasen i auth-system.conf.ext.

[root@hostname ~]# vi /etc/dovecot/conf.d/auth-system.conf.ext

Originalartikeln byter från PAM till shadow enligt följande. Bedöm om systemkonton verkligen ska fungera som e-postidentiteter och skydda shadow-åtkomsten med minsta privilegium.

auth-system.conf.ext【Före förändring】


passdb {
  driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
  # [cache_key=<key>] [<service name>]
  #args = dovecot
}
~förkortning~
#passdb {
  #driver = shadow
  # [blocking=no]
  #args =
#}

auth-system.conf.ext【efter ändringen】


#passdb {
#driver = pam
  # [session=yes] [setcred=yes] [failure_show_msg=yes] [max_requests=<n>]
  # [cache_key=<key>] [<service name>]
  #args = dovecot
#}
~förkortning~
passdb {
  driver = shadow
  # [blocking=no]
  #args =
}

2-6. Kontrollera den konfigurerade tjänsten

Validera konfigurationen och starta Dovecot i en isolerad testmiljö. Det bevarade kommandot använder inget separat "start"-argument.

[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

Processerna visar att Dovecot har startat, men bevisar inte att TLS, autentisering, postlådebehörigheter eller Postfix-integrering fungerar. Testa lyckade och nekade inloggningar samt certifikatvalidering innan tjänsten exponeras. Originalproceduren stoppar tjänsten efter kontrollen.

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

2-7. Automatisk start

En produktionsserver ska normalt använda den systemd-enhet som Dovecot-paketet tillhandahåller och aktivera den för automatisk start.

Originalartikeln kontrollerar /usr/lib/systemd/system/dovecot.service och skapar annars den egna enheten nedan. Skapa inte en parallell, ogranskad enhet på en aktuell installation; använd vendor-enheten och en systemd-override vid behov.

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

Den bevarade enhetsfilen innehåller följande.

[Unit]
#Beskrivning.
Description=Dovecot
#Kontroll före och efter utförandet.
#Before=xxx.service
After = network.target

[Service]
#Användar- och gruppbeteckning
User=root
Group=root
#När den är aktiverad, sätts statusen till Aktiverad.
Type=oneshot
RemainAfterExit=yes
#Starta, stoppa och ladda om.
ExecStart=/usr/sbin/dovecot
ExecStop=/usr/sbin/dovecot stop
ExecReload=/usr/sbin/dovecot reload

[Install]
#Motsvarande inställningar för Runlevel 3.
WantedBy=multi-user.target

Därefter aktiverades enheten med systemctl och systemd-konfigurationen lästes in på nytt.

[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. Sammanfattning

Den historiska proceduren installerar Dovecot 2.2, aktiverar IMAP och POP3, konfigurerar LOGIN/PLAIN, Maildir, TLS, shadow-autentisering och automatisk start.

Exemplet är inte produktionsklart: använd en version som stöds, kräv TLS före autentisering, stäng av oanvända protokoll och verifiera certifikat, postlådebehörigheter, brandvägg och Postfix-integrering.

Testa inloggning, nekad åtkomst, leverans, säkerhetskopiering och återställning innan tjänsten ansluts till internet.