目标
利用 jaikit 环境, 能够把某个目录虚拟成为 / , 并且把远程用户限制在该目录中活动,与真正的系统 / 环境进行隔离
利用该环境能够避免开发人员过多地访问系统资源,增加系统安全性
1. 编译jailkit-2.16.tar.gz
./configure && make && make install
2. 定义 /data作为数据存放区间, 笼环境专用分区
利用 sdb1 挂载 /data
chown root:root /data
/etc/fstab 定义自动挂载
/dev/sda1 /data ext4 defaults 0 0
3. 自动建立 chroot需要文件,库文件资料
jk_init -v -j /data basicshell editors extendedshell netutils ssh sftp scp |
命令执行后,会发现 /data 目录下生成了 shell 环境必须的文件与目录
ls /data/ bin dev etc lib lib64 lost+found usr |
4. 创建用户方法
mkdir /data/usr/sbin cp /usr/sbin/jk_lsh /data/usr/sbin/jk_lsh useradd terry jk_jailuser -m -j /data terry |
注: jk_jailuser 能够把系统用户切换成为笼环境受限用户
注意 /etc/passwd 中用户资料中,默认的 shell 环境发生了变化
terry:x:500:500::/data/./home/terry:/usr/sbin/jk_chrootsh |
5. 创建chroot后的 /tmp目录
mkdir /data/tmp chmod 1777 /data/tmp cp /usr/bin/id /data/usr/bin/id |
6. 参考笼环境下的passwd文件
/data/etc/passwd
root:x:0:0:root:/root:/bin/bash terry:x:500:500::/home/terry:/usr/sbin/jk_lsh |
/data/etc/group
root:x:0:root terry:x:500: |
7. 注意,当前 shell /usr/sbin/jk_lsh只允许 scp, cvs, sftp,假如需要使用 ssh登录,必须修改 /data/etc/passwd 中 shell 为/bin/bash
8. 要让用户登录, 还需要修改 "/etc/jailkit/jk_chrootsh.ini" 文件添加下面字段, 注, 每个用户都需要独立添加
[terry]
relax_home_group_permissions=1
relax_home_other_permissions=1
[mary]
relax_home_group_permissions=1
relax_home_other_permissions=1
9. 默认情况下, 用户登录后,只具备英文环境, 参考下面链接, 添加用户中文环境
参考
jailkit-2.16.tar.gz 笼环境增加中文环境[备忘]