虚拟用户配置
所有虚拟用户将被统一映射为一指定的系统账号,访问的共享位置即为此系统帐号的家目录;
各虚拟用户可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定;
虚拟用户帐号的存储方式
文件中:编辑文件
奇数行为用户名,偶数行为密码;
因为是明文存放的,所以此文件需编码为hash格式,因而修改文件极为麻烦;
关系型数据库的表中
即时查询数据库完成用户认证;
通常使用的数据库是mysql,由于vsftp的认证是基于pam进行的,所以需要pam能够连接mysql,依赖于pam_mysql模块(pam默认无此模块,需额外安装)
# yum install pam_mysql
演示过程
1、准备2台虚拟机:a(172.16.249.230)和b(172.16.249.231),a安装mysql、mysql-server和mysql_devel,作为数据库使用;b安装vsftpd和pam_mysql,作为ftp服务器使用;
其他设置
目录消息设置
dirmessage_enable=YES
开启此项后,若ftp服务端某目录下有以“.message”结尾的文件,当客户端切换至此目录下时,服务端会显示该文件中的内容以提醒用户
日志设置
xferlog_enable=YES
开启此项后,用户在ftp客户端上传、下载、修改文件等操作将被记录于日志中
xferlog_std_format=YES
开启此项后,日志记录将使用标准格式
xferlog_file=/var/log/xferlog
指明日志文件的记录位置,即使不启用也默认记录在此文件中
上传文件属主设置
chown_uploads=YES
chown_username=whoever
启用此项后,上传文件的属主将被统一修改为第二条命令设定的用户
时长设置
idle_session_timeout=600
空闲会话超时时长
data_connection_timeout=120
数据连接超时时长
传输格式设置
ascii_upload_enable=YES
ascii_download_enable=YES
启用此项后,将强制使用ASCII格式上传和下载文件,若文件原格式为二进制,则会导致上传和下载的文件为乱码,所以不建议启用,除非确认自己要传输的文件格式本来就为ASCII
欢迎信息设置
ftpd_banner=Welcome to blah FTP service.
认证设置
pam_service_name=vsftpd
vsftp基于pam进行认证,此项指明服务端根据/etc/pam.d/目录下的哪个文件进行认证
vim /etc/pam.d/vsftpd
auth做认证,account检查用户帐号是否在有效期内,session指明前两项检查通过后会话是否予以建立
此项指明一旦用户名出现在文件/etc/vsftpd/ftpusers中,将被拒绝访问ftp服务
用户登录设置
userlist_enable=YES
开启此项后将启用用户登录控制列表,
列表文件默认为:
/etc/vsftpd/user_file
此文件中的用户是否允许登录依赖于另一个文件:
userlist_deny=YES|NO
=YES表示不允许登录,此时列表为黑名单,凡是表内的都拒绝登录,凡是表外的都允许登录
=NO表示允许登录,此时列表为白名单,凡是表内的都允许登录,凡是表外的都拒绝登录
连接限制
max_clients:最大并发连接数;
max_per_ip:每个IP可同时发起的最大并发请求数;
传输速率限制
anon_max_rate:匿名用户的最大传输速率,单位为“字节/秒”;
local_max_rate:系统用户的最大传输速率,单位为“字节/秒”;