CentOS/RHEL:如何为所有用户设置 vsftp chroot jail

在默认的 VSFTP 配置下,VSFTP 登录用户可以导航到可能导致安全问题的顶级目录。
在某些情况下,我们不希望 FTP 用户能够访问其主目录之外的任何文件。
vsftp 守护进程可以被 chroot 来实现这个策略。

www. On IT Road .com

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

按照以下步骤将 chroot jail 切换到系统上所有本地用户的默认主目录。

  1. 在 VSFTP Server 配置文件 /etc/vsftpd/vsftpd.conf 中,设置以下参数:
# vi /etc/vsftpd/vsftpd.conf
chroot_local_user=YES

注意:确保“chroot_list_enable”未设置为“YES”。
如果 chroot_list_enable=YES 那么你还必须在 vsftpd.conf 文件中设置参数 chroot_list_file=/etc/vsftpd/chroot_list 告诉守护进程在哪里可以找到 chroot_list 文件。
vsftpd 将查看该文件,并且该文件中列出的任何用户都将被放入 chroot jail

  1. 在VSFTP Server上重启vsftpd服务:
# service vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
  1. 用chroot jail用户测试,在chroot目录下创建一个目录。
# ftp ftphost
Connected to ftphost (192.168.149.10).
220 (vsFTPd 2.0.5)
Name (192.168.149.10:root): testuser
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,72,224)
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,135,209)
150 Here comes the directory listing.
226 Directory send OK.
ftp> mkdir chroot_jail_dir
257 "/chroot_jail_dir" created
ftp> ls
227 Entering Passive Mode (192.168.149.10,40,202)
150 Here comes the directory listing.
drwxr-xr-x    2 511      511          4096 Nov 12 11:40 chroot_jail_dir
226 Directory send OK.
ftp>
  1. 检查创建的目录在 VSFTP Server 上的位置。
    我们会看到在用户“testuser”的主目录 (/home/testuser) 下创建的目录,而不是实际的根目录 (/)

目录不是在/下创建的,如下图:

# ls / | grep chroot_jail_dir

相反,它是在“testuser”用户的主目录下创建的。

# ls /home/testuser/ | grep chroot_jail_dir
chroot_jail_dir
日期:2020-09-17 00:12:19 来源:oir作者:oir