在Debian上,设置Chroot

・3 分钟阅读

本文会教你如何在Debian上设置chroot jail ,我假设你正在使用Debian 7.x ,如果你运行的是Debian6或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

杨和超 profile image