OpenSSH ChrootDirectory 手册页关于安全性的备注

OpenSSH ChrootDirectory 手册页关于安全性的备注

在我的系统的 sshd_config(5) 手册页中,我在有关部分发现了以下注释ChrootDirectory

为了安全起见,防止目录层次结构被系统上的其他进程(尤其是 jail 之外的进程)修改非常重要。配置错误可能会导致 sshd(8) 无法检测到的不安全环境。

如果某个外部进程对目录层次结构进行了修改,我可以在哪里阅读有关相关漏洞的信息?

我正在考虑建立一个 SFTP 服务器,我可以在其中放置一些文件与外部用户共享,并限制每个用户对特定目标目录的访问。

虽然这些用户只能使用 SFTP,并且只能访问这些目录(感谢ChrootDirectory),但我仍然可以不时地将文件放到位,这将通过以下方式实现:系统上的其他进程这将是监狱外

我想知道这个简单的用例是否也会导致一些漏洞——任何线索都将不胜感激!

答案1

需要所有者和组(“在会话启动时,sshd(8) 检查路径名的所有组件是否都是根拥有的目录chrootdirectoryroot并且其他任何用户或组都无法写入。”)。

SFTP 是最简单的配置之一,但设置目录权限并创建具有权限的755子目录,例如,其中仅适用于需要访问的进程的用户。775groupgroup

drwxr-xr-x root root         /var/chrootdir
drwxrwxr-x root processgroup /var/chrootdir/sftpdrop

如果无法信任这些进程来将文件保存到该位置,则可以使用不同的进程,甚至是 cron 作业,来将文件保存在传输目录中。

根据不同的经验,这些类型的安全问题可能会得到很多回应,但在我看来,明显的问题是某个进程在 chroot 目录中保存了不应该被 chrooted 用户使用的信息,或者读取了 chrootdirectory 中可以被 chrooted 用户修改的信息。

相关内容