关闭防火墙以及selinux

[root@yanyinglai3 ~]# systemctl stop firewalld
[root@yanyinglai3 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@yanyinglai3 ~]# sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
[root@yanyinglai3 ~]# setenforce 0

安装依赖程序

[root@yanyinglai3 ~]# cd /etc/yum.repos.d/
[root@yanyinglai3 yum.repos.d]# curl -o 163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@yanyinglai3 yum.repos.d]# yum clean all
[root@yanyinglai3 yum.repos.d]# yum -y install epel-release
[root@yanyinglai3 yum.repos.d]# yum -y install vsftpd

创建文本格式的用户、密码列表,添加两个用户

[root@yanyinglai3 yum.repos.d]# cd
[root@yanyinglai3 ~]# cat >> /etc/vsftpd/vu.list <yan
123
yyl
456
EOF
[root@yanyinglai3 ~]# cat /etc/vsftpd/vu.list
yan
123
yyl
456

安装db4工具

[root@yanyinglai3 ~]# yum -y install db4*

将刚创建的用户、密码文件使用db4工具转化成数据库文件

[root@yanyinglai3 ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db
上面的-T表示转换,-t表示加密方式使用hash算法加密

为提高虚拟账户的文件用户的安全性,设置权限600 ,防止数据外泄

[root@yanyinglai3 ~]# db_load -T -t hash -f /etc/vsftpd/vu.list /etc/vsftpd/vu.db
[root@yanyinglai3 ~]# chmod 600 /etc/vsftpd/vu.
[root@yanyinglai3 ~]# ll /etc/vsftpd/vu.

-rw-------. 1 root root 12288 8月 8 16:27 /etc/vsftpd/vu.db
-rw-------. 1 root root 16 8月 8 16:16 /etc/vsftpd/vu.list

添加虚拟用户的映射账户、创建ftp根目录。例如要将使用的ftp根目录设置为/var/ftproot,映射账户名称为vftp

[root@yanyinglai3 ~]# useradd -d /var/ftproot -s /sbin/nologin vftp
[root@yanyinglai3 ~]# chmod 755 /var/ftproot/
[root@yanyinglai3 ~]# ll -d /var/ftproot/
drwxr-xr-x. 2 vftp vftp 62 8月 8 16:32 /var/ftproot/

为虚拟用户建立PAM认证

[root@yanyinglai3 ~]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak[root@yanyinglai3 ~]# vim /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vu
account required pam_userdb.so db=/etc/vsftpd/vu

修改配置vftpd文件,添加虚拟用户支持

[root@yanyinglai3 ~]# cat >> /etc/vsftpd/vsftpd.conf <

guest_enable=yes
guest_username=vftp
user_config_dir=/etc/vsftpd/vusers_dir
allow_writeable_chroot=YES
EOF
创建目录/etc/vsftpd/vusers_dir与前面建立对应关系
[root@yanyinglai3 ~]# mkdir /etc/vsftpd/vusers_dir
[root@yanyinglai3 ~]# ll /etc/vsftpd/
总用量 36
-rw-------. 1 root root 125 8月 3 2017 ftpusers
-rw-------. 1 root root 361 8月 3 2017 user_list
-rw-------. 1 root root 5133 8月 8 16:47 vsftpd.conf
-rwxr--r--. 1 root root 338 8月 3 2017 vsftpd_conf_migrate.sh
-rw-------. 1 root root 12288 8月 8 16:27 vu.db
-rw-------. 1 root root 16 8月 8 16:16 vu.list
drwxr-xr-x. 2 root root 6 8月 8 16:52 vusers_dir

设置用户yan可上传和创建目录,设置yyl用户只有默认下载权限,只需创建一个名为yyl的空文件即可

[root@yanyinglai3 ~]# cat >> /etc/vsftpd/vusers_dir/yan <anon_upload_enable=YES
anon_mkdir_write_enable=YES
EOF
[root@yanyinglai3 ~]# touch /etc/vsftpd/vusers_dir/yyl

启动ftp服务,检查端口是否开启

[root@yanyinglai3 ~]# systemctl start vsftpd
[root@yanyinglai3 ~]# ss -antl
在ftp客户端登录lin用户创建文件
vstfp虚拟用户_第1张图片

验证

[root@yanyinglai3 ~]# cd /var/ftproot
[root@yanyinglai3 ftproot]# ls
123 abc