我现在有点紧张。我正在通过 SSH 连接到我最近委托的远程服务器。我以 root 身份执行此操作。我安装了 fail2ban,日志中有大量被禁止的 IP。
上次登录时,我发现我的终端非常滞后,然后我的互联网连接中断了。当我在大约 5 分钟后恢复时,我重新登录服务器并执行了“谁”操作,然后意识到有两个 root 用户登录了。我以为如果我的连接终止,服务器上上次会话的进程就会停止吗?
当我第一次断开连接时,连接以“写入失败:管道损坏”结束。我终止了与另一个 root 的 bash 会话。我对 ssh 安全性了解不多,但是会话会被劫持吗?有没有办法检查?我需要继续通过 ssh 登录,我应该采取什么预防措施?如果我以某种方式通过代理访问我的服务器(就像中间人攻击一样),他们会劫持我的 ssh 会话吗?
答案1
根登录可能只是您曾经的 shell 会话。您的服务器也可能因为所有尝试登录而遭受 dDOS 攻击。
锁定 SSH。不允许 root 登录,那些试图暴力破解此机器的请求将立即失败(占用更少的资源)。以普通用户身份登录并通过 提升权限sudo
,这是您应该做的做法。同时将 SSH 登录限制在客户端 IP 列表中,以便不受欢迎的机器甚至无法尝试登录。
使用 SSH 密钥而不是密码进行用户登录。它们更容易处理,并且可以自己设置密码保护,以防您不小心将私钥提供给错误的地方(让您有时间更换它们并使旧密钥无效)。正如 @EEAA 在评论中提到的,如果您希望限制客户端仅使用密钥而不是同时使用密码和密钥,您还必须禁用基于密码的身份验证。
如果蒙古部族继续攻击您的城墙,也许可以将 SSH 移至另一个高端口(低于 1024,正如@AustinBurke 指出的那样 - 以便使用特权端口)而不是 22。如果这对您来说是一个问题,这将减少该端口上的流量(大多数机器人都不是很优雅,所以它们只会尝试 22)。它不会阻止尝试端口 22 或甚至扫描您的机器以查看哪个端口正在监听 SSH,在大多数情况下这是一种不必要的不便。但它可能会有所帮助。
其他人可能能够提供更多提示,但对于面向公众的 SSH 服务器来说,这些是相当通用的安全措施。