利用jailkit-2.16.tar.gz + ssh 进行 chroot 操作[备忘]

目标

 利用  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 笼环境增加中文环境[备忘]


 

上一篇:Java Calendar 类的时间操作


下一篇:block使用小结、在arc中使用block、如何防止循环引用(zz)