将 chroot jail 设置为除少数本地用户之外的所有本地用户的默认 $HOME 目录

  1. 在VSFTP Server配置文件/etc/vsftpd/vsftpd.conf中,设置:
# vi /etc/vsftpd/vsftpd
chroot_local_user=YES
chroot_list_enable=YES
  1. 在 /etc/vsftpd/chroot_list 文件中添加不需要 chroot jail 的用户。
    在本例中,我们将添加用户 user01 和 user02:
# cat /etc/vsftpd/chroot_list 
user01
user02
  1. 在VSFTP Server上重启vsftpd服务:
# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
  1. 测试一个用户user01,设置为chroot jail,在chroot目录下创建一个目录:
# ftp ftp_host
Connected to ftp_host (192.168.149.10).
220 (vsFTPd 2.0.5)
Name (192.168.149.10:root): user01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (192.168.149.10,61,227)
150 Here comes the directory listing.
226 Directory send OK.
ftp> cd /
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192.168.149.10,61,163)
150 Here comes the directory listing.
226 Directory send OK.
ftp> mkdir chroot_jail
257 "/chroot_jail" created
ftp>
  1. 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail
[root@ftp_host ~]# ls /home/user01/ | grep chroot_jail
chroot_jail
  1. 测试一个被排除在 chroot jail 中的用户 user03:
[root@ftpclient ~]# ftp ftp_host
Connected to ftp_host (192.168.149.10).
220 (vsFTPd 2.0.5)
Name (192.168.149.10:root): user03
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/user03"
ftp> cd /
250 Directory successfully changed.
ftp> mkdir chroot_jail
257 "/chroot_jail" created
ftp>
  1. 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail
chroot_jail
on it road .com

将 chroot jail 设置为只有少数本地用户的默认 $HOME 目录

  1. 在 VSFTP Server 配置文件 /etc/vsftpd/vsftpd.conf 中,设置:
chroot_list_enable=YES

注意:确保“chroot_local_user”未设置为“YES”。

  1. 在 /etc/vsftpd/chroot_list 中列出需要 chroot jail 的用户,添加用户 user01 和 user02:
[root@ftp_host ~]# cat /etc/vsftpd/chroot_list 
user01
user02
  1. 在VSFTP Server上重启vsftpd服务:
[root@ftp_host ~]# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
  1. 测试一个用户user01,设置为chroot jail,在chroot目录下创建一个目录:
[root@ftpclient ~]# ftp ftp_host
Connected to ftp_host (192.168.149.10).
220 (vsFTPd 2.0.5)
Name (192.168.149.10:root): user01
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> ls
227 Entering Passive Mode (192.168.149.10,238,61)
150 Here comes the directory listing.
226 Directory send OK.
ftp> cd /
250 Directory successfully changed.
ftp> ls
227 Entering Passive Mode (192.168.149.10,83,211)
150 Here comes the directory listing.
226 Directory send OK.
ftp> mkdir chroot_jail
257 "chroot_jail" created
ftp>
  1. 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail
[root@ftp_host ~]# ls /home/user01/ | grep chroot_jail
chroot_jail
  1. 测试一个被排除在 chroot jail 中的用户 user03:
[root@ftpclient ~]# ftp ftp_host
Connected to ftp_host (192.168.149.10).
220 (vsFTPd 2.0.5)
Name (192.168.149.10:root): user03
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/user03"
ftp> ls
227 Entering Passive Mode (192.168.149.10,231,117)
150 Here comes the directory listing.
226 Directory send OK.
ftp> cd /
250 Directory successfully changed.
ftp> mkdir chroot_jail
257 "chroot_jail" created
ftp>
  1. 检查VSFTP服务器上创建的目录:
[root@ftp_host ~]# ls / | grep chroot_jail
chroot_jail
CentOS/RHEL:如何仅为特定用户设置 vsftp 的 chroot jail

如何设置 sftp 使用户无法离开其主目录,确保不影响其他用户?
嗯,有一个简单的方法来做到这一点。
我们可以将所有本地用户 chroot 到默认的 $HOME 目录,或者仅对特定用户执行此操作。
这篇文章专门列出了仅针对特定用户 chroot vsftpd 的步骤。

日期:2020-09-17 00:12:19 来源:oir作者:oir