Discourse 发送了 18K+ 封邮件?或者,我的服务器被黑了

我先坦白说,我完全不知道该怎么表述这个帖子,也不清楚需要提供什么信息才能获得帮助。我只知道 Discourse 发送了超过 18,000 封邮件,但仍有超过 7,000 封邮件发送失败(此前我的 Amazon SES 因退信率高达约 20% 而被冻结)。此外,系统似乎仍在尝试发送 500 多封邮件。

discorsesk1

编辑:我的论坛只有 8 名成员。

结论:尽管我从未安装过域名服务器,但 53 端口仍然处于开放状态。看来系统被入侵了(即使 Sidekiq 列出了所有进程,我仍然确信系统已被入侵)

我猜测可能是邮件或 Redis 长时间出现故障,今天修复后,系统发送了一大堆积压的邮件。

你可以查看“管理 > 邮件”部分,了解已发送的内容。

我每次去查看时,总共只发送了 23 封邮件。

编辑:此事发生的那天是 4 月 10 日(刚发现是 Discourse 发送了这些邮件),但上面没有任何一封来自 10 日的邮件。

那一定是其他什么东西发送了这些邮件。

这是最合理的解释。

我本来想说,我在服务器上只运行了 Discourse,没有其他东西,我是不是遭到了攻击或类似的情况?

另外刚发现这个,在 Sidekiq 仪表板的“重试”标签页下,参数都类似于这样:
{"type"=>"digest", "user_id"=>11, "current_site_id"=>"default"}

也许有人获取了你的 SMTP 密码,并从其他地方发送了邮件?或者他们入侵了你的服务器(它是否受密码保护,并且你没有安装 fail2ban?)诸如此类的问题。

Discourse 与此事几乎毫无关系。

你或许应该设置一台新服务器,并将 Discourse 迁移过去。

我也是这么想的,所以我去查了最后一次登录记录,显示是今年三月由我登录的。

这可能令人惊讶,但编辑日志并不困难,或者安装一个自动执行此操作的 rootkit 也很简单。你正在发送消息的地址在 Discourse 中并不存在,对吧?因此,消息并未发送。

几乎可以肯定,你已被黑客入侵。

你使用密码登录吗?你安装了 fail2ban 吗?

请搜索如何查看哪些端口是开放的,并检查除了 22、80 和 443 之外是否还有其他端口开放。

除了 22、80 和 443 端口外,唯一开放的端口是 53。我不了解 fail2ban,但我会去研究一下并尝试提升安全性。我是不是应该直接关闭 53 端口?

你可以看到是什么导致了问题。你没有安装名称服务器,这很可能是罪魁祸首。

你需要启动一个新服务器并迁移过去。你无法确定原服务器上有什么。一切都需要怀疑。

那备份文件呢?可以导入到那里吗?

您的 Discourse 备份文件应该是安全的。您甚至可以现在创建一个新的备份,以确保拥有所有数据。

好的,太棒了,谢谢你的帮助!

你有没有在任何地方发布过你的 app.yml 文件,或者分享过任何截图用于故障排查?

不,我从未在任何地方发布过我的 app.yml 文件或截图。

您首帖中的截图非常像 Sidekiq——它用于处理各种任务,而不仅仅是邮件。您提到的 1.8 万封邮件计数是否来自该截图?

确实如此,但这与 Amazon SES 报告的已发送邮件数量完全一致。

如果您遭到黑客攻击,黑客窃取您的凭证后通过 Sidekiq 发送邮件的可能性极低。

如果您查看 /admin/email/sent 中的已发送邮件日志,那里是否有任何线索能解释为何数量如此庞大?

我已经关闭了服务器,但如果你指的是 Discourse 发送的邮件,那么: