Dovecot
概述
Dovecot 是一款安全且高性能的邮件投递代理(MDA)和 IMAP/POP3 服务器。常与 smtpd(8)、Postfix 或 Exim 等邮件传输代理(MTA)配合使用,通过 IMAP 或 POP3 协议访问本地邮箱。Dovecot 支持标准邮箱格式(mbox、Maildir)、安全身份验证(包括 PAM 与 SQL 后端)以及完善的 TLS 集成。
本章介绍如何在 OpenBSD 上安装、配置和启用 Dovecot,覆盖常见部署场景,包括本地投递、虚拟邮箱与安全的 IMAP 访问。
功能特性
IMAP4rev1 与 POP3 协议,完整支持 TLS
邮箱格式支持:
mbox、Maildir、dbox通过 PAM、passwd、SQL 或静态 userdb 进行身份验证
内置 LMTP 服务器,用于本地投递
支持虚拟用户与 chroot 邮件存储
内置 Sieve 过滤(通过插件)
高效索引与快速邮件访问
与
smtpd(8)、Postfix、Exim 兼容
安装 Dovecot
Dovecot 不包含在 OpenBSD 基本系统中。使用 pkg_add(1) 安装:
此操作会安装 Dovecot 守护进程及示例配置文件到 /etc/dovecot/。
启用服务
启用 Dovecot 在系统启动时运行:
主配置文件为 /etc/dovecot/dovecot.conf。附加配置位于 /etc/dovecot/conf.d/。
配置
Dovecot 采用模块化配置系统。各主要子系统(如协议、身份验证、邮件存储)在 conf.d/ 中均有独立配置文件,通过主 dovecot.conf 中的 !include conf.d/*.conf 引入。
dovecot.conf 示例
邮件位置
定义邮箱存储格式与位置。系统用户在主目录下使用 Maildir:
文件:/etc/dovecot/conf.d/10-mail.conf
或者使用 mbox:
确保每个用户都初始化了 Maildir/ 或 mail/ 目录。
身份验证
文件:/etc/dovecot/conf.d/10-auth.conf
对系统用户(来自 /etc/passwd)进行身份验证:
auth-system.conf.ext 文件配置针对 /etc/passwd 与 login.conf 的身份验证。
对于虚拟用户(如 SQL 或 passwd 风格文件),参见 auth-passwdfile.conf.ext。
TLS 配置
文件:/etc/dovecot/conf.d/10-ssl.conf
证书可通过 [acme-client(1)] 或其他 ACME 实现获取。Dovecot 在放弃 root 权限之前打开证书与密钥,因此私钥仅 root 可读(例如模式 0600)。
监听器配置
文件:/etc/dovecot/conf.d/10-master.conf
定义 IMAP、POP3 与 LMTP 的套接字监听器。
监听所有接口:
禁用 POP3:
从 smtpd 或 Postfix 通过 LMTP 投递
文件:/etc/dovecot/conf.d/10-master.conf
在 smtpd.conf 中配置 LMTP 投递:
邮箱初始化
每个用户都须正确初始化邮箱目录。对于 Maildir:
用户登录时,Dovecot 会自动创建缺失的子目录。
测试配置
检查 Dovecot 配置是否存在语法错误:
跟踪日志以发现身份验证或邮件访问问题:
使用 TLS
使用 openssl 验证基于 TLS 的 IMAP:
连接与身份验证成功后,Dovecot 会记录相应日志。
用户身份验证示例
系统用户
若用户已存在于 /etc/passwd 且主目录下有 Maildir,则无需额外配置。
通过 passwd-file 实现虚拟用户
创建 /etc/dovecot/users:
文件:/etc/dovecot/conf.d/auth-passwdfile.conf.ext
设置属主与权限:
Dovecot Sieve 支持
通过插件安装 Sieve 支持:
编辑 /etc/dovecot/conf.d/20-managesieve.conf:
重启 Dovecot 以应用更改。
管理工具
doveadm user:列出已知用户doveadm mailbox list:显示用户邮箱doveadm auth test:验证登录身份验证doveadm log errors:显示最近的错误doveadm stats:显示性能指标doveadm reload:重新加载配置doveadm kick:断开用户连接
示例:
文件位置
/etc/dovecot/dovecot.conf
主配置文件
/etc/dovecot/conf.d/
模块化子系统配置
/var/log/dovecot.log
主日志文件
/etc/dovecot/users
虚拟用户的 passwd 风格文件
/etc/ssl/mail.example.org.*
TLS 证书与密钥
/var/vmail/
虚拟用户主目录根
安全与加固
除非在 TLS 下,否则不允许明文登录(
disable_plaintext_auth = yes)以专用用户(
_dovecot)运行 Dovecot使用强 TLS 证书
尽可能为虚拟邮件存储启用
auth_chroot限制
/etc/dovecot/users等敏感文件的权限
最后更新于