我现在有点吓坏了。 我正在使用最近委托的远程服务器进行SSH连接。 我以root身份执行此操作。 我已经安装了fail2ban,并在日志中有大量被禁止的IP。
上次login时,我注意到我的terminal真的很慢,然后我的互联网连接断开了。 当我在5分钟左右的时间内购买它时,我重新login到服务器并做了一个“who”,意识到有两个root用户login了。我想如果我的连接终止了,那么上一次会话的过程将会是停在服务器上?
当我第一次断开连接时,连接以“写入失败:断开的pipe道”结束。 我杀了与其他根的bash会议。 我不太了解ssh的安全性,但会话会被劫持吗? 有没有办法检查这个? 我需要通过ssh继续login,我应该采取哪些预防措施? 如果我以某种方式通过代理到达我的服务器(像中间人攻击的人),他们可以劫持我的SSH会话吗?
根login可能是曾经是你的悬空的shell会话。 您的服务器也可能获得dDOS的所有尝试login锤击它。
lockingSSH。 不要允许root用户login,那些试图暴力破解这个机器的请求将立即失败(占用的资源要less得多)。 以普通用户身份login并通过sudo
提升权限,反正你应该做的练习。 还要将SSHlogin限制在客户端IP列表中,这样不友好的机器甚至不能尝试login。
使用SSH密钥而不是密码进行用户login。 他们更容易处理,并可以自己的密码保护,以防万一你不小心把一个私人密码输出到错误的地方(给你时间去replace它们,并使旧的无效)。 如注释中提到的@EEAA,如果您希望限制客户端只使用密钥而不是密码和密钥,则还必须禁用基于密码的身份validation。
如果蒙古族继续击溃你的城墙,也许可以把SSH移到一个不同的高端口(1024以下,就像@AustinBurke指出的那样 – 为了使用特权端口),而不是22。对你来说是一个问题(大多数机器人不是很优雅,所以他们只会尝试22)。 它不会阻止尝试使用端口22的事情,甚至无法扫描您的机器以查看SSH上侦听的端口,并且在大多数情况下是不必要的麻烦。 但它可能有帮助。
其他人可能会提供更多的提示,但是这些对于面向公众的SSH服务器来说是相当通用的安全措施。