创建用于SSH访问的Chroot

作者: 聂扬帆博客 | 来源:发表于2017-01-03 15:48 被阅读454次

    我想设置一种方式允许SSH访问我的机器,但需要严重限制了他们的能力。 有点类似docker,通过这种方式登录机器的用户所有操作不影响机器本身。上网查了下资料发现Chroot功能挺合适的,于是就测试了下。

    0x01 创建用户

    创建一个sshusers组,并把test用户加到这个组下,后续如果有新的chroot用户也加到这个组下
    # groupadd sshusers
    # adduser -g sshusers test
    # passwd test 创建test用户密码

    0x02 设置需要的目录

    1.根据需求设置目录,根目录为/home/test。最基本需要有dev、etc、lib、usr、bin这5个目录
    # mkdir –p /home/test/{dev,etc,lib,usr,bin,home,proc,sbin,var,lib64}
    # mkdir –p /home/test/home/test
    2.创建/dev/null文件
    # mknod -m 666 /home/test/dev/null c 1 3
    3.复制etc下面几个基本文件
    # cp /etc/ld.so.cache /home/test/etc/
    # cp /etc/ld.so.conf /home/test/etc/
    # cp /etc/nsswitch.conf /home/test/etc/
    # cp /etc/hosts /home/test/etc/
    # cp /root/.bash* /home/test/etc/
    4.添加共享库,用下面脚本添加一些需要运行的命令,其中CHROOT要修改成你创建的根目录路径
    # vim chroot.sh

    CHROOT='/home/test'    #需要修改成用户的根目录
    for i in $( ldd $* | grep -v dynamic | cut -d " " -f 3 | sed 's/://' | sort | uniq )
    do
    cp --parents $i $CHROOT
    done
    # ARCH amd64
    if [ -f /lib64/ld-linux-x86-64.so.2 ]; then
    cp --parents /lib64/ld-linux-x86-64.so.2 /$CHROOT
    fi
    # ARCH i386
    if [ -f /lib/ld-linux.so.2 ]; then
    cp --parents /lib/ld-linux.so.2 /$CHROOT
    fi
    echo "Chroot test is ready. To access it execute: chroot $CHROOT''```
    运行命令:
    `# chmod +x chroot.sh`
    `# chroot.sh /bin/* 获取bin目录下的所有依赖库`
    `# chroot.sh /sbin/* 获取sbin目录下的所有依赖库`
    `# chroot.sh /usr/bin/* 获取/usr/bin目录下的所有依赖库`
    >**0x03  配置SSHd**
    
    OpenSSH版本至少为4.8p1,因为地域4.8p1版本的没有ChrootDirectory()函数
    编辑ssh配置文件vim /etc/ssh/sshd_config,在末尾添加下面参数
    

    Match group sshusers
    ChrootDirectory /home/test/ 这边要注意修改成设置的根目录
    X11Forwarding no
    AllowTcpForwarding no

    配置完成后重启ssh服务。
    退出后用test登录即可
    >**0x04  Q&A**
    
    1.Could not chdir to home directory /home/test: Permission denied
    /bin/bash: Permission denied问题
    解决办法:用root登录查看/home/test的权限,test权限改成755即可
    
    ---
    博客地址:[http://yangfannie.com](http://yangfannie.com)

    相关文章

      网友评论

        本文标题:创建用于SSH访问的Chroot

        本文链接:https://www.haomeiwen.com/subject/crhnvttx.html