在我的 postfix 设置中,我想“禁用”来自特定 TLD 域的所有传入邮件(在我的情况下,所有以“.info”结尾的域)。我通常阻止域的方法是使用 中的哈希文件/etc/postfix/rejected_domains
,如下所示
[...]
bla.info REJECT Spam
blubb.info REJECT More Spam!
[...]
main.cf
并且在我的文件中有这样的配置:
# domains to be restricted
smtpd_sender_restrictions = hash:/etc/postfix/rejected_domains
reject_unauth_destinations = hash:/etc/postfix/rejected_domains
我阻止所有信息的想法是将这些规则添加到上述文件中:
*.info REJECT Toooo much spam
.info REJECT Toooo much spam
不幸的是,这似乎不起作用。
2.8.5-2~build0.10.04
这里在 Ubuntu LTS 10 上使用 postfix 。
答案1
Hash 用于文字(精确匹配),您需要使用正则表达式或 pcre:
作为主宰指出,如果您已经有值,则想要附加这些值,您可以使用以下方法检查现有值
postconf smtpd_sender_restrictions
postconf reject_unauth_destinations
然后你可以用以下方法覆盖它们:
postconf -e smtpd_sender_restrictions=pcre:/etc/postfix/rejected_domains
postconf -e reject_unauth_destinations=pcre:/etc/postfix/rejected_domains
/etc/postfix/rejected_domains 的内容:
/\.info$/ REJECT All Info Domains
进而postfix reload
答案2
smtpd_helo_restrictions =
permit_mynetworks
permit_sasl_authenticated
check_helo_access hash:/etc/postfix/helo_blacklist
check_helo_access hash:/etc/postfix/helo_whitelist
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
reject_unknown_helo_hostname
在 helo_blacklist 中
info REJECT INFO tld blocked
执行postmap helo_blacklist
服务器如果显示以 info 结尾的 helo 将会收到如下错误:
Helo command rejected: INFO tld blocked;
答案3
与接受的答案不同,smtpd_sender_restrictions
不直接取pcre:
,而是需要check_sender_access type:table
。
smtpd_recipient_restrictions =
check_sender_access pcre:/etc/postfix/sender_access
然后,/etc/postfix/sender_access
可以有:
/\.info$/ 550 I do not accept mail from .info
/\.icu$/ 550 https://blocked.icu/