使用 /bin/cat 作为受限用户的 shell 是否安全?

使用 /bin/cat 作为受限用户的 shell 是否安全?

我需要远程登录少数人的机器来执行维护任务,但有时这些机器可能位于防火墙或 NAT 后面。

我一直这样做的方式是向用户提供有关如何使用 SSH 登录我的系统的建议,以便启用反向隧道,例如“使用命令并使用密码登录”。ssh -R 12345:localhost:22 [email protected]xyzzy

现在,这工作正常,但为了安全起见,我需要uremonte在完成后禁用用户的 ssh 登录,并记住在我再次需要时重新启用它,否则有人可能会登录到我的管理前端机器不需要,或者说合法用户可能会在我使用隧道时尝试乱搞。

我考虑将用户 shell 设置为/etc/passwd/bin/cat这样任何登录的人都没有机会在 shell 上执行任何操作,并且连接仍然会在反向隧道中保持活动状态。这似乎没问题,但我想确保这不会在我的系统中造成任何漏洞。

那么问题来了,这绝对安全吗?登录此帐户的人有什么办法可以摆脱猫陷阱吗?

答案1

这是更换外壳的一个非常标准的原因。通常使用/bin/false或其他类似的外壳。/bin/cat

通常,您无法逃脱/bin/cat,并且不太可能cat存在安全错误,但其他方法可能仍然有效,例如创建拒绝服务或绕过防火墙规则。

另一个可能更严重的问题是,如果您将该internal-sftp模块用于sftp.这将允许/bin/cat使用 as shell的用户sftp访问您的文件系统并浏览其内容。

对于您的特定用例,我建议使用隧道或 VPN,而不是为您的客户提供 ssh 访问权限。

相关内容