当使用 SSH 登录时 chroot 用户子集时创建 chroot 的首选方法是什么?

当使用 SSH 登录时 chroot 用户子集时创建 chroot 的首选方法是什么?

通过使用 libpam-chroot,当用户使用 SSH 登录时,可以根据用户名轻松地 chroot 用户子集。

创建此 chroot 和 libpam-chroot 设置的好方法是什么。我的目标之一是 chrooted 用户仅在 chroot 环境中为人所知(chroot 之外不会存储任何密码或任何内容)。在我之前的设置中,我需要在/etc/shadow和之间手动更新用户密码/var/my_chroot/etc/shadow。这可能吗?

或者有没有一种完全不同的方法来实现这种子系统,而不需要完全不同的另一台(虚拟)计算机(我没有任何备用硬件可提供,而且我只有 1 个网络接口)?还是说虚拟化才是正确答案?

答案1

确保UsePAM yes在 中已安装/etc/ssh/sshd_config,并设置一个 PAM 模块,该模块可从 chroot 内部某个位置读取用户数据库。没有简单的方法可以读取pam_unix不同的passwdshadow文件,但您可以pam_ldap改为使用并在 chroot 内部运行 LDAP 服务器(或者更好的是,在 chroot 外部,将其数据存储在 下的某个位置/var)。

至于是否使用虚拟化,这取决于您对 chrooting 的期望。它无法为具有 shell 访问权限的用户提供太多安全性。例如,本地 root 漏洞可完全访问整个机器;本地用户可以通过在 chroot 内部进行窥探来窥探 chroot 之外的大量信息/proc;chroot 内部使用的网络端口在外部不可用;...

相关内容