在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