1.6. 配置 LMTP 套接字和 LMTPS 侦听器

SMTP 服务器(如 Postfix)使用本地邮件传输协议(LMTP)向 Dovecot 发送电子邮件。如果 SMTP 服务器运行:

  • 在与 Dovecot 相同的主机上,使用 LMTP 套接字
  • 在其他主机上,使用 LMTP 服务

    默认情况下,LMTP 协议没有加密。但是,如果您配置了 TLS 加密,则 Dovecot 会自动对 LMTP 服务使用相同的设置。然后,SMTP 服务器可以使用 LMTPS 协议或 LMTP 上的 STARTTLS 命令连接它。

先决条件

  • Dovecot 已安装。
  • 如果要配置 LMTP 服务,TLS 加密会在 Dovecot 中配置。

流程

  1. 验证 LMTP 协议是否已启用:

    # doveconf -a | egrep "^protocols"
    protocols = imap pop3 lmtp

    如果输出包含 lmtp,则该协议已启用。

  2. 如果 lmtp 协议被禁用,请编辑 /etc/dovecot/dovecot.conf 文件,并将 lmtp 附加到 protocols 参数中的值:

    protocols = ... lmtp
  3. 根据您是否需要 LMTP 套接字或服务,在 /etc/dovecot/conf.d/10-master.conf 文件的 service lmtp 部分中进行以下更改:

    • LMTP 套接字:默认情况下,Dovecot 会自动创建 /var/run/dovecot/lmtp 套接字。

      可选:自定义所有权和权限:

      service lmtp {
        ...
        unix_listener lmtp {
          mode = 0600
          user = postfix
          group = postfix
        }
        ...
      }
    • LMTP 服务:添加一个 inet_listener 子部分:

      service lmtp {
        ...
        inet_listener lmtp {
          port = 24
        }
        ...
      }
  4. 配置 firewalld 规则,以只允许 SMTP 服务器访问 LMTP 端口,例如:

    # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.0.2.1/32" port protocol="tcp" port="24" accept"
    # firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv6" source address="2001:db8:2::1/128" port protocol="tcp" port="24" accept"
    # firewall-cmd --reload

    IPv4 的子网掩码 /32 和 IPv6 子网掩码 /128 限制对指定地址的访问。

  5. 重新载入 Dovecot:

    # systemctl reload dovecot

验证

  1. 如果您配置了 LMTP 套接字,请验证 Dovecot 是否已创建套接字,以及权限是否正确:

    # ls -l /var/run/dovecot/lmtp
    srw-------. 1 postfix postfix 0 Nov 22 17:17 /var/run/dovecot/lmtp
  2. 配置 SMTP 服务器,以使用 LMTP 套接字或服务向 Dovecot 提交电子邮件。

    使用 LMTP 服务时,请确保 SMTP 服务器使用 LMTPS 协议或发送 STARTTLS 命令以使用加密连接。

其他资源

  • /usr/share/doc/dovecot/wiki/LMTP.txt