2.9.3. 将 Postfix 配置为使用 SASL
您可以将 Postfix 邮件传输代理配置为使用简单身份验证和安全层(SASL)。这增强了在发送和接收电子消息时的身份验证。
Postfix 支持基于 SASL 的 SMTP 身份验证(AUTH)。SMTP AUTH 是简单邮件传输协议的扩展。目前,Postfix SMTP 服务器通过以下方式支持 SASL 实现:
- Dovecot SASL
- Postfix SMTP 服务器可以使用 UNIX-域套接字或 TCP 套接字与 Dovecot SASL 进行通信。如果 Postfix 和 Dovecot 应用程序运行在单独的计算机上,则使用此方法。
- Cyrus SASL
- 启用后,SMTP 客户端必须使用服务器和客户端都支持和接受的身份验证方法与 SMTP 服务器进行身份验证。
先决条件
-
dovecot软件包已安装在系统上
流程
设置 Dovecot:
在
/etc/dovecot/conf.d/10-master.conf文件中包括以下行:service auth { unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } }前面的示例对 Postfix 和 Dovecot 之间的通信使用 UNIX-域套接字。该示例还假定默认的 Postfix SMTP 服务器设置,其包括位于
/var/spool/postfix/目录中的邮件队列,以及在postfix用户和组下运行的应用程序。可选:建立 Dovecot 以通过 TCP 侦听 Postfix 验证请求:
service auth { inet_listener { port = <port_number> } }通过编辑
/etc/dovecot/conf.d/10-auth.conf文件中的auth_mechanisms参数来指定电子邮件客户端用来使用 Dovecot 进行身份验证的方法:auth_mechanisms = plain loginauth_mechanisms参数支持不同的纯文本和非纯文本身份验证方法。
通过修改
/etc/postfix/main.cf文件来建立 Postfix:在 Postfix SMTP 服务器上启用 SMTP 身份验证:
smtpd_sasl_auth_enable = yes为 SMTP 身份验证启用 Dovecot SASL 实现:
smtpd_sasl_type = dovecot提供相对于 Postfix 队列目录的身份验证路径。请注意,使用相对路径可确保无论 Postfix 服务器是否以
chroot运行,配置都可以正常工作:smtpd_sasl_path = private/auth此步骤使用 UNIX-域套接字在 Postfix 和 Dovecot 之间进行通信。
如果您使用 TCP 套接字进行通信,要将 Postfix 配置为在不同机器上查找 Dovecot,请使用类似如下的配置值:
smtpd_sasl_path = inet: <IP_address> : <port_number>在上例中,将
<IP_address>替换为 Dovecot 机器的 IP 地址,将<port_number>替换为在 Dovecot 的/etc/dovecot/conf.d/10-master.conf文件中指定的端口号。指定 Postfix SMTP 服务器为客户端提供的 SASL 机制。请注意,您可以为加密和未加密的会话指定不同的机制。
smtpd_sasl_security_options = noanonymous, noplaintext smtpd_sasl_tls_security_options = noanonymous以上指令指定在未加密的会话期间,不允许匿名身份验证,也不允许使用传输未加密的用户名或密码的机制。对于使用 TLS 的加密会话,只允许非匿名身份验证机制。