使用Chroot限制SSH用户的访问

使用Chroot限制SSH用户的访问

1、设置Chroot牢笼(现有目录或新建目录)

  1. 创建该用户的根目录,设置权限为root所有且对普通用户不可写
    • mkdir -p /home/chroot
    • chown root:root /home/chroot
  2. 设置shell环境
    • 在用户根目录创建dev目录
      • mkdir -p /home/chroot/dev
    • 切换到dev目录并添加相应的设备(文件)
      • cd /home/chroot/dev
      • mknod -m 666 null c 1 3
      • mknod -m 666 random c 1 8
      • mknod -m 666 tty c 5 0
      • mknod -m 666 zero c 1 5

2、为chroot牢笼设置交互式shell

  1. 在用户根目录创建bin目录,并复制一个bash到bin

    • mkdir -p /home/chroot/bin
    • cp -v /bin/bash /home/chroot/bin/
  2. 识别bash所需的共享库,并复制到新建的相应目录

    • ldd /bin/bash

      root@H470SD4:/home/chroot# ldd /bin/bash
      	linux-vdso.so.1 (0x00007ffd052c9000)
      	libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fdb2c656000)
      	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdb2c650000)
      	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdb2c45e000)
      	/lib64/ld-linux-x86-64.so.2 (0x00007fdb2c7c5000)
      
    • mkdir /home/chroot/lib64

    • mkdir -p /home/chroot/lib/x86_64-linux-gnu

    • cp -v /lib64/ld-linux-x86-64.so.2 /home/chroot/lib64/

    • cp -v /lib/x86_64-linux-gnu/{libtinfo.so.6,libdl.so.2,libc.so.6} /home/chroot/lib/x86_64-linux-gnu/

      root@H470SD4:/home/chroot# mkdir /home/chroot/lib64
      root@H470SD4:/home/chroot# mkdir -p /home/chroot/lib/x86_64-linux-gnu
      root@H470SD4:/home/chroot# cp -v /lib64/ld-linux-x86-64.so.2 /home/chroot/lib64/
      '/lib64/ld-linux-x86-64.so.2' -> '/home/test/lib/ld-linux-x86-64.so.2'
      root@H470SD4:/home/chroot# cp -v /lib/x86_64-linux-gnu/{libtinfo.so.6,libdl.so.2,libc.so.6} /home/chroot/lib/x86_64-linux-gnu/
      '/lib/x86_64-linux-gnu/libtinfo.so.6' -> '/home/chroot/lib/x86_64-linux-gnu/libtinfo.so.6'
      '/lib/x86_64-linux-gnu/libdl.so.2' -> '/home/chroot/lib/x86_64-linux-gnu/libdl.so.2'
      '/lib/x86_64-linux-gnu/libc.so.6' -> '/home/chroot/lib/x86_64-linux-gnu/libc.so.6'
      

3、配置用户环境

  1. 新建用户并设置密码
    • useradd tester
    • passwd tester
  2. 复制账户文件及组文件到新建的相应目录(每次新增用户都需要添加到该目录中)
    • mkdir /home/chroot/etc
    • cp -vf /etc/{passwd,group} /home/chroot/etc/
  3. 创建用户家目录并设置相应权限
    • mkdir -p /home/chroot/home/tester
    • chown -R tester:tester /home/chroot/home/tester
    • chmod -R 0700 /home/chroot/home/tester
  4. (可选)为用户添加相关命令
    1. 复制命令
      • cp -v /bin/ls /home/chroot/bin/
      • cp -v /bin/mkdir /home/chroot/bin/
    2. 复制共享库下上面依赖的文件到相应目录,ldd查看,cp复制(见2.2)
      • ldd /bin/ls
      • ldd /bin/mkdir
      • cp -v /lib/x86_64-linux-gnu/{…} /home/chroot/lib/x86_64-linux-gnu/
  5. (可选)为用户添加所有命令
    1. 复制命令
      • cp -vrf /bin/* /home/chroot/bin/
    2. 复制共享库
      • cp -vrpf /lib/x86_64-linux-gnu/* /home/chroot/lib/x86_64-linux-gnu/

4、配置SSH使用chroot牢笼

  1. 修改SSH配置文件,添加以下内容

    • vim /etc/ssh/sshd_config

      Match User tester
      ChrootDirectory /home/chroot
      
  2. 重启ssh服务使配置生效ser

    • service sshd restart

5、客户端SSH登陆tester账户进行测试

  • 打开cmd或终端输入以下命令
    • ssh tester@服务器IP或域名
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值