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-version | 7.6 (1810) |
|---|---|
| Postfix-version | 2.10.1 |
| Version av Dovecot | 2.2.36 |
Innehållsförteckning
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.
#protocols = imap pop3 lmtp
~förkortning~
#listen = *, ::
~förkortning~
#login_greeting = Dovecot ready.
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.
service imap-login {
inet_listener imap {
#port = 143
}
~förkortning~
service pop3-login {
inet_listener pop3 {
#port = 110
}
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.
#disable_plaintext_auth = yes
~förkortning~
auth_mechanisms = plain
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.
#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 =
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.
ssl = required
~förkortning~
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
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.
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 =
#}
#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.