通过openssh构建chroot环境

测试环境:Centos6.4 x64
软件版本:openssh-5.3p1 在openssh-4.8p1 之前的版本自身并不支持chroot,如果版本过低又想实现此功能,请升级版本(略);此处介绍openssh-5.3p1版本的实现方法:
注释:运行一个基本的chroot环境至少需要有shell和一些ssh必须的设备文件以及授权给用户使用的命令

操作步骤:

1.创建chroot目录为/var/chroot
mkdir -p /var/chroot/{bin,dev,lib,lib64,etc,home}

2.创建重要的设备文件
mknod /var/chroot/dev/null c 1 3
mknod /var/chroot/dev/zero c 1 5
可选设备文件: (ssh命令所需文件,若缺少会出现:PING is not seeded)
mknod /var/chroot/dev/random c 1 8
mknod /var/chroot/dev/urandom c 1 9
(ssh命令所需文件,若缺少会出现:Host key verification failed) mknod /var/chroot/dev/tty c 5 0
更改设备文件权限: chmod 0666 /var/chroot/dev/{null,zero,tty}

3.修改chroot目录权限
chown -R root.root /var/chroot

5.拷贝授权的命令及命令所依赖的库文件,查看命令所依赖的库文件信息可使用ldd命令查询 1 对于以上操作我们采用脚本实现:cmd.sh

chmod 755 cmd.sh;./cmd.sh

2
新建用户geekwolf
useradd -M geekwolf
将passwd及group拷贝到chroot环境
grep geekwolf /etc/passwd>/var/chroot/etc/passwd
grep geekwolf /etc/group>/var/chroot/etc/passwd

6.建立chroot目录中用户家目录
mkdir /var/chroot/home/geekwolf
chown -R geekwolf /var/chroot/home/geekwolf
chmod 700 /var/chroot/home/geekwolf

7.通过openssh方式设定chroot环境
vim /etc/ssh/sshd_config (可以匹配用户组)
Match User geekwolf
ChrootDirectory /var/chroot/
service sshd restart

8.测试
测试chroot环境是否正常
chroot /var/chroot 如果没有错误表示正常
ssh登录测试 3
如图不能正常显示用户名路径,现在修改环境变量
cp /etc/skel/.bash* /var/chroot/home/geekwolf/
echo “export PS1='[u@h w]'” >>/var/chroot/home/geekwolf/.bash_profile

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

code