使用Chroot限制SSH用户的访问
1、设置Chroot牢笼(现有目录或新建目录)
- 创建该用户的根目录,设置权限为root所有且对普通用户不可写
- mkdir -p /home/chroot
- chown root:root /home/chroot
- 设置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
- 在用户根目录创建dev目录
2、为chroot牢笼设置交互式shell
-
在用户根目录创建bin目录,并复制一个bash到bin
- mkdir -p /home/chroot/bin
- cp -v /bin/bash /home/chroot/bin/
-
识别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、配置用户环境
- 新建用户并设置密码
- useradd tester
- passwd tester
- 复制账户文件及组文件到新建的相应目录(每次新增用户都需要添加到该目录中)
- mkdir /home/chroot/etc
- cp -vf /etc/{passwd,group} /home/chroot/etc/
- 创建用户家目录并设置相应权限
- mkdir -p /home/chroot/home/tester
- chown -R tester:tester /home/chroot/home/tester
- chmod -R 0700 /home/chroot/home/tester
- (可选)为用户添加相关命令
- 复制命令
- cp -v /bin/ls /home/chroot/bin/
- cp -v /bin/mkdir /home/chroot/bin/
- …
- 复制共享库下上面依赖的文件到相应目录,ldd查看,cp复制(见2.2)
- ldd /bin/ls
- ldd /bin/mkdir
- …
- cp -v /lib/x86_64-linux-gnu/{…} /home/chroot/lib/x86_64-linux-gnu/
- 复制命令
- (可选)为用户添加所有命令
- 复制命令
- cp -vrf /bin/* /home/chroot/bin/
- 复制共享库
- cp -vrpf /lib/x86_64-linux-gnu/* /home/chroot/lib/x86_64-linux-gnu/
- 复制命令
4、配置SSH使用chroot牢笼
-
修改SSH配置文件,添加以下内容
-
vim /etc/ssh/sshd_config
Match User tester ChrootDirectory /home/chroot
-
-
重启ssh服务使配置生效ser
- service sshd restart
5、客户端SSH登陆tester账户进行测试
- 打开cmd或终端输入以下命令
- ssh tester@服务器IP或域名