閱讀897 返回首頁    go 阿裏雲 go 技術社區[雲棲]


利用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 籠環境增加中文環境[備忘]


 

最後更新:2017-04-03 16:48:57

  上一篇:go 使用DirectDraw直接顯示YUV視頻數據
  下一篇:go 有些秘密可以假裝不知道