在之前的文章中我们分享了关于Postfix SMTP服务器的基本配置。今天要和大家分享的是如何在 Postfix SMTP Server 上安装Dovecot IMAP并启用TLS加密。通过今天的配置我们将可以使用桌面邮件客户端(Foxmail、outlook)来接收和发送电子邮件。
我们先总结一下大体的步骤情况:
- 要使用桌面电子邮件客户端发送电子邮件,我们需要在 Postfix 中启用该服务
submission
- 要使用桌面电子邮件客户端接收电子邮件,我们可以在 Rocky Linux 9上安装 Dovecot 开源 IMAP 服务器。
- 为了加密我们的通信,我们需要一个TLS证书。
在防火墙中打开端口
运行以下命令,在防火墙中打开与邮件相关的端口。
sudo firewall-cmd --permanent --add-service={http,https,smtp-submission,smtps,imap,imaps,pop3,pop3s}
重新加载 firewalld 以使更改生效。
sudo systemctl reload firewalld
在Postfix中启用submission
要从桌面邮件客户端发送电子邮件,我们需要编辑master.cf
来启用Postfix的submission
服务,以便邮件客户端可以向Postfix SMTP服务器提交邮件。
sudo vim /etc/postfix/master.cf
在master.cf
配置文件中添加如下内容。配置并启用Postfix守护程序。通过此处的设置在我们进行桌面邮件客户端链接Postfix服务器的时候需要TLS机密。
submission inet n - y - - smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_tls_wrappermode=no
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
如果在你的场景中需要使用Microsoft Outlook来连接的话,需要增加如下配置。因为Outlook仅支持通过465端口进行提交。
smtps inet n - y - - smtpd
-o syslog_name=postfix/smtps
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
-o smtpd_sasl_type=dovecot
-o smtpd_sasl_path=private/auth
配置TLS加密
我们需要运行以下两个命令来指定 TLS 证书和私钥在 Postfix 配置文件中的位置。您的证书和私钥存储在目录
sudo postconf "smtpd_tls_cert_file = /etc/letsencrypt/live/mail.your-domain.com/fullchain.pem"
sudo postconf "smtpd_tls_key_file = /etc/letsencrypt/live/mail.your-domain.com/privkey.pem"
mail.your-domain.com替换成实际地址
在邮件日志中启用TLS连接日志记录
sudo postconf "smtpd_tls_loglevel = 1"
sudo postconf "smtp_tls_loglevel = 1"
如果希望禁用不安全的SSL\TLS版本,在/etc/postfix/main.cf
中添加如下内容
#Force TLSv1.3 or TLSv1.2
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtpd_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1
保存并关闭文件。然后重新加载 Postfix 以使更改生效。
sudo systemctl restart postfix
运行以下命令,将看到 Postfix 现在正在侦听端口 587 和 465。
sudo ss -lnpt | grep master
安装Dovecot IMAP
输入以下命令在 Rocky Linux 9服务器上安装 Dovecot
sudo dnf install dovecot -y
启动 Dovecot 并在启动时启用自动启动
sudo systemctl start dovecot
sudo systemctl enable dovecot
配置Dovecot
编辑Dovecot配置文件
sudo vim /etc/dovecot/dovecot.conf
修改此配置,启用IMAP\POP
protocols = imap pop3 lmtp
配置邮箱位置
sudo vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
mail_privileged_group = mail
保存并关闭文件。然后添加到组中,以便 Dovecot 可以读取收件箱。
sudo gpasswd -a dovecot mail
使用 Dovecot 将电子邮件传递到消息存储
编辑 Dovecot 主配置文件。
sudo vim /etc/dovecot/dovecot.conf
添加lmtp
到支持的协议
protocols = imap lmtp
保存并关闭文件。然后编辑 Dovecot 10-master.conf 文件。
sudo nano /etc/dovecot/conf.d/10-master.conf
将 lmtp 服务定义更改为以下内容。
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
保存并关闭文件。接下来,编辑 Postfix 主配置文件
sudo vim /etc/postfix/main.cf
在文件末尾添加以下行。第一行告诉 Postfix 通过 dovecot LMTP 服务器将电子邮件传递到本地消息存储库。第二行禁用 Postfix 中的SMTPUTF8,因为 Dovecot-LMTP 不支持此电子邮件扩展。
mailbox_transport = lmtp:unix:private/dovecot-lmtp
smtputf8_enable = no
配置认证机制
编辑身份验证配置文件
sudo vim /etc/dovecot/conf.d/10-auth.conf
找到以下行,并通过删除开头的字符来取消注释。
disable_plaintext_auth = yes
auth_username_format = %Lu
auth_username_format = %n
auth_mechanisms = plain login
默认情况下,当 Dovecot 尝试为用户查找或发送电子邮件时,它会使用完整的电子邮件地址。由于在这一部分中,我们只设置了规范邮箱用户(使用操作系统用户作为邮箱用户),Dovecot 无法找到全域格式(username@your-domain.com)的邮箱用户,因此我们需要设置删除域部分auth_username_format = %n
,那么 Dovecot 应该能够找到邮箱用户。这也允许我们使用完整的电子邮件地址 (username@your-domain.com) 登录。
配置SSL\TLS加密
编辑 SSL/TLS 配置文件。
sudo vim /etc/dovecot/conf.d/10-ssl.conf
您可以找到以下行,它要求电子邮件客户端使用 TLS 加密与 Dovecot 进行通信。
ssl = required
然后找到以下两行并替换成你的证书
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
接下来,找到以下行并取消注释。
ssl_dh = </etc/dovecot/dh.pem
ssl_min_protocol = TLSv1.2
ssl_min_protocol = TLSv1.2
ssl_prefer_server_ciphers = yes
保存并关闭文件。现在我们需要使用以下命令生成 Diffie-Hellman 参数:
sudo openssl dhparam -out /etc/dovecot/dh.pem 4096
Postfix 和 Dovecot 之间的 SASL 身份验证
编辑下面的文件
sudo vim /etc/dovecot/conf.d/10-master.conf
将部分更改为以下内容,以便 Postfix 可以找到 Dovecot 身份验证服务器。
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0600
user = postfix
group = postfix
}
}
自动创建已发送文件夹和废纸篓文件夹
编辑以下配置文件
sudo vim /etc/dovecot/conf.d/15-mailboxes.conf
要自动创建文件夹,只需在邮箱部分添加以下行即可。
mailbox Trash {
auto = create
special_use = \Trash
}
配置邮件客户端(Foxmail)
至此我们完成了 Postfix SMTP Server 的配置工作,目前可以实现通过Foxmail 邮件客户端Postfix SMTP Server 来进行邮件收发。
此文章为原创文章,作者:胖哥叨逼叨,如若转载,请与我联系并注明出处:https://www.pangshare.com/2845.htm
评论列表(1条)
[…] Postfix SMTP Server 03 安装 Dovecot IMAP 服务器 […]