ssh中PermitUserEnvironment的安全风险

Rob*_*res 11 security ssh environment-variables

为了将 env 变量传递给 ssh shell,我已经阅读了很多关于PermitUserEnvironment和 文件的使用的帖子~/.ssh/environment。官方sshd 文档和其他一些资源暗示了这样做的一些安全风险。

启用环境处理可能使用户能够使用 LD_PRELOAD 等机制绕过某些配置中的访问限制。

激活可能存在哪些安全问题PermitUserEnvironment?我希望在这些环境变量中保存数据库连接详细信息,这是可取的吗?

lar*_*sks 16

首先,如果您不想对用户访问限制做任何花哨的事情——也就是说,如果您提供交互式 shell 访问——那么允许使用该文件的额外安全风险可能为零.ssh/environment,因为任何用户可以使用该文件完成他们也可以在他们的 shell 中进行交互。

启用环境处理可能使用户能够使用 LD_PRELOAD 等机制绕过某些配置中的访问限制。

如果您使用 SSH 强制命令来限制人们可以通过 ssh 执行的操作(例如,如果您限制人们只能使用sftpscp),则允许某人设置诸如LD_PRELOAD(甚至可能PATH)之类的环境变量将允许他们劫持您的通过用自己的代码替换基本库调用来限制。另一方面,如果您.ssh/environment代表您的用户创建并且他们无法以其他方式管理它,那么您的风险相对较小。

如果不了解有关您的特定用例的更多信息,就很难提供明确的答案。