利用openssh實現chroot監牢

我們不想讓SSH 登陸的用戶隨意瀏覽我係統的文件只給他固定在指定地方活動。

環境:Red Hat Enterprise Linux Server release 6.2

openssh 需要4.7p 以上版本

建立一個允許ssh的登陸用戶

[root@localhost ~]# useradd gao

更改用戶的密碼

[root@localhost ~]# passwd gao
Changing password for user gao.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
建立chroot目錄

[root@localhost ~]# mkdir /vm/chroot

切換到建好的目錄下,再創建登陸需要的目錄結構

[root@localhost chroot]# mdkir bin home lib64

把gao用戶的主目錄拷貝到剛剛建好的home下

[root@localhost chroot]# cp -r /home/gao/ /vm/chroot/home/

拷貝可執行程序和登陸bash,參考拷貝執行程序腳本123.sh

[root@localhost chroot]# cd bin/

[root@localhost bin]# cat 123.sh
#!/bin/bash
cmd="bash touch more less awk sed vim mkdir"
for i in $cmd
do
a=`which $i`
cp $a ./
done
命令可以自行添加

再拷貝執行依賴的文件,參考拷貝依賴文件腳本456.sh

[root@localhost bin]# cd ../lib64/

[root@localhost lib64]# cat 456.sh
#!/bin/bash
cmd="touch more less awk sed vim mkdir"
for i in $cmd
do
ldd `which $i` |awk '{print $3}'|while read a ;do cp $a ./;done
done
全部拷貝完成後修改ssh 的配置文件

[root@localhost lib64]# vim /etc/ssh/sshd_config

在其最後加上

Match User gao
ChrootDirectory /vm/chroot

重啓SSH服務

[root@localhost lib64]# /etc/init.d/sshd restart

使用其他機器登陸測試

[root@perl ~]# ssh [email protected]
[email protected]'s password:
Last login: Wed Oct 10 11:54:00 2012 from 10.1.100.104
-bash-4.1$ cd /
-bash-4.1$ pwd
/
-bash-4.1$ ls
bin home lib64
-bash-4.1$

簡單的chroot 已經完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章