我们有一个 Debian Squeeze 服务器,运行一个相当标准的 LAMP 堆栈(过去它是使用 Howtoforge 上的完美服务器指南设置的,因此我们使用 ISPConfig 作为我们的后端管理面板),它在 MTA 方面已被很好地锁定(没有安装任何内容、没有 postfix、没有 EXIM 等)并且彻底禁用了 php mail() 函数,端口 25 被防火墙保护。
我们经常收到来自 MegaRBL 等公司的垃圾邮件警告,但会将我们的服务器 IP 识别为垃圾邮件来源
通常,我们会追踪被黑客入侵的 Wordpress 网站,在那里我们会看到一堆加密/混淆的脚本和其他垃圾,然后我们将其删除并希望获得最好的结果。
这种方法并不能让我满意,因为我正在疯狂地试图弄清楚他们是如何从这个服务器发送垃圾邮件的。我猜(这可能完全是错的)他们设法放入被黑的 Wordpress 网站的脚本本身就是邮件传输代理。显然,我无法深入了解他们到底在做什么,因为这些脚本是加密/模糊的。
我所有的谷歌搜索和研究总是指向 Postfix 或 mail() 函数和各种关于如何追踪和减轻来自这些来源的垃圾邮件的指南 - 但我确信所有这些东西都已从我们的服务器上删除。
所以我的问题有三个:
- 我们发现的这些混淆脚本是否实际上不需要我的服务器上安装的任何二进制文件的帮助就可以发送邮件?(例如 Postfix、sendmail 等等)
- 有什么方法可以记录/检测从我们的服务器发出的这种类型的流量?
- 我是不是漏掉了什么?Postfix 已被移除,我仔细检查了 PHP mail() 函数是否已禁用,我仔细检查了二进制文件以查找任何可能与邮件相关的内容并将其删除,但我担心自己可能只是个弱智,错过了一些显而易见的东西……
答案1
为此我们做了一些事情。
选项 1 如果您不希望任何电子邮件发出,请检查您的 OUTBOUND 防火墙是否设置为阻止 TCP/25,假设您不想发送电子邮件。
iptables -A OUTPUT -p tcp --dport 25 -j DENY
iptables-save
选项 2,安装 postfix,并添加 BCC 以获取已发送电子邮件的副本
postconf -e [email protected]
service postfix restart
选项 3,将所有出站流量重定向到 catch-all,有几个选项,所以搜索一下,我更喜欢使用 mailcatcher.me,还有其他几个,电子邮件捕获全部(域和子域)Postfix
Mailcatcher.me 您需要将出站邮件重定向到它,以及一个可以运行 ruby 的系统。
postconf -e relayhost=mailcatcherIP:1025
service postfix restart
选项 4,防火墙重定向,联系网络管理员并设置 NAT 规则,将出站 25 从 Web 系统的内部 IP 重定向到指向另一个系统或过滤器,例如出站过滤器https://www.spamexperts.com/services/outgoing-filtering
最后,作为补充信息,postfix 是一个 MTA,但是您不需要 MTA 来发送电子邮件,只需要能够在 TCP/25 上打开连接即可。
如果您可以远程登录到端口 25 上的 MX 记录,那么您就可以发送电子邮件(无需 postfix/sendmail/等)
如果您有一些使用 wordpress 的客户端需要允许发送电子邮件,建议他们使用 Sendgrid 或 Mailchimp 插件,他们可以通过 HTTPS 或客户端 SMTPS 端口使用 API 工具(提交 587)
答案2
查看 var/log 中的:maillog
制作您自己的 php 邮件脚本,看看它是否有效。大多数与邮件相关的任何事情都会显示在邮件日志中