在实际运维工作中,我们有很多场景需要将 scp、sftp 和 ssh的访问目录限制在特定的目录内。这样做有多个原因,但最显而易见的是为了系统安全。为了实现该场景我们一般会使用使用 chroot 机制。
chroot机制是将特定用户操作与其他 Linux 系统分离的一种手段,可以更改当前运行的用户进程及其子进程的根目录。本文将主要描述在Red Hat Enterprise Linux系统下,如何配置chroot用户限制 scp、sftp 和 ssh 访问目录
解决方案
1.创建一个chroot用户:
[root@shizhanxia.com ]# useradd chrootuser [root@shizhanxia.com ]# passwd chrootuser
2.创建一个chroot组:
[root@shizhanxia.com ]# groupadd scpusers
3.创建一个chroot目录:
[root@shizhanxia.com ]# mkdir /chroot
4.创建用户的主目录并配置适当的权限和所有权:
[root@shizhanxia.com ]# mkdir -p /chroot/home/chrootuser [root@shizhanxia.com ]# chown chrootuser:chrootuser /chroot/home/chrootuser [root@shizhanxia.com ]# chmod 700 /chroot/home/chrootuser
5.将chroot用户添加到 chroot 组:
[root@shizhanxia.com ]# usermod -aG scpusers chrootuser
ChrootDirectory必须包含支持用户会话所需的文件和目录。
6.创建以下目录:
[root@shizhanxia.com ]# mkdir -p /chroot/{dev,bin,lib64,etc,usr/bin,usr/share/terminfo}
7.创建以下设备文件:
[root@shizhanxia.com ]# mknod /chroot/dev/null c 1 3 [root@shizhanxia.com ]# mknod /chroot/dev/zero c 1 5 [root@shizhanxia.com ]# mknod -m 666 /chroot/dev/tty c 5 0 [root@shizhanxia.com ]# mknod -m 666 /chroot/dev/ptmx c 5 2 [root@shizhanxia.com ]# chmod 666 /chroot/dev/null
8.复制以下二进制文件到合适的chroot目录:
原创文章,作者:保哥,如若转载,请注明出处:https://www.shizhanxia.com/1321.html