控制用户是否允许切换到上级目录
在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行下,执行 “cd..”命令后,用户将切换到其上级目录/var,若继续执行该命令,则可进入linux系统的根目录,从而可以对整个linux的文件系统进行操 作。
若设置了write_enable=yes,则用户还可对根目录下的文件进行改写操作,会给系统带来极大的安全隐患,因此,必须防 止用户切换到linux的根目录,相关的配置项如下:
chroot_list_enable=yes
// 设置是否启用chroot_list_file配置项指定的用户列表文件。设置为yes则除了列在/etc/vsftpd/chroot_list文件 中的的帐号外,所有登录的用户都可以进入ftp根目录之外的目录。默认no
chroot_list_file=/etc/vsftpd/chroot_list
// 用于指定用户列表文件,该文件用于控制哪些用户可以切换到ftp站点根目录的上级目录。
chroot_local_user=yes
// 用于指定用户列表文件中的用户,是否允许切换到上级目录。默认no
注意:要对本地用户查 看效果,需先设置local_root=/var/ftp
具体情况有以下几种:
1)当 chroot_list_enable=yes,chroot_local_user=yes时,在/etc/vsftpd/chroot_list文件 中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。
2)当 chroot_list_enable=yes,chroot_local_user=no时,在/etc/vsftpd/chroot_list文件中 列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。
3)当 chroot_list_enable=no,chroot_local_user=yes时,所有用户均不能切换到上级目录。
4)当 chroot_list_enable=no,chroot_local_user=no时,所有用户均可以切换到上级目录。
5)当用户不允许切 换到上级目录时,登录后ftp站点的根目录“/”是该ftp账户的主目录,即文件的系统的/var/ftp目录。
FTP连接时出现“227 Entering Passive Mode”解决办法也很简单,只需要关闭客户端的PASV方式,强制其用PORT方式访问服务器即可
FTP服务的两种工作模式:
•port方式(主动模式),
连接过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,
客户端在命令链路上用PORT命令告诉服务器:“我打开了***X端口,你过来连接我”。于是服务器从20端口向客户端的***X端口发送连接请求,建立一条数据链路来传送数据。
•pasv方式 ( 被动模式 ),
连接过程:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,
服务器在命令链路上用PASV命令告诉客户端:“我打开了***X端口,你过来连接我”。于是客户端向服务器的***X端口发送连接请求,建立一条数据链
路来传送数据。
由于服务器上的FTP进行TCP/IP筛选,仅允许特定的端口可以被客户端连接,所以无法使用PASV方式。找到了原因,解决办法也很简单,只需要关闭客户端的PASV方式,强制其用PORT方式访问服务器即可。
客户端登录FTP服务器后,用passive命令关闭客户端的PASV方式,如下:
代码如下
ftp> passive
Passive mode off.
再次执行该命令就可以启用PASV模式。