方便的 chroot 工具──jailkit

这篇文章主要是为自己留个笔记,顺便为受设置 chroot 困扰的同学作个 note,因此就不从头说起了。总之不知道什么是 chroot 的同学和不知道为什么要 chroot 的同学如果对此有兴趣,可以自己找找资料。

一直想给自己的 VPS 弄个 jailed shell,但找到的教程都相当的繁杂,虽然可以理解──相当于另建一个 Shell 环境──但无论如何确实很麻烦。一大堆的文件要拷贝,更大一堆的设置要调整,想想都头大,所以一直没有下手。偶然发现了 jailkit 这个实用工具集后,发现建立一个 jailed shell 是如此的容易。

Jailkit 可以把建立 chroot 环境完全自动化,除了可以轻松的建立 jailed shell 外,还可以建立 jailed mail 或是任意的 jailed 的环境,总之 you name it。

下面以建立一个有最基本命令的 jailed shell 为例说明,下载编译安装就不详细写了,一切按照 routine 来,以下命令全以 root 身份运行:

1、首先我建立一个目录 jail,在此目录下建立 jailed 环境,里面的用户将会受到限制(比如说无法离开该目录)。

mkdir /home/jail

2、然后初始化该目录:

jk_init -v -j /home/jail basicshell editors extendedshell netutils ssh sftp scp

加下划线的部分是预告设定好的,拿 sftp 为例,你可以在 /etc/jailkit/jk_init.ini 中找到相应的部分,大概的样子如下:
[sftp]
comment = ssh secure ftp with Jailkit limited shell
executables = /usr/lib/sftp-server
includesections = netbasics, uidbasics

devices = /dev/urandom, /dev/null
emptydirs = /svr

里面列举了建立一个能够 sftp 环境需要的设置,我们照猫画虎也可以设置一下自己需要的环境。

3、建立一个需要被 jailed 的用户,比如说 lemoned :P,为了好区分,我们可以为所以需要被 jailed 的用户单独划出一个组,名字为 pals (举例),命令如下:

groupadd pals
useradd -g pals -m lemoned
passwd lemoned

4、限制该用户

jk_jailuser -m -j /home/jail lemoned

这一步做完后,/etc/passwd 里面对应 lemoned 的那一行应该类似如下:

lemoned:x:1016:1016::/home/jail/./home/lemoned:/usr/sbin/jk_chrootsh

并且把 /etc/jail/home/etc/passwd 中的相应用户所在的行改成如下形式:

lemoned:x:1016:1016::/home/sharon:/bin/bash

然后,就没有然后了。就是这么简单。有了这个 jailed shell 后,我建议你关闭 ftp 让所有的用户都用 sftp 登陆,安全第一,安全第一。

Tags: , ,