postfix - 禁止用户登录后更改电子邮件用户名

postfix - 禁止用户登录后更改电子邮件用户名

我有一个带有 Postfix 和 Dovecot 的邮件服务器,用户可以发送电子邮件,但是(登录后)他们可以更改地址并从其他地方发送[email protected]

例如,[email protected]通过 IMAP/SMTP 登录电子邮件,然后他将地址更改为,[email protected]并且仍然可以冒充其他用户发送邮件。

我该如何禁用此功能?我试过了

smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch

user1甚至无法从 发送邮件[email protected]

答案1

为了MAIL FROM根据用户限制命令中允许的地址,Postfix 需要知道哪些地址属于哪些用户。因此,您必须将这些限制与smtpd_sender_login_maps

smtpd_sender_restrictions

如果您使用virtual_alias_maps将地址映射到本地用户,格式与 相同smtpd_sender_login_maps,您只需使用相同的文件即可。在此示例中,我假设hash:Berkeley DB 位于/etc/postfix/virtual(需要postmap /etc/postfix/virtual进行修改):

[email protected] user1
[email protected] user1
[email protected] user2
[email protected] user2
[email protected] root

这样,就可以将同一个文件用于两个目的,并且对传入地图的修改也会立即影响允许的出站地址。

  • main.cf

    virtual_alias_domains = example.com
    virtual_alias_maps = hash:/etc/postfix/virtual
    
  • 对于经过身份验证的提交(在端口上587master.cf(假设 TLS 和 Dovecot SASL):

    submission inet n - - - - smtpd
      -o smtpd_tls_security_level=encrypt
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_sasl_type=dovecot
      -o smtpd_sasl_path=private/auth
      -o smtpd_sasl_security_options=noanonymous
      -o smtpd_sasl_local_domain=$myhostname
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -o smtpd_sender_restrictions=reject_sender_login_mismatch
    
  • 当然也可以使用

    smtpd_sender_login_maps = hash:/etc/postfix/virtual
    smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch
    

    直接在main.cf,但我建议使用单独的配置提交:它使您能够对经过身份验证的用户使用与传入邮件不同的限制和其他设置,并且它也能更好地工作,例如,限制使用 SMTP 端口的家庭互联网连接25

相关内容