昨天启动了一个 droplet,并配置了我的本地主机文件以将我的域指向 IP。可以正常连接,甚至通过 cloudflare 临时迁移 A 记录来安装 lets encrypt 证书。
今天早上,当我尝试登录 Wordpress 安装(IP 104.248.162.53)时,服务突然停止工作。
我仍然可以通过 SSH 登陆并运行以下命令:
systemctl status sshd
得到的回应是:
Dec 20 12:33:07 ggs-live-1gb sshd[1204]: Invalid user mc from 94.25.38.210 port 44058
Dec 20 12:33:07 ggs-live-1gb sshd[1204]: Received disconnect from 94.25.38.210 port 44058:11: Bye Bye [preauth]
Dec 20 12:33:07 ggs-live-1gb sshd[1204]: Disconnected from invalid user mc 94.25.38.210 port 44058 [preauth]
Dec 20 12:34:00 ggs-live-1gb sshd[1214]: Received disconnect from 122.226.181.166 port 46578:11: [preauth]
Dec 20 12:34:00 ggs-live-1gb sshd[1214]: Disconnected from authenticating user root 122.226.181.166 port 46578 [preauth]
Dec 20 12:34:37 ggs-live-1gb sshd[1216]: Accepted publickey for root from 81.133.250.129 port 58845 ssh2: RSA SHA256:(removed)
Dec 20 12:34:37 ggs-live-1gb sshd[1216]: pam_unix(sshd:session): session opened for user root by (uid=0)
Dec 20 12:36:16 ggs-live-1gb sshd[1361]: Invalid user vbox from 178.128.97.193 port 33879
Dec 20 12:36:17 ggs-live-1gb sshd[1361]: Received disconnect from 178.128.97.193 port 33879:11: Bye Bye [preauth]
Dec 20 12:36:17 ggs-live-1gb sshd[1361]: Disconnected from invalid user vbox 178.128.97.193 port 33879 [preauth]
不确定“94.25.38.210”或“122.226.181.166”是谁......这是一次攻击吗?
答案1
您的 droplet 允许任何人通过 SSH 进行访问,因此基本上有人会扫描整个 IP 范围并进行暴力攻击,希望获得用户名/密码匹配并访问您的服务器。您应该安装类似 fail2ban 的程序来阻止这些攻击。此外,尽管出于以下原因*不建议这样做,但您可以更改 SSH 运行的端口:
客户端支持:连接到您服务器的每个人都需要知道并使用更改后的端口。如果您处于管理严格的环境中,则可以将此配置下推到客户端,或者如果您的用户数量足够少,则应该很容易进行通信。
文档例外:大多数网络设备(如防火墙和 IDS)都预先设置为在公共端口上运行公共服务。此设备上与此服务相关的任何防火墙规则都需要检查,并可能进行修改。同样,IDS 签名也将被调整,以便仅在端口 22 上执行 SSH 检查。每次更新签名时,您都需要使用新端口修改每个签名。(作为数据点,目前有 136 个 VRT 和 ET snort 签名涉及 SSH)。
系统保护:现代 Linux 通常附带内核层 MAC 和/或 RBAC 系统(例如基于 RedHat 的 SELinux 或基于 Debian 的 AppAmor),这些系统旨在仅允许应用程序执行其预期执行的操作。这些操作可能包括访问 /etc/hosts 文件、写入特定文件或在网络上发送数据包。根据此系统的配置方式,默认情况下,它可能禁止 sshd 绑定到非标准端口。您需要维护允许它的本地策略。
其他方监控:如果您有外部信息安全部门或外包监控,则需要让他们知道这一变化。在执行安全评估或分析日志以查找安全威胁时,如果我看到 SSH 服务器在非标准端口上运行(或非 UNIX/Linux 上的 SSH 服务器),我会将其视为潜在的后门,并调用事件处理程序中受损系统的部分。有时,在给管理员打电话并被告知这是合法的,然后我会更新文档,5 分钟内问题就会得到解决,其他时候,问题真的会得到解决。无论如何,这可能会导致您的停机,或者至少,当您接听电话并听到“嗨,我是信息安全办公室的鲍勃。我有几个问题要问您”时,您会感到紧张。
答案2
Fail2ban 是作为 droplet 的一部分自动安装的。通过以下命令停止它:
sudo service fail2ban stop
让一切恢复生机……
现在我需要正确配置 fail2ban 以免这种情况再次发生。