强制使用白名单验证 smtp 电子邮件

强制使用白名单验证 smtp 电子邮件

我需要一个 exim 设置,它只允许经过身份验证的 smtp 电子邮件,除非电子邮件来自root@servername。这就是我今天所拥有的:

acl_not_smtp (custom_begin_outgoing_notsmtp_checkall)

deny
authenticated = *
condition = ${if !eq {root@$primary_hostname}{${address:$h_from:}}}
message = REJECTED
accept

此解决方案会阻止所有未经身份验证的电子邮件。有人有更好的解决方案吗?

答案1

我猜你需要调用另一个 acl:acl_smtp_rcpt。找出这个 acl 在你的服务器上映射的名称。在 Debian 中是 acl_check_rcpt。

要测试发送者,必须已经给出发送者,当远程端发送“RCPT TO:”命令时,这一点是正确的。无需尝试,我会在 acl_check_rcpt 中执行如下操作:

accept authenticated = *
accept senders = root@servername
deny message = Rejected

您不应该依赖容易被伪造的发件人地址。您可以使用以下方式测试发送主机

    accept senders = root@servername
           hosts = 127.0.0.1 : localhost

此外,要确保消息的来源是您的服务器。

大多数本地消息不会被 smtp 接收。您的配置中的 acl 是:acl_not_smtp。但再次搜索它映射到什么名称。

相关内容