在/ etc / ssh / sshd_config中,有一个名为AcceptEnv的选项,允许ssh客户端发送环境变量.我需要能够发送大量的环境变量.这些更改来自客户端的每个连接,因此将它们放在服务器上的登录脚本中将更加困难.
我读过“AcceptEnv *”是不安全的.在我尝试获取所有试图设置的环境变量的列表之前,我想了解为什么.
为什么它被认为是不安全的?我能举个例子吗?
解决方法
Enabling environment processing may enable users to bypass access restrictions in some configurations using mechanisms such as LD_PRELOAD.
并非所有sshd_config手册版都提到了这一点.如果事先更改了环境变量,并且使用此指定的新库执行了某些特权进程,则可能会导致问题.
查看http://www.dankalia.com/tutor/01005/0100501004.htm并搜索“LD_PRELOAD Exploit”.抱歉,该页面没有锚链接.
另请参见StackOverflow问题,“What is the LD_PRELOAD trick?”
在连接之后设置环境变量很好,但是当这些变量被由AcceptEnv设置的ssh守护进程解释时,可能会出现Bad Things.