我正在运行OpenSMTPD on OpenBSD以及spamd、spampd和spamassin.DKIMproxy和dovecot。我的设置是处理服务器上的本地电子邮件和我的域的(外部)电子邮件。我的设置似乎正在工作(仍处于测试阶段)。我很高兴能够实现我的设置与一个17行的opensmtpd.conf文件,不包括评论和空格。然而,有一些事情我不满意。我希望有人能建议如何处理这些问题:
在构建安装程序时,我最初没有spampd /spampd。在该配置中,只有一个“接受”命令,接收电子邮件并将其传递给dovecot。OpenSMTPD服务器检查收件人地址的存在,如果不存在返回错误550,则不允许提交电子邮件。这很好。
在我将spampd和spamassassin合并之后,“接受”命令将收到的电子邮件转发到spampd (运行spamassassin)。spampd / spamassasin处理完消息后,将由另一个传递给dovecot的OpenSMTP accept命令接收消息。虽然这样做有效,但也有一些不必要的副作用,如果不加以修复,就会导致漏洞:
1) spampd / spamassassin将处理“我的域”的所有传入消息,以及该域上不存在的收件人的邮件。浪漫主义/垃圾邮件不是完全“轻”的任务。这使得DOS攻击的机会更高。
2)我域的所有传入消息首先被接受。对于未知的收件人,只有在spampd / spamassassin处理之后才会检测到。一旦检测到未知收件人,邮件发送者将向发件人发送发送状态的电子邮件,说明收件人是未知的。这允许攻击者使用我的服务器向任何有效的收件人发送类似垃圾邮件的电子邮件,方法是将电子邮件发送到我的服务器,并以发件人的身份发送任何有效的电子邮件地址,并作为收件人发送我域中的任何无效收件人。
问题:
致以亲切的问候,
发布于 2021-09-19 03:59:14
在新的opensmtpd 6.4+语法中,我也对此感到好奇。目前,我有一个文件,里面有我所有的域名,我只是有一条规则,确保我只收到我的域名的电子邮件。这允许为可能不存在的用户提供消息,从而使消息弹出。
table vdoms "/mail/db/vdomains"
...
match from any for domain <vdoms> action your_spam_filter_action要限制用户,您需要有一个包含所有有效电子邮件地址的表,然后使用rcpt-to作为匹配器。这可能重复了您在其他别名/用户表中已经拥有的一些信息。
因此,假设您有一个/etc/mail/addrs表:
bob@example.com
mary@example.com
sue@example.net在你的smtpd.conf中你需要
table addrs "/mail/db/addrs"
...
...
match from any for rcpt-to <addrs> action your_spam_filter_action现在,opensmtp将在RCPT TO: <wrongperson@example.com>命令下拒绝电子邮件,而不是接受它,然后发送回发邮件。
https://serverfault.com/questions/862271
复制相似问题