Openssh的chroot

时间:2007-01-04 10:22:51   来源:  作者:whsong  点击:次  出处:技术无忧
关键字:Open

1.建立chroot环境,假设在 /data/chroot 开始我们的chroot
mkdir /data/chroot

2.a 建立device,FreeBSD 4.x
mkdir /data/chroot/dev
cd /data/chroot/dev
cp /dev/MAKEDEV .
sh MAKEDEV jail
2.b 建立device,FreeBSD 5.x
mkdir /data/chroot/dev
mount_devfs devfs /data/chroot/dev

3. 复制一些执行程序,创建一些目录环境
cd /data/chroot
cp -R /bin bin
mkdir -p usr/lib usr/libexec usr/sbin var/run var/log
cp -R /usr/bin usr/bin
cp -R /usr/lib usr/lib/
cp /usr/libexec/ld-elf.so.1 usr/libexec
cp /usr/sbin/pwd_mkdb /usr/sbin/vipw usr/sbin/
touch var/run/utmp var/log/wtmp

mkdir -p etc usr/share/misc/
cp /usr/share/misc/termcap usr/share/misc/
ln -s /usr/share/misc/termcap etc/termcap
cp /etc/pam.conf /etc/shells etc
mkdir -p var/tmp tmp
chmod 777 tmp var/tmp

4. 创建用户和组
pw -V etc groupadd wheel -g 0
pw -V etc groupadd user -g 10000
touch etc/master.passwd
pw -V etc useradd root -u 0 -d /root -g wheel -s /bin/csh -h 0
pw -V etc useradd user -u 10000 -d /home/user -g user -s /bin/csh -h 0
pwd_mkdb -d etc etc/master.passwd
chmod u+s usr/bin/passwd usr/bin/chfn usr/bin/chpass usr/bin/chsh

5. 复制ssh配置文件和key
cp -R /etc/ssh etc/ssh

6. 编辑sshd配置文件让sshd不需要使用sshd用户启动
找到#UsePrivilegeSeparation yes一行,修改为UsePrivilegeSeparation no
vi etc/ssh/sshd_config

7. 创建用户homedir
mkdir -p home/user root
chown -R 10000:10000 home/user/

8.下载并且编译chroot_safe
下载地址 http://chrootsafe.sourceforge.net/ 并且解包
./configure;make;make install
rehash

9. 运行sshd进行chroot
chroot_safe root /data/chroot /usr/sbin/sshd -p 22222

这个将会在22222端口打开这个 chroot 的sshd, 现在可以通过连接22222端口进行登录
如果仅仅只是chroot一个用户,可以少复制很多文件

另外,你可以直接chroot一个shell,然后更改用户的shell为那个
chroot_safe不能对静态程序起效,因此系统中的/bin/sh bin/csh /bin/tcsh都不能用

请记住技术无忧网 中文域名 http://www.技术无忧.com


文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

300x250广告位招租