可能被劫持的SSH会话和SSH最佳做法


14

我现在有点吓坏了。我正在SSH进入最近已调试的远程服务器。我正在以此为根。我已经安装了fail2ban,并且日志中有大量被禁止的IP。

上次登录时,我发现我的终端确实很慢,然后我的互联网连接断开了。当我大约5分钟后买回它时,我重新登录服务器并做了一个“ who”操作,并意识到有两个root用户登录。我本以为,如果我的连接终止了,从上次会话开始的过程将是在服务器上停止了?

当我第一次断开连接时,连接以“写入失败:管道破裂”结束。我用另一个根杀死了bash会话。我对SSH安全性了解不多,但是可以劫持会话吗?有没有办法检查这个?我需要继续通过ssh登录,应采取哪些预防措施?如果我不知何故要通过代理服务器到达我的服务器(就像中间攻击中的一个人),他们会劫持我的ssh会话吗?

Answers:


40

根登录名可能是曾经是您的悬挂shell会话。您的服务器可能还会因尝试所有登录而使dDOS崩溃。

锁定SSH。不允许root登录,那些试图强行使用本机的请求将立即失败(占用更少的资源)。以普通用户身份登录,并通过提升权限sudo,无论如何您应该这样做。还要将SSH登录限制在客户端IP列表中,以使不良的计算机甚至无法尝试登录。

使用SSH密钥而不是密码进行用户登录。它们更易于处理,并且可以用密码保护自己,以防万一您将私钥意外地放到错误的地方(给您时间来替换它们并使旧的失效)。正如评论中提到的@EEAA一样,如果希望限制客户端仅使用密钥而不是密码和密钥,则还必须禁用基于密码的身份验证。

如果蒙古族继续破坏您的城墙,则可以将SSH移至其他高端口(如@AustinBurke所指,在1024以下-以便使用特权端口)而不是22。这将减少该端口上的流量这对您来说是个问题(大多数机器人都不十分优雅,因此只能尝试使用22)。它不会阻止尝试使用端口22甚至扫描计算机以查看正在SSH上侦听的端口的情况,并且在大多数情况下是不必要的麻烦。但这可能会有所帮助。

其他人也许可以提供更多提示,但是对于面向公众的SSH服务器,这些都是相当通用的安全措施。


22
仅使用密钥是不够的。还必须禁用密码身份验证。
EEAA

4
@marcelm“ 日志中大量被禁止的IP ”是否不暗示这可能正在发生?
TripeHound '17

4
@tripehound不,不是。它没有说明所消耗的相对资源。
marcelm

3
但是这暗示了这种效果,@ marcelm。
与莫妮卡(Monica)进行的轻量级比赛

4
尽管在这个宇宙中这是可行的,但是ssh是相当安全的。您当然可以实时获取该流量并将其存储为加密状态,但是使用Diffie-Hellman密钥交换来建立加密通道。如果您同时拥有用于身份验证的私有和公共ssh密钥,则根本无法破解,因为流密钥在会话期间从未进行过通信。等到有人破解该流时,我们都会死了。
后台打印程序
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.