配置vsftpd服务器中chroot,不许用户切换目录

 

vsftpd服务器的默认设置中,本地用户可以切换到主目录以外的目录进行浏览访问,这样对于服务器来说是不×××全的,因为任何用户可以随时浏览到别的用户的私有信息,下面介绍如何使用chroot选项来防止这种情况的发生。

 

与该功能相关的选项主要包括:

 

chroot_local_user

chroot_list_enable

chroot_list_file

可以通过如下两种方法来设置chroot,从而杜绝上述不安全的情况发生:

 

1)设置所有的本地用户执行chroot,只要将/etc/vsftpd/vsftpd.con文件中的chroot_local_ user值置为YES,即chroot_local_user=YES

 

2)设置指定的用户执行chroot,按照如下方法进行设置:

 

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd.chroot_list

设置后,只有/etc/vsftpd.chroot_list文件中指定的用户才能够执行chroot命令。

配置完后重启服务: service vsftpd restart

 

实验:

 

FTP配置文件vsftpd.conf关于限制用户在默认目录的配置,涉及到三个字段:chroot_local_user,chroot_list_enable,chroot_list_file

首先,chroot_local_user=yes。此时,用户登录之后,执行目录跳转命令,如cd /home,显示550 Failed to change directory。你可以试试其他的账号,应该都是一样的结果,无法跳转目录。

 

当:chroot_list_enable=yes

              chroot_list_file=/路径/vsftpd.chroot_list,这里的路径你可以自己指定,之后你要到指定的路径下面创建vsftpd.chroot_list文件。

上面两个设置的意思是,第一个说明chroot_list这个列表有用,第二个是指明列表的位置。那接着说这个列表的作用,也就是这个vsftpd.chroot_list的作用吧。

       做个试验,1.创建两个用户账号,A 和 B2.在上面配置指定的路径下面创建vsftpd.chroot_list文件,将 账号写入文件。

3.用 登录,然后执行目录跳转命令,发现可以成功跳转;用 登录,同样执行目录跳转命令,发现跳转失败。

 

接下来我们从另外一方面看,如果注释掉chroot_local_user=yes,再做上面的实验,结果刚好相反,A不能随意跳转,而 可以随意跳转。

结论: 1 当chroot_local_user=YES、chroot_list_enable=YES时,vsftpd.chroot_list中用户为非锁定用户,他们可以访问任何其他目录。

       2 当chroot_local_user=NO、chroot_list_enable=YES时,vsftpd.chroot_list中用户为锁定用户,即他们除了自己的目录,不可以访问其他目录。