Postfix SMTP Server 03 安装 Dovecot IMAP 服务器

在之前的文章中我们分享了关于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
Postfix SMTP Server 03 安装 Dovecot IMAP 服务器
master.cf

配置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
Postfix SMTP Server 03 安装 Dovecot IMAP 服务器
查看侦听端口

安装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 SMTP Server 03 安装 Dovecot IMAP 服务器
Dovecot 增加lmtp内容

保存并关闭文件。接下来,编辑 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 03 安装 Dovecot IMAP 服务器
foxmail 邮件服务器 客户端配置

至此我们完成了 Postfix SMTP Server 的配置工作,目前可以实现通过Foxmail 邮件客户端Postfix SMTP Server 来进行邮件收发。

此文章为原创文章,作者:胖哥叨逼叨,如若转载,请与我联系并注明出处:https://www.pangshare.com/2845.htm

(1)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年10月31日 下午2:30
下一篇 2023年11月27日 下午9:49

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

评论列表(1条)