我运营一个小型服务器,为大约 100 个独立客户托管网站。我曾遇到过合法邮件服务器出现在 DNS 黑名单上的问题,因此我需要查明我的众多客户中是否有某个客户在某个地方使用了恶意脚本,通过 IIS6 中的 SMTP 虚拟服务器发送垃圾邮件。
我的电子邮件发送正确,我将中继设置为仅允许 127.0.0.1,因此我知道此框中的某个地方有人允许坏邮件通过该服务。我已启用 SMTP 服务上的所有日志记录,但它没有给我任何线索,让我知道哪个脚本(最有可能是经典 ASP VBScript 应用程序)是罪魁祸首。
答案1
使用 IIS6 和内置 SMTP 服务器,我认为您的运气不佳。内置 SMTP 服务器的功能非常有限。除了编写某种插件(您可以这样做)或购买可以实现 SMTP 消息信封扫描和记录的插件外,您不会获得比现在更多的信息。
正如 jdw 在其评论中提到的那样;我过去曾将 exim 用于此特定目的,我发现基于 linux 的 MTA 对于此类事情来说更加灵活和强大。但如果您只有一个 IIS 框,那么这对您没有帮助。
答案2
由于传统 ASP 是纯文本,您可以在服务器上进行文本搜索,以查找用于发送邮件的常见 ASP 命令,例如
CreateObject("CDO.Message")
从那里您应该能够看到脚本如何设置“发件人”地址。我想说的是,任何具有动态发件人值的脚本,或者如果您知道垃圾邮件一直来自同一个电子邮件地址,只需搜索该电子邮件地址即可。
展望未来,我强烈建议仅使用经过身份验证的 SMTP。
答案3
这完全是理论上的,但我不久前读过一篇关于类似情况的文章。您应该能够使用在环回地址上配置的 Wireshark 类型的产品来获取包含对默认 SMTP 连接器的所有引用的数据包捕获。可能值得研究。