一、实验环境
操作系统: CentOS 7
二、安装
关闭SELINUX:
vim /etc/selinux/config
SELINUX=disable
临时关闭:
setenforce 0
三、安装vsftpd服务:
1.使用安装yum安装vsftp:
yum -y install vsftp
2.备份vsftp主配置文件:
cp /etc/vsftpd/vsftpd.conf{,.bak}
四、配置虚拟用户访问vsftp服务:
1.创建虚拟用户密码文件:
user1
password1
user2
password2
2.生成虚拟用户数据库:
yum -y install libdb-utils
db_load -T -t hash -f /etc/vsftpd/vir_user /etc/vsftpd/vir_user.db
chmod 700 /etc/vsftpd/vir_user.db
3.配置验证文件:
修改前先配置文件
cp /etc/pam.d/vsftpd{,.bak}
将auth及account的所有配置行均注释掉,添加如下两行
vim /etc/pam.d/vsftpd
auth required pam_userdb.so db=/etc/vsftpd/vir_user
account required pam_userdb.so db=/etc/vsftpd/vir_user
4.增加一个系统用户:
mkdir /ftproot
useradd -d /ftproot -s /sbin/nologin virftp
chown -R virftp:virftp /ftproot
5.配置vsftp主配置文件:
vim /etc/vsftpd/vsftpd.conf
#禁止匿名用户登录
anonymous_enable=NO
#允许本地用户登录
local_enable=YES
#启用虚拟账户
guest_enable=YES
#把虚拟账户映射到系统账户virftp
guest_username=virftp
#使用虚拟用户验证(PAM验证)
pam_service_name=vsftpd
#设置存放各虚拟用户配置文件的目录(此目录下与虚拟用户名相同的文件为他的配置文件)
user_config_dir=/etc/vsftpd/vsftpd_viruser
#启用chroot时,虚拟用户根目录允许写入
allow_writeable_chroot=YES
- 配置虚拟用户各自的配置文件:
创建‘虚拟用户配置文件’的存放目录
mkdir /etc/vsftpd/vsftpd_viruser/
创建和配置虚拟用户各自的配置文件,文件名称是‘虚拟用户名
vim /etc/vsftpd/vsftpd_viruser/user1
#允许写入
write_enable=YES
#允许浏览FTP目录和下载
anon_world_readable_only=NO
#允许虚拟用户上传文件
anon_upload_enable=YES
#允许虚拟用户创建目录
anon_mkdir_write_enable=YES
#允许虚拟用户执行其他操作(如改名、删除)
anon_other_write_enable=YES
#上传文件的掩码,如022时,上传目录权限为755,文件权限为644
anon_umask=022
#指定虚拟用户的虚拟目录(虚拟用户登录后的主目录)
local_root=/ftproot/admin/
创建虚拟用户的根目录,要保证虚拟用户映射的系统用户,对这个根目录有读写权限
mkdir -p /ftproot/admin/
chown -R virftp.virftp /ftproot/admin/
里面内容全部注销掉
vim /etc/vsftpd/ftpusers
五、测试配置结果:
1.重启vsftpd服务
systemctl restart vsftpd
systemctl enable vsftpd
2.关闭防火墙:
setenforce 0
systemctl stop firewalld
3.利用FileZilla工具连接测试
六、各配置文件说明:
/etc/vsftpd/vsftpd.conf :vsftpd的主配置文件
/etc/vsftpd/vir_user :虚拟用户的账号密码文件
/etc/vsftpd/vsftpd_viruser/user1 :虚拟用户‘user1’的配置文件
/etc/pam.d/vsftpd :启用虚拟用户验证功能的配置文件
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/183616.html