假设以下设置;
- 一个共享主机服务器,与许多小型网站共享一个 IP。
- 网站集的一个子集正在发送电子邮件。其中一些电子邮件可能发往他们自己的域。
- 该组网站的另一个子集是在另一个平台上托管他们的邮件。
- 托管的第三个子集容易受到远程代码执行漏洞的影响。
- 在子集 (2)、(3)、(4) 的维恩图中,假设任何部分都可以是非空的。
垃圾邮件发送者在规避已安装的安全措施方面变得越来越有能力存在问题。拥有完整的代码执行权限,黑客可以绕过通常的 Linux 邮件堆栈,转而实现自己的电子邮件服务器,通过套接字代码直接与外部邮件服务器通信并发送大量垃圾邮件。
服务器是一台非常强大的机器,因此这种自由漫游代码可以发送足够多的垃圾邮件,从而引起微软和谷歌等大公司的注意。这些公司拥有自己的自制混淆专有系统,这些系统往往会基于 IP 进行阻止。我知道这是一件愚蠢的事情:IP 不等于一台独特的机器。显然,小型托管服务提供商对这些大公司政策无能为力,您也不能忽视它们;许多消费者(例如平台上网站的用户)将在大型提供商的平台上拥有电子邮件地址。
还涉及保密因素。大公司正在积极尝试与垃圾邮件发送者僵尸网络作斗争,因此他们不提供或提供很少的有关任何阻止的进一步信息,因此垃圾邮件发送者无法使用这些信息。通过发送带有“签名”的垃圾邮件,他们可能已经识别出特定的僵尸网络并将托管服务器标记为可疑的网络犯罪工具。这并非完全不合理,因为事实上这就是当时服务器的用途。
IPv4 地址耗尽意味着非共享主机对于这些小型网站来说只是一个不可选项。这在财务上是无法实现的。
笔记; 假设总会有一些易受攻击的站点,这是共享平台的固有弱点,并非每个客户的代码都同样安全。
在被黑客入侵后,客户当然会收到通知。标准程序是使站点离线并恢复一个干净的版本,要求开发人员在此之前修复安全问题。
尽管如此,仍然存在一个相当大的问题。许多网站中的一个小错误将有效地关闭整个服务器的电子邮件,并且通过解决而不是防止此类问题来重新恢复所有内容可能需要几天时间。随着网站变老,越来越多的网站开始使用相同的 IP,垃圾邮件发送者变得越来越有能力,随着时间的推移,情况会变得越来越糟。
虽然我能想到一些部分解决方案,但到目前为止,它们都无法保留我们提供的完整功能集。例如,我尝试阻止除 root 和受信任电子邮件用户之外的所有用户通过服务器防火墙通过标准电子邮件端口 (25) 的传出流量。这将完全防止我们的垃圾邮件问题,因为这意味着网站需要使用标准堆栈,并且在此标准堆栈上为外发邮件配置速率限制和垃圾邮件过滤器等内容很简单。
仍然可以通过的少量垃圾邮件不会让我们进入这些秘密 IP 阻止列表。
这适用于大多数网站;但不是所有的。如果与 (2) 结合使用,则子集 (3) 正在向工作中投入扳手。让我们举例说明:
我们的主机 (IP = H) 应该通过它的邮件服务器向微软主机 (IP = M) 发送消息。假设我们从“noreply@example.com”发送到“contact@example.com”。如果直接发送此消息,则一切正常。但是,当通过邮件服务器发送时,它需要 DNS 记录。但随后它尝试发送到本地主机(H),这失败了,因为(H)没有邮箱“联系人”,它应该只存在于微软主机上......
此外,简单地阻止这样的一切可能不适用于所有网站;有些人可能有自己的内置邮件引擎,尽管如果通过一些摆弄我们可以克服上述问题,我并不公正地告诉这些人修复他们的软件以使用正确的邮件程序。
我对解决这个难题的聪明(呃)方法的意见很感兴趣。