让用户通过 SSH 进入受控环境

让用户通过 SSH 进入受控环境

假设我的系统(Ubuntu 16.04)上有一个用户。

有没有办法确保它只能通过 SSH 进入某种虚拟环境,但让它认为它具有 sudo 权限?

Linux 命名空间能帮上忙吗?如何在从 ssh 连接的用户中应用 chroot 或命名空间?

编辑:假设 telnet 被禁用,除了 SSH 之外还有其他方法可以远程访问我的机器吗?

答案1

chroot如果用户是 root,则对安全性毫无用处(但对于其他原因,如运行需要它的程序,则没问题),因为更改当前的 chroot 需要 root 权限。因此,被chroot'ed root 用户只需执行 a 即可chroot /退出。

在 Linux 中,LXC 利用命名空间来有效地创建轻量级虚拟机。几年前我尝试过这种方法,并相信 root 可以通过访问/proc文件系统来摆脱 LXC,文件系统提供了创建和管理现有容器的接口。现在这种情况可能会好一些。

为了安全起见,目前我知道的最好的办法是使用某种类型的 VM 软件(无论是 VMWare、QEMU 还是其他)创建 VM。QEMU 特别支持在 VM 启动后放弃权限,因此整个 VM 将不具有系统的 root 权限 - 这不会影响正在发生的任何事情当然是虚拟机。

您将必须在 VM 中重新创建所需的环境,并且由于 VM 几乎是一个独立的物理系统,因此您必须单独更新它、为完整的操作系统提供足够的磁盘空间等。但除非 VM 软件存在任何漏洞,否则在 VM 中运行的程序无法逃脱它。

相关内容