我需要警告,登录到很少人的机器上来执行维护任务,但有时机器可能在防火墙或NAT的后面。
我这样做的方式是给用户建议如何使用SSH登录到我的系统,以便启用反向隧道,比如“使用命令ssh -R 12345:localhost:22 uremonte@my.own.site.com并使用密码xyzzy登录”。
现在,这很好,但为了安全起见,我需要去禁用用户uremonte的ssh登录,当我再次需要的时候记得重新启用它,否则有人可能会登录到我的管理前端机器不想要的,或者说合法的用户可能会试图在我使用隧道的时候乱搞。
我想把/etc/passwd中的用户shell设置为/bin/cat,这样任何登录的人都没有机会在shell上做任何事情,而且反向隧道的连接仍然会保持活跃。这似乎是可以的,但我想确保这不会打孔在我的系统。
所以,问题是,这绝对安全吗?有什么办法能让登录这个账户的人脱离这个陷阱吗?
发布于 2012-07-29 18:00:46
这是更改shell的一个相当标准的理由。通常使用/bin/false或其他shell(如/bin/cat )。
通常,您无法逃离/bin/cat,而且cat不太可能存在安全漏洞,但其他方法可能仍然有效,比如创建DoS或绕过防火墙规则。
另一个可能更严重的问题是,如果您将internal-sftp模块用于sftp。这将允许以/bin/cat为shell的用户使用sftp访问您的文件系统并浏览其内容。
对于您的特定用例,我建议使用隧道或vpns,而不是向客户提供ssh访问。
https://unix.stackexchange.com/questions/44248
复制相似问题