VSFTPD-FTP服务器

VSFTPD

vsftpd 是一款UNIX/LINUX上的FTP服务器软件,号称是”可能是类UNIX系统中最安全、最快的FTP服务器”,其具有安全、快速、稳定、开源 (基于 GPLv2 协议开源)的特点。
官网:https://security.appspot.com/vsftpd.html

安装方式

1
yum -y install vsftpd

相关文件

配置文件:/etc/vsftpd/vsftpd.conf
服务脚本:/usr/lib/systemd/system/vsftpd.service,/etc/rc.d/init.d/vsftpd
用户认证配置文件:/etc/pam.d/vsftpd

两种模式

FTP采用双通道协议,命令连接和数据连接,并且还有两种连接模式,如下

连接模式 命令连接 数据连接
主动(PORT) 客户端随机端口—->服务器tcp21 客户端随机端口<—-服务器tcp20
被动(PORT) 客户端随机端口—->服务器tcp21 客户端随机端口—->服务器随机端口

端口配置

配置项 作用
listen_port 端口号(默认21) 命令端口号修改
ftp_data_port 端口号(默认为20) 主动模式端口号修改
pasv_min_port 端口号(0为随机分配) 被动模式端口号最小值
pasv_max_port 端口号(0为随机分配) 被动模式端口号最大值

匿名配置

配置项 作用
anonymous_enable YES/NO(默认NO) 是否支持匿名用户
no_anon_password YES/NO(默认NO) 匿名用户略过口令检查
anon_world_readable_only YES/NO(默认YES) 匿名是否只能下载全部权限为读的文件
anon_upload_enable YES/NO(默认NO) 匿名上传,注意:文件系统权限
anon_mkdir_write_enable YES/NO(默认NO) 匿名是否可以创建目录
anon_umask 000-777 匿名上传文件的umask
anon_other_write_enable YES(默认NO) 匿名用户是否可修改修改和上传文件

用户配置

配置项 作用
guest_enable YES/NO(默认NO) 所有系统用户是否都映射guest用户
guest_username 系统用户名 配合guest_enable生效,指定guest用户
local_enable YES/NO(默认YES) 是否允许linux用户登录
write_enable YES/NO(默认YES) 允许系统用户上传文件
local_umask 000-777 指定系统用户上传文件的umask
local_root 系统目录 guest用户登录所在目录
chroot_local_user YES/NO(默认NO) 禁锢系统用户只能在自己的家目录活动
chroot_list_enable YES/NO 禁锢或不禁锢特定的系统用户在家目录中
chroot_list_file 系统文件目录 配合chroot_list_enable,chroot_list_enable=YES则chroot_list_file文件中的用户不被禁锢否则相反

日志配置

配置项 作用
xferlog_enable YES/NO(默认YES) 启用记录上传下载日志
xferlog_std_format YES/NO(默认YES) 使用wu-ftp日志格式
xferlog_file 系统文件目录(默认 /var/log/xferlog) 指定wu-ftp日志文件,可自动生成
dual_log_enable YES/NO(默认NO) 使用vsftpd日志格式
vsftpd_log_file 系统文件目录(默认/var/log/vsftpd.log) 指定vsftpd日志文件,可自动生成

登录控制

配置项 作用
userlist_enable YES/NO(默认YES) 是否启用控制用户登录的列表文件
userlist_deny YES/NO(默认YES) 黑名单,不提示口令,NO为白名单
userlist_file 文件目录(默认 /etc/vsftpd/users_list) 用户列表文件

网络限制

配置项 作用
max_clients NULL 最大并发连接数
max_per_ip NULL 每个IP同时发起的最大连接数
anon_max_rate NULL 匿名用户的最大传输速率
local_max_rate NULL 本地用户的最大传输速率
connect_timeout NULL 主动模式数据连接超时时长
accept_timeout NULL 被动模式数据连接超时时长
data_connection_timeout NULL 数据连接无数据输超时时长
idle_session_timeout NULL 无命令操作超时时长
ascii_upload_enable YES/NO(默认YES) 上传时优先以文本方式传输
ascii_download_enable YES/NO(默认YES) 下载时优先以文本方式传输

SSL配置

配置项 作用
ssl_enable YES/NO(默认NO) 是否启用SSL
allow_anon_ssl YES/NO(默认NO) 匿名是否启用SSL
force_local_logins_ssl YES/NO(默认NO) 本地用户登录是否加密
force_local_data_ssl YES/NO(默认NO) 本地用户数据传输是否加密
rsa_cert_file 文件位置 证书文件位置

PS:在配置之前请查看是否支持 SSL,使用命令”ldd`which vsftpd`“返回libssl.so即可

其他配置

配置项 作用
use_localtime YES/NO(默认NO) 使用当地时间(默认为NO,使用GMT)
ftpd_banner “欢迎信息” 登录提示信息
banner_file 文件目录(默认:/etc/vsftpd/ftpbanner.txt) 指定一个文件作为登录提示信息,ftpd_banner优先生效
dirmessage_enable YES/NO(默认YES) 目录访问提示信息
message_file 文件名称(默认.message) 目录的提示信息文件,默认是目录下的”.message”文件
pam_service_name 文件名称(默认vsftpd) 使用pam(Pluggable Authentication Modules)完成用户认证,默认对应”/etc/pam.d/vsftpd”文件
nopriv_user 系统用户 vsftpd服务指定用户身份运行