Debian lenny下实现ssh的chroot功能

Debian lenny下实现sshchroot                                  

1、debian lenny下的openssh 版本号为5.1p1,支持chroot功能。Openssh自从4.8版本后支持chroot

2、安装openssh-server

apt-get install ssh openssh-server

3、要先创建chroot环境(主要是一些库文件)

ldd 工具可以查看每个命令所需要的libraries

lai@120:/data$ ldd /bin/bash 

        linux-gate.so.1 =>  (0xb77d1000)

        libncurses.so.5 => /lib/libncurses.so.5 (0xb778d000)

        libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7789000)

        libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7641000)

        /lib/ld-linux.so.2 (0xb77d2000)

我们还需要在chroot环境中使用mknod命令创建 /dev/null/dev/zero/dev/tty, and /dev/urandom 这些设备文件。

4、我们使用一个脚本来替代上一步的复杂过程。

安装必须的工具

apt-get install sudo debianutils coreutils

下载脚本

cd /usr/local/sbin
wget http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh
chmod 700 /usr/local/sbin/make_chroot_jail.sh

把需要的程序、命令添加到chroot环境

vi /usr/local/sbin/make_chroot_jail.sh加入bin/ping /usr/bin/traceroute 2 个命令

118 elif [ "$DISTRO" = DEBIAN ]; then

119   APPS="/bin/ping /usr/bin/traceroute /bin/bash /bin/cp /usr/bin/dircolors /bin/ls /bin/mkdir /bin/mv /bin/rm /bin/rmdir /bin/sh

     /bin/su /usr/bin/groups /usr/bin/id /usr/bin/rsync /usr/bin/ssh /usr/bin/scp /sbin/unix_chkpwd"

接下来,创建需要chroot用户的目录

# mkdir /home/chroot

# mkdir /home/chroot/bwtest

创建chroot需要的环境

# /usr/local/sbin/make_chroot_jail.sh bwtest /bin/bash  /home/chroot/bwtest

如果需要更新添加其他命令,添加后执行

# /usr/local/sbin/make_chroot_jail.sh update /bin/bash  /home/chroot/bwtest    

至此chroot环境准备完毕

# ls -l /home/chroot/bwtest/

total 32

drwxr-xr-x 2 root root 4096 2011-04-02 10:49 bin

drwxr-xr-x 2 root root 4096 2011-04-02 10:49 dev

drwxr-xr-x 4 root root 4096 2011-04-02 10:49 etc

drwxr-xr-x 3 root root 4096 2011-04-02 10:49 home

drwxr-xr-x 3 root root 4096 2011-04-02 10:49 lib

drwxr-xr-x 2 root root 4096 2011-04-02 10:49 lib64

drwxr-xr-x 2 root root 4096 2011-04-02 10:49 sbin

drwxr-xr-x 4 root root 4096 2011-04-02 10:49 usr

接下来我们让openssh-server启用chroot

#vi /etc/ssh/sshd_config在文件最后加入

 75 Subsystem sftp /usr/lib/openssh/sftp-server

 76 

 77 UsePAM yes

 78 

 79 Match User bwtest

 80     ChrootDirectory /home/chroot/bwtest

 81     AllowTCPForwarding no

 82     X11Forwarding no

重启ssh后就可以通过securecrt客户端登陆了。

# /etc/init.d/ssh restart

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值