Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.3.10.5. 将 Postfix 配置为使用 SASL

Postfix 的 Red Hat Enterprise Linux 7 版本可以使用 DovecotCyrus SASL 实施进行 SMTP 身份验证 (或 SMTP AUTH)。SMTP 身份验证是简单邮件传输协议的扩展。启用后,需要 SMTP 客户端使用服务器和客户端支持并接受的身份验证方法向 SMTP 服务器进行身份验证。这部分论述了如何将 Postfix 配置为使用 Dovecot SASL 实施。
要安装 Dovecot POP/IMAP 服务器并在您的系统中提供 Dovecot SASL 实施,以 root 用户身份运行以下命令:
~]# yum install dovecot
Postfix SMTP 服务器可以使用 UNIX-domain 套接字或 TCP 套接字 Dovecot SASL 实施通信。仅当 PostfixDovecot 应用在单独的计算机上运行时,才需要采用后一种方法。本指南为 UNIX-domain 套接字方法提供了偏好,这种方法提供了更好的隐私性。
要指示 Postfix 使用 Dovecot SASL 实施,需要对这两个应用进行一些配置更改。按照以下步骤使这些更改生效。
设置 Dovecot
  1. 修改主 Dovecot 配置文件 /etc/dovecot/conf.d/10-master.conf,使其包含以下行(默认配置文件已包含大多数相关部分,只需要取消注释行):
    service auth {
      unix_listener /var/spool/postfix/private/auth {
        mode = 0660
        user = postfix
        group = postfix
      }
    }
    上例假定使用 UNIX-domain sockets 在 PostfixDovecot 之间进行通信。它还假设 Postfix SMTP 服务器的默认设置,其中包括位于 /var/spool/postfix/ 目录下的邮件队列,以及在 postfix 用户和组下运行的应用。这样,读取和写入权限仅限于 postfix 用户和组。
    或者,您可以使用以下配置设置 Dovecot 通过 TCP 侦听 Postfix 身份验证请求:
    service auth {
      inet_listener {
        port = 12345
      }
    }
    在上例中,将 12345 替换为您要使用的端口数。
  2. 编辑 /etc/dovecot/conf.d/10-auth.conf 配置文件以指示 DovecotPostfix SMTP 服务器提供 登录 身份验证机制:
    auth_mechanisms = plain login
设置 Postfix
对于 Postfix,只需要修改主配置文件 /etc/postfix/main.cf。添加或编辑以下配置指令:
  1. Postfix SMTP 服务器中启用 SMTP 身份验证:
    smtpd_sasl_auth_enable = yes
  2. 指示 Postfix 将 Dovecot SASL 实施用于 SMTP 身份验证:
    smtpd_sasl_type = dovecot
  3. 提供相对于 Postfix 队列目录的身份验证路径(请注意,使用相对路径可确保无论 Postfix 服务器是否在 chroot 中运行 ):
    smtpd_sasl_path = private/auth
    此步骤假定您要使用 UNIX-domain sockets 进行 PostfixDovecot 之间的通信。要将 Postfix 配置为在不同机器上查找 Dovecot,以防您使用 TCP 套接字进行通信,请使用类似如下的配置值:
    smtpd_sasl_path = inet:127.0.0.1:12345
    在上例中,127. 0.0.1 需要 替换为 Dovecot 计算机的 IP 地址,并将 12345 替换为 Dovecot/etc/dovecot/conf.d/10-master.conf 配置文件中指定的端口。
  4. 指定 Postfix SMTP 服务器提供给客户端的 SASL 机制。请注意,可以为加密和未加密会话指定不同的机制。
    smtpd_sasl_security_options = noanonymous, noplaintext
    smtpd_sasl_tls_security_options = noanonymous
    上例指定,在未加密会话期间,不允许匿名身份验证,不允许传输未加密的用户名或密码的机制。对于加密的会话(使用 TLS),只允许非匿名身份验证机制。
    有关限制允许的 SASL 机制的所有支持策略列表,请参阅 http://www.postfix.org/SASL_README.html#smtpd_sasl_security_options
其它资源
以下在线资源提供了有助于通过 SASL 配置 Postfix SMTP 身份验证的其他信息。