当我今天早上登录时,我运行了 netstat -plant 并在 22 端口上发现了几个来自中国和法国的已建立连接。
你看到他们多久了?
如果您在 Internet 上有一台 SSH 服务器,人们将不断地扫描它并尝试对常用密码进行字典攻击。因此系统将连接,尝试多个密码,并在尝试之间强制延迟,因为您的系统想要限制暴力攻击。
这意味着 TCP 连接“建立”了几秒钟甚至几分钟。它们不是经过身份验证的 SSH 会话,它们只是 TCP 连接。
来,看:
$ netstat -tn | grep :22 | egrep -v "[my address]"
tcp 0 1080 192.168.1.2:22 123.183.209.136:25690 ESTABLISHED
tcp 0 1 192.168.1.2:22 123.183.209.136:40117 FIN_WAIT1
几分钟后:
$ netstat -tn | grep :22
tcp 0 1080 192.168.1.2:22 123.183.209.136:48456 ESTABLISHED
在第一个快照中,我们看到有一个已建立的会话,而一个仍在被拆除。几分钟后,有一个新会话(注意客户端端口已更改为 48456)。所以这个人不断地打开一个 TCP 连接,试图进行身份验证,当这个连接因尝试次数过多而关闭时,他们只会打开另一个连接。
我很难相信一个 4096 位的 rsa 密钥可以在一个晚上的时间内被破解。
是否有任何利用/漏洞可用于规避 OpenSSH 的基于密钥的身份验证?
基于密钥的身份验证是允许使用 SSH 访问的最佳选择吗?有哪些替代方案?
不要惊慌。观察连接;除非您在很长一段时间内看到最后一个,否则您可能不必担心。
您还可以检查last输出以查看是否有人实际登录,并关联他们的源地址(例如,不要担心从您登录的 IP 登录):
$ last
gowenfawr pts/0 192.168.1.3 Thu Aug 3 18:55 still logged in
gowenfawr pts/0 172.16.43.21 Thu Aug 3 03:29 - 03:29 (00:00)
gowenfawr pts/0 172.16.43.21 Thu Aug 3 03:19 - 03:29 (00:09)
gowenfawr pts/0 172.16.43.21 Thu Aug 3 03:04 - 03:06 (00:02)
gowenfawr pts/1 192.168.1.3 Wed Aug 2 19:44 - 21:09 (01:25)
wtmp begins Wed Aug 2 19:44:26 2017
当然,如果有人确实last破坏了您的系统,那么您无论如何都无法信任netstat。