postfix 仅限制某些发件人地址(“MAIL FROM:”)的邮件中继

postfix 仅限制某些发件人地址(“MAIL FROM:”)的邮件中继

我想配置 postfix 以仅中继来自特定发件人地址的邮件。Postfix 应根据发件人的地址(“MAIL FROM:”)将邮件中继到不同的中继主机(/智能主机)(Gmail、AOL 等)。

到目前为止,我的当前配置如下:

  • 通常情况下,用户在 Postfix 上进行邮件中继验证。如果无法验证,则无法进行中继。请注意,此验证与中继主机的验证不同。

  • 根据发件人的地址(“MAIL FROM:”),选择特定的中继主机(smtp_sender_dependent_authenticationsender_dependent_relayhost_mapssmtp_sasl_password_maps)。这也可以正常工作。

  • 然而,如果用户可以通过身份验证,并且发件人地址未在 中涵盖sender_dependent_relayhost_maps,则 Postfix 会尝试直接中继邮件 - 由于 IP 地址限制(黑名单),这通常不起作用。


我现在的问题是:如何拒绝直接转发的邮件(没有智能主机),即发件人的地址未在 中列出sender_dependent_relayhost_maps?有什么提示可以实现吗?

答案1

你需要进行一些限制性测试 permit_sasl_authenticated. 前提条件是,在端口上有一个单独的 smtpd25用于接收邮件,另一个 smtpd 用于提交在端口 上587。否则,此限制会导致传入邮件被拒绝,因为它不会通过测试。然后,permit_sasl_authenticated从端口中25完全删除 ,并将测试添加到 中的提交配置中master.cf

  • 从字面上回答你的问题,check_sender_access将是一个合适的测试,将列出的所有域列入白名单sender_dependent_relayhost_maps并拒绝其余域的邮件。

    check_sender_access type:table

    搜索指定访问(5)数据库中的MAIL FROM地址、域、父域或localpart@,并执行相应的操作。

    可以将其添加到smtpd_sender_restrictions或者smtpd_recipient_restrictions

  • 可以做同样的事情,但进一步阻止用户使用彼此的地址的方法是使用reject_sender_login_mismatch.这需要额外的smtpd_sender_login_maps表,但如果您的virtual_alias_maps条目已经形成为[email protected] username,则可以使用相同的文件,并且只要您使用 更新虚拟别名数据库,允许的发件人地址就会自动更新postmap。此类提交配置的示例如下master.cf

    submission inet n - - - - smtpd
    # Other parameters
      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -o smtpd_sender_restrictions=reject_sender_login_mismatch
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    # Other parameters
    

相关内容