我的 SSH 服务器被入侵了吗?如果被入侵了,我应该如何应对?采取什么措施?

我的 SSH 服务器被入侵了吗?如果被入侵了,我应该如何应对?采取什么措施?

我最近启用了 ssh 对我的计算机的访问,以便与我的同学一起开展一个小组项目。我阅读了在 ubuntu 上设置 ssh 的指南,并尝试遵循良好的安全做法。我禁用了密码验证,因此唯一的登录方式是使用 RSA 密钥,并且我在 authorized_keys 文件中只列出了 2 个密钥:我自己的(在测试 ssh 是否正常工作时使用它)和一个朋友的密钥。

今天晚上,我很好奇,想知道当我使用我的系统时,我的朋友是否通过 ssh 进入了我的系统,所以我在 Google 上搜索了一个命令,该命令可以告诉我是否有人通过 ssh 进入,如果有,是谁。我得到的结果是:

sudo netstat -tnpa | grep ESTABLISHED.*sshd

我尝试了一下,输出结果如下:

tcp        0      0 192.168.1.86:22         59.47.0.150:44728       ESTABLISHED 7416/sshd: [accepte

这看起来不对劲。我联系了我的朋友,他向我保证他没有登录。我再次尝试了该命令,然后看到:

tcp        0      0 192.168.1.86:22         59.47.0.150:44728       ESTABLISHED 7416/sshd: root [pr

这时,我对“root”这个词感到有点害怕,于是给一个比我更了解这个东西的朋友发了一条消息。他告诉我试试:

 ps aux | grep ssh

输出:

root      3702  0.0  0.0  61364  2872 ?        Ss   Apr12   0:00 /usr/sbin/sshd -D
root      7473  0.0  0.0 112692  3920 ?        Ss   20:46   0:00 sshd: root [priv]   
sshd      7474  0.0  0.0  62784  1516 ?        S    20:46   0:00 sshd: root [net]    
sid       7476  0.0  0.0  22476   936 pts/1    S+   20:46   0:00 grep --color=auto ssh

现在我彻底吓坏了,所以尽管我想等一会儿看看是否能找出谁登录了,但我还是决定sudo stop ssh

经过更多的谷歌搜索,我发现59.47.0.150是一个位于中国沈阳附近的 IP,并且似乎以恶意攻击

我要问你们的问题是:

  1. 我们能肯定地说来自中国的 IP 以某种方式通过 SSH 进入了我的计算机吗?即使它只接受 RSA 密钥授权?

  2. 我们能肯定地说他/她也拥有 root 访问权限吗?在我的 ssh-config 中,我使用的是默认设置PermitRootLogin without-password。我最初以为这意味着不允许 root 登录(我知道这两者听起来很矛盾,但我在谷歌上搜索了一下,这就是我得到的结果)

  3. 如果是,怎么办?

  4. 有什么方法可以让我了解目前造成的损害有多大?

  5. 我以后该如何防范这种情况?我最终仍需要运行 ssh 来完成我的小组项目。

谢谢你尽你所能的帮助!

编辑:根据 saiarcot895 和 Steven 的建议,我检查了 auth.log,其中重复了以下几行:

    Apr 13 20:43:50 PrometheusU sshd[7392]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=59.47.0.150  user=root
Apr 13 20:43:55 PrometheusU sshd[7394]: reverse mapping checking getaddrinfo for 150.0.47.59.broad.bx.ln.dynamic.163data.com.cn [59.47.0.150] failed - POSSIBLE BREAK-IN ATTEMPT!
Apr 13 20:43:55 PrometheusU sshd[7394]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=59.47.0.150  user=root
Apr 13 20:43:58 PrometheusU sshd[7394]: Failed password for root from 59.47.0.150 port 54813 ssh2
Apr 13 20:44:03 PrometheusU sshd[7394]: message repeated 2 times: [ Failed password for root from 59.47.0.150 port 54813 ssh2]
Apr 13 20:44:04 PrometheusU sshd[7394]: Received disconnect from 59.47.0.150: 11:  [preauth]

这是否意味着攻击者已进入我的系统但无法登录 root 权限,或者他/她正尝试直接访问 root 权限,但失败了,并且根本没有访问任何内容?

答案1

我们能肯定地说来自中国的 IP 以某种方式通过 SSH 进入了我的计算机吗?即使它只接受 RSA 密钥授权?

他们不太可能通过身份验证,除非他们设法获得有效的密钥。尝试从您控制的主机进行连接,而无需密钥,并检查正在运行的进程。它们应该与您看到的类似。进程[net]正在运行的事实sshd表明他们没有成功登录。

我们能肯定地说他/她也拥有 root 权限吗?在我的 ssh-config 中,我使用的是默认设置PermitRootLogin without-password。我原本以为这意味着不允许 root 登录(我知道这两者听起来很矛盾,但我在谷歌上搜索了一下,这就是我得到的结果)

您使用的选项允许以 root 身份登录,但禁用 root 密码验证。除非您确实需要,否则最好不要允许任何 root 通过 SSH 登录。如果确实需要,请尽可能严格地限制访问。除非您启用了密钥,否则您不太可能使用 SSH 登录 root。此选项without-password禁用基于密码的登录,但不会禁用密码验证方法。

如果是,怎么办?

您可以检查身份验证日志以查看是否有任何身份验证成功。但是,如果成功,他们可能已经覆盖了证据。

有什么方法可以让我了解目前造成的损害有多大?

运行 rootkit 检查程序并离线验证文件签名应该可以显示是否有文件被盗用。在安全的情况下获取文件签名并将其离线存储将为您提供基准。

我以后该如何防范这种情况?我最终仍需要运行 ssh 来完成我的小组项目。

sshd 支持使用 tcpwrappers 来限制访问。构建一个规则集,仅允许来自您预期流量的地址范围的访问。

答案2

发生了许多 ssh 暴力攻击。可能您有一个过时的 ssh 包,而他们就是通过这种方式入侵的。

检查日志中是否存在 ssh 失败,他可能只是对你进行暴力破解。

转到 /tmp 并从 ls -al 发布其输出,如果有 root kit,它可能会显示在那里。

您可以在 ssh 中设置允许用户,并且 fail2ban 同样有用。

如果可能的话,在 fstab 中将 /tmp 和 /home 设置为不可执行将会很有帮助。

答案3

如果只是暴力攻击填满日志,只需更改端口即可。

大多数脚本都很愚蠢,而且有足够多的服务器监听端口 22。我总是将我的端口设置为 30200 或 225。这可以在

/etc/ssh/sshd.conf

只需更改端口号并重新启动守护进程。

然后可以通过 ssh 的附加选项访问系统

ssh -p224 [email protected]

Ma 日志总是被填满,我改变了端口,噪音就消失了。

相关内容