vsftpd 安装及使用虚拟用户配置

1. 安装vsftpd ,启动,自启动

yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd

2. 配置vsftpd

2.1 创建虚拟用户

useradd vsftp -M -s /sbin/nologin
useradd vfuser -d /var/ftproot -s /bin/nologin # 创建ftp服务用户,创建系统用户关联虚拟用户

2.2 修改vsftpd配置文件

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
# 备份原配置文件

vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
# 匿名用户不可访问
local_enable=YES
# 本地用户可以访问
local_umask=022
# 文件上传后默认权限掩码
dirmessage_enable=YES
# 开启目录标语功能
xferlog_enable=YES
# 开启日志
connect_from_port_20=NO
# 关闭默认数据上传端口,之后会设置为被动模式启用随机端口
pasv_enable=YES
# 开启被动模式,会开启随机端口用于数据传输
pasv_min_port=30000
pasv_max_port=35000
# 被动模式随机端口范围
xferlog_file=/var/log/xferlog
# #设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败
xferlog_std_format=YES
#设定日志使用标准的记录格式。
idle_session_timeout=600

chroot_local_user=YES
# 限制只能用使用主目录
chroot_list_enable=NO
# 是否启动限制用户的名单 YES为启用
chroot_list_file=/var/ftproot
# 指定主目录位置
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd.vu文件配置
userlist_enable=YES
# userlist_file中的用户将不得使用FTP
tcp_wrappers=YES
write_enable=YES
# 开启写权限
download_enable=YES
# 开启下载权限
guest_enable=YES
# 开启虚拟用户模式
guest_username=vfuser
# 指定虚拟用户
user_config_dir=/etc/vsftpd/vfusers_dir
# 虚拟用户配置目录,该目录下的文件为单个用户的配置    

2.3 创建日志文件并赋予ftp用户权限

touch /var/log/vsftpd.log
chown vsftpd.vsftpd /var/log/vsftpd.log

2.4 虚拟用户配置

mkdir /etc/vsftpd/vfusers_dir -p
# 创建虚拟用户配置目录
touch /etc/vsftpd/vfuser_list
# 创建虚拟用户账户密码文件,其中包含所有虚拟用户的账户密码,奇数行为账户,偶数为密码

yum -y install db4-utils
#安装pam,用户生成虚拟用户数据文件
db_load -T -t hash -f vfuser_list vfuser_list.db
# 生成数据文件
# -T表示生成数据库文件
# -t表示使用hash算法(防止其他人看到数据库文件内容)
# -f指定文件

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.vu
# 备份pam文件

vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth       required     pam_userdb.so   db=/etc/vsftpd/vfuser_list
account    required     pam_userdb.so   db=/etc/vsftpd/vfuser_list
# 文件内容如上即可

vim /etc/vsftpd/vfusers_dir/ll
local_root=/var/ftproot/
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
allow_writeable_chroot=YES

# 指定虚拟用户目录
# 拥有写权限
# 允许上传文件
# 允许具有创建目录的虚入权限
# 意味着本地用户将进入 chroot 环境,当登录以后默认进入家目录home目录

3. 重启vsftpd服务

systemctl restart vsftpd.service
原文地址:https://www.cnblogs.com/yunweixiaoxuesheng/p/8676368.html