我在远程位置运行 Ubuntu 虚拟服务器,出于 web-dev 和其他各种原因,有几个人可以通过 SSH 访问该服务器。设置服务器时,我设置了各种参数,包括“TMOUT=1800”,这会导致所有 SSH 会话在 30 分钟不活动后终止。
我的一位网络开发人员经常要求我关闭超时功能,因为他“不断从服务器退出”并且不喜欢每 30 分钟输入一次密码。
出于安全原因,我启用了超时功能,以不允许 SSH 会话保持打开状态的时间超过需要的时间,因为它是与具有 root 访问权限的服务器的开放连接。
开发人员跟我争论说,一直保持连接打开是完全没问题的,但我认为这不是一件好事。
我是否应该关闭 SSH 超时功能(可以让非活动 SSH 连接保持打开状态吗)?还是我应该告诉他自己处理这个问题?理由是什么?
答案1
我认为,保持连接开放的风险并不比一开始就使用 SSH 的风险更大。
无论如何,有人可能会认为重复连接的风险更大。但这种说法只是理论上的,因为网络上的连接尝试可能会被嗅探到。
保持连接打开状态的更现实的主要风险是客户端 PC 可能会在连接打开时受到威胁。因此,根据使用模式和主机系统上数据的敏感度,将超时设置为合理的时间段(如 4、8 或 12 小时)是明智的。
4 小时可完成正常的半天工作。8 小时为名义工作日,12 小时为更实际的工作日。在我目前正在帮助指定的远程连接服务上,我刚刚要求将远程连接保持打开 12 小时而不是 8 小时,以匹配更正常的工作日。我真的不认为这会增加多少风险,因为客户端 PC 在 5 分钟不活动后会自动锁定,并且有一条常规指令要求在离开办公桌时手动锁定 PC。
答案2
如果 ssh 用户具有超级用户权限。那么问题就变成了“用户是否有屏幕锁定或其他安全措施来阻止其他人坐在他们的计算机前并访问他们的 shell?”。
在开放式办公室中,可能会有同事坐在另一位员工的办公桌前关闭计算机并无意中关闭服务器。
心怀不轨的用户可能会为自己创建用户帐户或更改现有帐户的密码,以便以后获得访问权限。
等等...等等...
因此,如果工作站没有受到未经授权人员的保护,那么长时间保持 ssh 连接打开确实存在安全问题。
我认为,问问开发人员是否愿意对公司所有员工负责,如果任何无人看管的工作站发生黑客攻击,他是否将成为造成损害的唯一责任人!?
不存在密码窥探或 ssh 拦截的风险,通过设置超时,您可以保护公司免受不安全的工作站和机会主义者的攻击,他们会利用具有破坏性权限的非监督 shell。
答案3
如果安全是一个因素,那么不,您不应该禁用超时。开发人员的便利性并不比基本安全的需求更重要。始终保持连接打开是不行的。他是否一直坐在办公桌前保持连接?如果他离开一小时去吃午饭,而有人坐下来并保持连接打开怎么办?