为Postfix SMTP服务器设置SASL认证
确保邮件服务器的安全需要时间、精力和财力。如果你是邮件服务器管理员,最让你感到害怕的事情应该就是你的服务器被攻破的可能性。没有人希望他们的服务器成为开放的中继。
SMTP服务器或Postfix通常有助于保护您的服务器。它们使用mynetworks参数来确定网络内的可信发送者。这在几十年前相对容易,因为机构和组织利用局域网来指定网络用户。
但事物已经不再一样,本文将解释其中的区别。本文将解释Postfix SMTP如何与SASL身份验证一起工作。但更重要的是,本文包含了有关为Postfix SMTP设置SASL身份验证和启用身份验证的详细指南。
Postfix SMTP 如何与 SASL 认证一起工作
我们处于21世纪,今天的普通办公室人员希望实现最大限度的流动性。他们希望能够在智能手机、笔记本电脑、平板电脑或家用电脑上发送和接收电子邮件。工作不再像过去那样制度化。
Postfix SMTP旨在弥补移动性差距。它使用简单身份验证和安全层(SASL)来验证用户。SASL是一个当前被许多面向连接的互联网程序和应用使用的框架,用于保护数据、服务器和验证用户。
因此,在你的系统中启用SASL确保Postfix只接受具有可靠身份验证的STMP连接。SMTP服务器将可靠地决定SMTP客户端是否有权向远程设备发送电子邮件,或仅向服务器周围的目的地发送。
当然,SMTP 服务器通常允许电子邮件发送到远程目的地,只要客户端和服务器在同一 IP 地址内。但远离服务器 IP 地址的客户端需要其他方式来访问 "同一网络" 权限。这就是 SASL 认证派上用场的地方。
Postfix SMTP 支持 SASL 实现,因为它们具有必要的插件架构。一个具有这一组合的远程 SMTP 用户将能够对您的 Postfix SMTP 服务器进行身份验证。同样,Postfix SMTP 客户端也将能够对您的远程 SMTP 服务器进行身份验证。在任一情况下,成功的身份验证后,服务器将向客户端提供相同的网络权限。
然而,需要指出的是,Postfix并没有独立实现SASL。相反,它使用SASL中可用的实现作为其构建模块。这意味着多个SASL配置文件属于Postfix。
这把我们带到了这个项目的最后部分!
配置SASL认证以与Postfix SMTP服务器一起工作
一个功能齐全的SASL框架对于成功地与SMTP服务器进行身份验证是必要的。此外,您还需要邮件服务器的TLS/SSL支持。
以下步骤是必要的;
步骤 1:设置 SASL 库
首先,您必须选择要使用的SASL版本。如果您的系统中没有运行SASL,以下命令应该可以帮助您安装SASL库。
完成后,使用以下命令确认您的Postfix安装将支持的SASL实现。以下命令将帮助您:
在前面的示例中,-a 是 SMTP 服务器端,而 –A 是 SMTP 客户端命令。结果是服务器端同时支持 Dovecot 和 Cyrus SASL,而客户端仅支持 Cyrus SASL 的实现。你执行这些命令的结果可能会有所不同。
步骤 2:配置 Dovecot SASL 和 Cyrus SASL
在本示例中,我们将演示如何配置Dovecot SASL和Cyrus SASL。然而,您将根据您的兴趣和可用的支持选项选择最适合您系统的方案。
配置Dovecot并建立SMTP Postfix与Dovecot SASL之间的通信
Dovecot 是一个 IMAP 服务器。它具有一系列配置,允许其对 IMAP 客户端进行身份验证。在将 Postfix SMTP 服务器配置为使用 Dovecot SASL 的情况下,这些服务器将使用部分 SASL 配置。
因此,请确保使用以下命令正确配置 Dovecot SASL 到您的系统中:
请继续建立SMTP Postfix和Dovecot SASL之间的连接。我们将通过UNIX域进行连接以增强隐私。在下图中,我们假设我们的Postfix队列位于/var/spool/postfix/,如第4行所示:
从第5到第8行,您会注意到该说明仅将读和写权限限制在后缀用户和组中。另一方面,第14行表明SASL将只使用PLAIN和LOGIN的明文机制。
配置Cyrus SASL并建立Postfix与Cyrus SASL的通信
Cyrus SASL框架功能强大,支持许多程序和应用,包括IMAP、POP和SMTP。配置Cyrus SASL的第一步是确定配置文件的名称和位置。这描述了SMTP将如何使用Cyrus SASL框架。默认情况下,它始终使用SMTP,并应成功使用这些变量进行配置。
步骤3:配置Postfix
您可以使用的两个配置文件来驱动 Postfix 服务器是 main.cf 和 master.cf。master.cf 文件将成功配置您可能需要的所有 Postfix 子系统,包括中继、队列、清理和 SMTP 等。此外,这也是您将明确 Postfix 子系统是否将在监禁环境中运行,或者您是否想选择详细记录的地方。此步骤还将选择您希望限制的端口。
以下截图显示了在详细日志记录和在chroot监狱中运行的Postfix STMP。它还表明Postfix正在监听2525和25端口。
前面的图像展示了master.cf文件的内容。然而,main.cf文件将更加详尽。它将显示所有配置选项的小子集,而未指明的选项将保留其默认设置。
步骤4:生成一个纯文本的 sasl_passwd 文件
纯文本文件应该看起来像这样:
第一行指示Postfix将邮件转发到哪个目的地,其余行是用户凭据列表。
您还可以生成同一文件的哈希版本,如下所示:
步骤5:在服务器端配置Cyrus SASL
我们已经处理了客户端的SASL配置。现在让我们在服务器端进行配置。我们将使用Cyrus SASL,配合sasldb辅助工具和一个属性插件(auxprop)。
下图显示了插件配置应该是什么样子的:
第6步:创建客户端凭据
在服务器端创建客户端凭据。只有凭据在服务器上正确显示的客户端才能与Postfix服务器连接。
第5和第6行使您能够复制密码数据库,因为在Ubuntu上打包的Postfix存在于chroot环境中。一旦复制,Postfix将读取数据库并调整权限。然后您可以重新启动Postfix,这样就可以了。
结论
Postfix SMTP无疑是最成熟的开源邮件传输代理之一。它可靠地路由和传递电子邮件。相比其他邮件传输代理如Sendmail,它的最大优势在于配置和使用非常简单。之前的配置仅会路由已经通过SASL认证的客户端的电子邮件。因此,我们将Postfix配置为SMTP队列和中继。









