![如何在 Postfix 中阻止具有随机 TLD 的域名?](https://linux22.com/image/741569/%E5%A6%82%E4%BD%95%E5%9C%A8%20Postfix%20%E4%B8%AD%E9%98%BB%E6%AD%A2%E5%85%B7%E6%9C%89%E9%9A%8F%E6%9C%BA%20TLD%20%E7%9A%84%E5%9F%9F%E5%90%8D%EF%BC%9F.png)
有人能告诉我如何拒绝所有具有特定名称的域名,而不考虑 TLD 吗?我想阻止来自名为 的域名的所有邮件bulksender
,例如bulksender.com
、bulksender.org
、bulksender.biz
等bulksender.vn
。
我有一个 postmap 文件client_checks.postmap
,其中包含main.cf
以下内容:
check_client_access hash:/etc/postfix/client_checks.postmap
在该文件中我尝试过:
bulksender. REJECT 550 5.1.0 Go away!
但它没有起作用。
是否有类似的东西*@bulksender.*
可以阻止所有名为 bulksender 的域名,无论它们具有哪个 TLD 结尾?
答案1
后缀PCRE 支持允许使用正则表达式来验证发件人地址。
smtpd_recipient_restrictions = check_sender_access pcre:/etc/postfix/sender_access
我有用过的阻止整个顶级域名
/\.icu$/ 554 https://blocked.icu/
但它也应该符合你的要求:
/@bulksender\./ 554 Go away!
/\100bulksender\./ 554 Go away!
要包含这些域的所有子域:
/@.*\.?bulksender\./ 554 Go away!
请注意,这check_sender_access
使得这发件人限制,但我故意用它来smtpd_recipient_restrictions
HELO
使其仅在完整的、MAIL FROM
和命令集之后触发RCPT TO
。这样,如果出现问题,日志就不会缺少收件人的信息。
不会check_client_access
检查电子邮件地址,但客户连接到您的 SMTP 服务器:
check_sender_access type:table
搜索指定 访问(5)数据库中的
MAIL FROM
地址、域、父域或localpart@,
并执行相应的操作。check_client_access type:table
在指定的访问数据库中搜索客户端主机名、父域、客户端 IP 地址或通过剥离最低有效八位字节获得的网络。请参阅 访问(5)手册页了解详细信息。