天天看點

利用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]

9. 預設情況下, 使用者登入後,隻具備英文環境, 參考下面連結, 添加使用者中文環境

參考

<a target="_blank" href="http://blog.csdn.net/signmem/article/details/14447739">jailkit-2.16.tar.gz 籠環境增加中文環境[備忘]</a>