4.3.3 配置文件解析
vsftpd配置文件默认位于/etc/vsftpd目录下,vsftpd会自动寻找以.conf结尾的配置文件,并使用此配置文件启动FTP服务。配置文件的格式为:选项=值(中间不可以有任何空格符),以#开头的行会被识别为注释行。表4-2给出了vsftpd的主要配置选项及其对应的含义。
表4-2
账户类别
设置项
功能描述
全局配置
listen=YES
是否监听端口,独立运行守护进程
listen_port=21
监听入站FTP请求的端口号
write_enable=YES
是否允许写操作,全局开关
download_enable=YES
如果设置为NO,则拒绝所有的下载请求
dirmessage_enable=YES
用户进入目录是否显示消息
xferlog_enable=YES
是否开启xferlog日志功能
xferlog_std_format=YES
Xferlog日志文件格式
connect_from_port_20=YES
使用主动模式连接,启用20号端口
pasv_enable=YES
是否启用被动模式连接,默认为被动模式
pasv_max_port=24600
被动模式连接最大端口号
pasv_min_port=24500
被动模式连接最小端口号
userlist_enable=YES
是否启用userlist用户列表文件
userlist_deny=YES
是否禁止userlist文件中的账户访问FTP
max_client=2000
最大允许同时2000客户端连接,0代表无限制
max_per_ip=0
每个客户端的最大连接限制,0代表无限制
tcp_wrappers=YES
是否启用tcp_wrappers
guest_enable=YES
如果为YES,则所有的非匿名登录都映射为guest_username指定的用户
guest_username=ftp
设定来宾账户
user_config_dir=/etc/vsftpd/conf
指定目录,在该目录下可以为账户设置独立的配置文件与选项
dual_log_enable=NO
是否启用双日志功能,生成两个日志文件
anonymous_enable=YES
是否开启匿名访问功能,默认为开启
匿名账户
anon_root=/var/ftp
匿名访问FTP的根路径,默认为/var/ftp
anon_upload_enable=YES
是否允许匿名账户上传,默认禁止
anon_mkdir_write_enable=YES
是否运行匿名账户创建目录,默认禁止
anon_other_write_enable=YES
是否允许匿名账户进行其他所有的写操作
anon_max_rate=0
匿名数据传输率(B/s)
anon_umask=077
匿名上传权限掩码
本地账户
local_enable=YES
是否启用本机账户FTP功能
local_max_rate=0
本机账户数据传输率(B/s)
local_umask=077
本地账户权限掩码
chroot_local_user=YES
是否禁锢本地账户根目录,默认为NO
local_root=/ftp/common
本地账户访问FTP根路径
4.3.4 账户权限
vsftpd支持的常用登录方式有:匿名登录、本地账户登录、虚拟账户登录三种方式。
匿名账户登录一般应用于下载服务器,这种下载服务器往往是对外开放的。Vsftpd默认开启的是匿名共享,默认共享路径是/var/ftp。
本地账户登录则需要使用系统账户以及对应的系统密码才可以登录使用FTP,默认的配置文件中,anonymous_enable与local_enable均被设置为YES,此时FTP为匿名访问模式,如果需要开启本地账户FTP功能,需要将anonymous_enable设置为NO,默认共享路径问账户个人家目录。需要注意的是,开启本地账户登录后,用户可以离开家目录,从而进入系统中的其他目录,这样是非常危险的,如果在配置文件中使用chroot_local_user,用户将被禁锢在自己的家目录下。由于SELinux默认不允许FTP共享家目录,因此,在没有完全掌握SELinux设置方法的情况下,建议关闭SELinux以完成下面的案例。
当有大量用户需要使用FTP时,vsftpd支持虚拟账户模式登录FTP,从而避免了创建大量的系统账户,通过guest_enable可以开启vsftpd的虚拟账户功能,guest_username用来指定本地账户的虚拟映射名称。
vsftpd有两个文件(黑名单文件与白名单文件)可以对用户进行ACL控制,/etc/vsftpd/ftpusers,默认是一个黑名单文件。/etc/vsftpd/user_list文件会根据主配置文件中配置项设定的不同,而成为黑名单文件或白名单文件。此外。也可以禁用该文件。主配置文件中的userlist_enable决定了是否启用user_list文件,如果启用,还需要根据userlist_deny来决定该文件是黑名单还是白名单文件,如果user_deny=YES则该文件为黑名单,如果user_deny=NO,则该文件为白名单。需要注意���是,黑名单表示仅拒绝名单中的账户访问FTP,也就是其他所有的账户默认允许访问FTP。而白名单表示仅允许白名单中的账户访问FTP,其他账户则默认拒绝访问FTP。