Dovecot认证配置排错

故障现象为:安装dovecot-mysql后就可以了,但465, 578端口无法监听

端口 465 和 578 未被监听,这通常与 Postfix 或 Dovecot 的配置有关。以下是分步解决:

1. 端口 465(SMTPS)未监听

原因:Postfix 未启用 SMTPS 服务(端口 465),或配置未生效。

修复步骤

  1. 编辑 Postfix 的 master.cf 文件
    vim /etc/postfix/master.cf
  2. 找到以下行并取消注释(删除行首的 #
    smtps     inet  n       -       n       -       -       smtpd
      -o syslog_name=postfix/smtps
      -o smtpd_tls_wrappermode=yes
      -o smtpd_sasl_auth_enable=yes
  3. 重启 Postfix
    systemctl restart postfix
  4. 验证端口 465 是否监听
    ss -tunlp | grep 465

    预期输出应包含 0.0.0.0:465


2. 端口 578 未监听

原因:端口 578 不是标准服务端口,需确认用途。假设您希望 Dovecot 的 LMTP 服务 监听此端口(非默认配置)。

修复步骤

  1. 编辑 Dovecot 配置
    vim /etc/dovecot/dovecot.conf
  2. 在 service lmtp 部分添加 TCP 监听
    service lmtp {
      inet_listener lmtp {
        port = 578
      }
      unix_listener lmtp {
        group = postfix
        mode = 0660
        user = postfix
      }
    }
  3. 重启 Dovecot
    systemctl restart dovecot
  4. 验证端口 578 是否监听
    ss -tunlp | grep 578

3. 防火墙和 SELinux 检查

防火墙放行端口

firewall-cmd --permanent --add-port=465/tcp
firewall-cmd --permanent --add-port=578/tcp
firewall-cmd --reload

SELinux 配置

  1. 允许 Postfix 使用 465 端口
    semanage port -a -t smtps_port_t -p tcp 465
  2. 允许 Dovecot 使用 578 端口(假设用于 LMTP):
    semanage port -a -t lmtp_port_t -p tcp 578

4. 验证服务状态

  1. 检查 Postfix 和 Dovecot 日志
    tail -f /var/log/maillog /var/log/dovecot.log

    确保无错误日志(如 bind failed 或 permission denied)。

  2. 完整端口监听检查
    ss -tunl | grep -E "25|110|465|578|993|995"

    预期输出:

    tcp  LISTEN 0 100 0.0.0.0:25   0.0.0.0:*
    tcp  LISTEN 0 100 0.0.0.0:465  0.0.0.0:*
    tcp  LISTEN 0 100 0.0.0.0:578  0.0.0.0:*
    tcp  LISTEN 0 100 0.0.0.0:993  0.0.0.0:*
    tcp  LISTEN 0 100 0.0.0.0:995  0.0.0.0:*