我在CentOS 5.8服务器上安装了jailkit,并根据我find的在线指南进行configuration。 这些是以root身份执行的命令:
mkdir /var/jail jk_init -j /var/jail extshellplusnet jk_init -j /var/jail sftp adduser testuser; passwd testuser jk_jailuser -j /var/jail testuser
然后编辑/var/jail/etc/passwd将testuser的loginshell更改为/bin/bash ,以便通过SSH访问完整的bash shell。
接下来我编辑/var/jail/etc/jailkit/jk_lsh.ini看起来像下面(不知道这是否是正确的)
[testuser] paths= /usr/bin, /usr/lib/ executables= /usr/bin/scp, /usr/lib/openssh/sftp-server, /usr/bin/sftp
testuser可以通过SSH进行连接,仅限于查看chroot jail目录,也可以通过SFTPlogin,但是整个文件系统是可见的,可以遍历。
SSH输出:
> ssh testuser@server Password: Last login: Sat Oct 20 03:26:19 2012 from xxxx bash-3.2$ pwd /home/testuser
SFTP输出:
> sftp testuser@server Password: Connected to server. sftp> pwd Remote working directory: /var/jail/home/testuser
可以做什么来locking对监狱的SFTP访问?
如果这个问题有问题的话,我想要纠正,但下面的configuration似乎已经工作。
更改了jailkit修改过的/etc/passwd ( 不是 /var/jail/etc/passwd )中的用户:
原始testuser:503:503::/var/jail/./home/testuser:/usr/sbin/jk_chrootsh
修改了testuser:503:503::/home/testuser:/bin/bash
将configuration添加到/etc/ssh/sshd_config :
Match Group testuser ChrootDirectory /var/jail/
现在,当通过SSH或SFTPlogin时,用户被限制在/var/jail和下面,默认为/var/jail/home/testuser的主目录