在实际运维工作中,我们有很多场景需要将 scp、sftp 和 ssh的访问目录限制在特定的目录内。这样做有多个原因,但最显而易见的是为了系统安全。为了实现该场景我们一般会使用使用 chroot 机制。
chroot机制是将特定用户操作与其他 Linux 系统分离的一种手段,可以更改当前运行的用户进程及其子进程的根目录。本文将主要描述在Red Hat Enterprise Linux系统下,如何配置chroot用户限制 scp、sftp 和 ssh 访问目录
解决方案
1.创建一个chroot用户:
[root@yunweixia.com ]# useradd chrootuser [root@yunweixia.com ]# passwd chrootuser
2.创建一个chroot组:
[root@yunweixia.com ]# groupadd scpusers
3.创建一个chroot目录:
[root@yunweixia.com ]# mkdir /chroot
4.创建用户的主目录并配置适当的权限和所有权:
[root@yunweixia.com ]# mkdir -p /chroot/home/chrootuser [root@yunweixia.com ]# chown chrootuser:chrootuser /chroot/home/chrootuser [root@yunweixia.com ]# chmod 700 /chroot/home/chrootuser
5.将chroot用户添加到 chroot 组:
[root@yunweixia.com ]# usermod -aG scpusers chrootuser
ChrootDirectory必须包含支持用户会话所需的文件和目录。
6.创建以下目录:
[root@yunweixia.com ]# mkdir -p /chroot/{dev,bin,lib64,etc,usr/bin,usr/share/terminfo}
7.创建以下设备文件:
[root@yunweixia.com ]# mknod /chroot/dev/null c 1 3 [root@yunweixia.com ]# mknod /chroot/dev/zero c 1 5 [root@yunweixia.com ]# mknod -m 666 /chroot/dev/tty c 5 0 [root@yunweixia.com ]# mknod -m 666 /chroot/dev/ptmx c 5 2 [root@yunweixia.com ]# chmod 666 /chroot/dev/null
8.复制以下二进制文件到合适的chroot目录:
[root@yunweixia.com ]# cp -p /bin/bash /chroot/bin [root@yunweixia.com ]# cp -p /etc/passwd /chroot/etc [root@yunweixia.com ]# cp -p /usr/bin/scp /chroot/usr/bin [root@yunweixia.com ]# cp -p /usr/bin/ls /chroot/usr/bin
9.运行以下mount命令为/lib64目录:
[root@yunweixia.com ]# mount -o bind /lib64 /chroot/lib64
10.运行以下mount命令为/usr/share/terminfo目录:
[root@yunweixia.com ]# mount -o bind /usr/share/terminfo /chroot/usr/share/terminfo
11.运行以下setsebool命令添加适当的SELinux标签:
[root@yunweixia.com ]# setsebool -P selinuxuser_use_ssh_chroot on [root@yunweixia.com ]# setsebool -P ssh_chroot_rw_homedirs on
12.对您的进行以下更改/etc/ssh/sshd_config文件:
Subsystem sftp internal-sftp
13.添加以下内容Match在你的最后阻止/etc/ssh/sshd_config文件:
Match Group scpusers ChrootDirectory /chroot/
14.重新启动ssh服务
红帽企业 Linux 6
[root@yunweixia.com ]# service sshd restart
红帽企业 Linux 7 或更新版本
[root@yunweixia.com ]# systemctl restart sshd
[/content_hide]
原创文章,作者:运维侠,如若转载,请注明出处:https://www.yunweixia.com/solutions/chroot-user-restriction-guide-configuring-scp-sftp-ssh-directory-access-limits.html