我在 CentOS 7 上运行邮件服务器。所有程序和系统都是最新的。我的邮件传输代理是 Postfix,它使用 Dovecot SASL 来验证用户身份。
在 Postfix 的配置中,我的信任网络只有 localhost。因此,每个主机都必须通过 Dovecot SASL 验证才能发送消息。
问题
例如,是否有恶意用户访问帐户。他可以以 Ana、Bob 等身份发送消息。我该如何阻止它?
目标
换句话说,我希望当且仅当经过身份验证的用户与发件人标头中的用户相同时才发送消息。有没有什么工具可以实现这一点?
答案1
您可能希望在配置中使用该reject_sender_login_mismatch
参数smtpd_sender_restrictions
,因此您可能会得到如下内容:
smtpd_sender_restrictions =
permit_mynetworks,
reject_sender_login_mismatch,
permit_sasl_authenticated,
...
这将允许mynetworks
发送电子邮件,但在允许 SASL 验证的客户端之前,它将检查发件人登录是否不匹配。
根据Postfix 文档:
拒绝发送者登录不匹配:当 $smtpd_sender_login_maps 为 MAIL FROM 地址指定了所有者,但是客户端未(SASL)以该 MAIL FROM 地址所有者身份登录时,或者当客户端(SASL)登录,但是根据 $smtpd_sender_login_maps,客户端登录名不拥有 MAIL FROM 地址时,拒绝请求。
这意味着要为用户创建一个可以使用每个电子邮件地址的新地图,包括他们自己。因此,如果你有一个名为[电子邮件保护]您需要添加地图:
[email protected] [email protected]
为了允许[电子邮件保护]一旦通过身份验证,就从该帐户发送电子邮件。
这也允许您创建身份,因此一个帐户可以有多个允许的发件人:
[email protected] [email protected]