在Debian上设置Chroot

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

本文将教您如何在Debian上设置chroot监狱。我假设您正在使用Debian7.x。如果您正在运行Debian 6或8,这可能会起作用,但是请记住,我还没有测试过其他版本的Debian。

以root用户身份登录到VPS。您也可以使用sudo运行命令。

步骤1:安装依赖项

首先,您需要运行以下命令进行安装,稍后将对其进行说明。

apt-get install binutils debootstrap

您还需要选择一个位置来设置chroot。在本文中,我们将使用 /var/chroot 目录。

步骤2:创建所需的目录

制作chroot文件夹。

mkdir -p /var/chroot

大!初步步骤已完成。现在,让chroot有用。

步骤3复制命令及其依赖项

我们需要一个命令解释器,所以让我们复制bash。

mkdir -p /var/chroot/bin
cp /bin/bash /var/chroot/bin

每个程序都有它自己的依赖项,而bash就是其中之一。通过运行看一下它们:

ldd /bin/bash

如果您运行的是32位版本,则应如下所示:

linux-gate.so.1 =>  (0xb773e000)
libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xb7718000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7714000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb75c3000)
/lib/ld-linux.so.2 (0xb773f000)

让我们复制这些文件。如果看到不同的依赖关系,则只需复制路径后的路径即可 => 部分。

mkdir -p /var/chroot/lib 
mkdir -p /var/chroot/lib/i386-linux-gnu
cp /lib/i386-linux-gnu/libtinfo.so.5 /var/chroot/lib/i386-linux-gnu
cp /lib/i386-linux-gnu/libdl.so.2 /var/chroot/lib/i386-linux-gnu
cp /lib/i386-linux-gnu/libc.so.6 /var/chroot/lib/i386-linux-gnu

步骤4:测试环境

现在我们有了bash设置-让我们对其进行测试。

chroot /var/chroot

bash命令解释器将打开,但不会再运行其他命令。这是因为我们没有将任何其他程序复制到chroot文件夹。如果需要更多命令,请键入 exit 并重复步骤3。

这就是全部。现在,您已经建立了基本的chroot。您可以测试命令,监禁用户等。

如果要在chroot中联网,则需要运行以下命令

mkdir -p /var/chroot/etc
cp /etc/resolv.conf /var/chroot/etc
cp /etc/gai.conf /var/chroot/etc

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com