postfix 根据 ip 地址限制 smtp 发件人

postfix 根据 ip 地址限制 smtp 发件人

我有一个多年前继承的 Postfix 服务器。最初,它成功地通过身份验证和 IP 地址控制了消息的发送 - 如果经过身份验证的用户从“mynetworks”中的 IP 地址发送,则允许发送。从那时起,它经历了两次重大升级,2017 年从 Lenny 升级到 Jesse,2022 年从 Jesse 升级到 Bullseye。似乎 IP 地址限制要求随着 Bullseye 升级而消失,现在经过身份验证的用户可以从任何 IP 地址发送。

main.cf 中的所有 smtpd 检查和限制过去都位于 smtpd_recipient_restrictions 下,而 smtpd_helo/sender/data_restrictions 均为空。以下是当前设置:

smtpd_recipient_restrictions =
        reject_unlisted_recipient,
        permit_mynetworks,
        check_client_access    hash:/etc/postfix/GEN000_override,
        check_client_access  regexp:/etc/postfix/fqrdns.regexp,
        check_helo_access      hash:/etc/postfix/access,
        check_helo_access    regexp:/etc/postfix/helo_blacklist.regexp,
        check_sender_access    hash:/etc/postfix/blacklist,
        check_sender_access  regexp:/etc/postfix/sender_blacklist.regexp,
        check_sender_mx_access cidr:/etc/postfix/mx_access.txt,
        check_sender_access    hash:/etc/postfix/bdwl
        check_client_access    hash:/etc/postfix/broken_helos,
        reject_invalid_hostname,
        reject_non_fqdn_sender,
        reject_unknown_sender_domain,
        reject_unknown_recipient_domain,
        reject_non_fqdn_hostname,
        reject_non_fqdn_recipient,
        reject_unauth_destination,
        check_recipient_access hash:/etc/postfix/restricted,
        reject_unknown_client,
        reject_unknown_hostname,
        reject_rbl_client zen.spamhaus.org,
        reject_rbl_client bl.spamcop.net

尽管多年来我已经了解了很多有关 Postfix 的知识,但我仍然觉得该系统令人望而生畏。不用说,许多软件包都被替换了,也许意义重大的是,我们不得不将基于 Web 的客户端从 SquirrelMail 迁移到 RoundCube(大多数使用 Thunderbird)。FWIW 我确实尝试过...

smtpd_client_restrictions = permit_mynetworks, reject

...这有效,但有一个不良副作用,即所有来自外部来源(例如 gmail.com)的传入邮件都被退回,并出现 554 5.7.1 错误。我希望在升级过程中一些简单的东西被移动或丢失了。欢迎指点!!

答案1

好吧,我不得不暂时搁置这个问题,但我本周能够重新开始并找到答案。在 Bullseye 升级之前,master.cf 包含以下内容:

submission  inet  n     -       n       -       -       smtpd
  -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_client_restrictions=permit_mynetworks,reject

升级后更改为:

submission  inet  n     -       n       -       -       smtpd
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,reject

因此,recipient_restrictions 被替换为relay_restrictions。使用此配置,任何经过身份验证的用户都可以发送邮件,无论位置/IP 地址如何。由于某种原因(设计或用户错误,我不知道),升级后 client_restrictions 行丢失。正在恢复它...

submission  inet  n     -       n       -       -       smtpd
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,reject
  -o smtpd_client_restrictions=permit_mynetworks,reject

...解决了“从任何地方发送”的问题。

相关内容