我目前安装了 Postfix,可以顺利地为我们公司 100 多名用户发送邮件(Webmail/IMAP),这些用户大致分为几个域(销售、运营、管理等)。最近,有人将销售人员的集体地址泄露给了垃圾邮件收集者(不知道是谁,无所谓),该收集者现在正在利用该地址进行鱼叉式网络钓鱼,因为该地址会发送给 30 多名销售员工。转发如下所示:
[电子邮件保护]====> [电子邮件保护],[电子邮件保护],[电子邮件保护] [电子邮件保护]
他们每个人现在都通过该转发地址收到大量垃圾邮件,要求联系 HR(恶意链接)来更新他们的 W-2 地址,或收集安全消息,或类似的东西。
在设立该远期合约时,我就已经预见到这种远期合约可能会被滥用,而且很可能在某个时候会被滥用,但由于政治限制,在我能够研究如何限制它之前就被迫设立了它,然后它就发挥了作用,在三年多的时间里没有被滥用。这里面可能有些评论说我的公司相对不重要,或者低估了人性。
我想要的是只允许来自指定域中的电子邮件地址(即@mycompany.com)的邮件发送到该转发地址(但不是任何转发地址,因为我有多个 info@ 类型)。
我的 Postfix 安装使用 MySQL 虚拟查找域、转发和用户,类似于所描述的这里以及网络上的其他地方。目前一切都运行正常,只是有些转发太容易邮寄了。
再次强调,我只想限制部分转发的发件人域,而不是所有转发。我们目前通过在向这些列表发送邮件时使用 bcc: 字段来缓解此问题,因此实际的列表地址不会泄露。这确实限制了收件人通过回复全部进行的讨论,目前不确定这是功能还是错误。
答案1
最好的解决方案可能是使用邮件列表或编写自定义 SpamAssassin 规则,但也有一种简单(虽然有点脆弱)的方法,纯粹在 Postfix 中使用 来完成此操作smtpd_recipient_restrictions
。
smptd_recipient_restrictions
在 main.cf 中添加以下内容:
check_sender_access hash:/etc/postfix/sender_access, check_recipient_access hash:/etc/postfix/recipient_access
在 中/etc/postfix/sender_access
,编写一条允许 mycompany.com 的规则:
mycompany.com OK
在中/etc/postfix/recipient_access
,编写一条阻止邮件到[电子邮件保护]:
[email protected] REJECT Sorry, only mycompany.com can mail this address
确保在任何更改之后通过运行以下postmap
命令重新编译这些文件:
postmap /etc/postfix/sender_access
postmap /etc/postfix/recipient_access
第一条smptd_recipient_restrictions
规则检查发件人。如果发件人在 mycompany.com 域中,则立即接受该邮件。如果不是,它将前进到下一条规则,即检查收件人。如果发件人是您的 salespople 别名,则拒绝该邮件。如您所见,它满足了您的需要,尽管它有点不灵活,因为您不能随意将发件人域与收件人地址配对。
如果您已经smptd_recipient_restrictions
制定了规则,请确保您定位这些规则,以便您不会意外地短路其他规则。
您可能可以将 sender_access 和 received_access 表存储在 MySQL 中而不是文件中,尽管我没有这方面的经验。