让我向你稍微解释一下情况。
同一台服务器上托管着两个网站,example1.com 和 example2.com。假设 Example2 被黑客入侵,攻击者编写了一个 PHP 函数来使用 PHP 邮件函数或 sendmail 发送电子邮件,并且他使用 @example1.com 域地址发送电子邮件。SPF 和 DKIM 记录会将来自 example2.com 脚本的外发邮件识别为合法邮件,因为 SPF 记录指向正确的服务器地址,对吗?
那么.. 是否可以阻止托管在您自己的私人服务器上的网站使用其他托管域名发送电子邮件(通过 PHP 邮件或 sendmail)?
答案1
根据 MTA,可以使用各种选项。我最熟悉的是 Exim4,它提供了许多选项:
- 要求对使用 Web 服务器的用户 ID 发送的所有邮件进行身份验证。
- 阻止通过未经身份验证的 IP 连接发送消息。您可能希望允许消息转发。
- 限制发送消息的速率。这可以基于多种因素。
上述内容并未解决脚本可以查找目标的 MX 并绕过邮件服务器的问题。这样会缺少 DKIM 签名,但 DKIM 经常/通常配置不正确。因此,我距离使用 DKIM 进行电子邮件验证还差得很远。DMARC 有助于那些发布策略但尚未广泛部署的域。
在 Linux 上,您可以使用防火墙规则防止邮件服务器被绕过。可以根据用户过滤流量,以便只有邮件服务器用户 ID 才允许在端口 25 上发送流量。您可能希望允许端口 587 上的流量,因为这需要身份验证。