虚拟用户
虚拟用户认证所使用的账号和密码都不是服务器中真实存在的,其安全性比本地用户更好,即使被抓包获取到账号密码都无法直接登录到服务器。配置虚拟用户的流程如下:
(1)建立虚拟用户数据库文件
(2)创建根目录及虚拟用户映射的系统用户
(3)建立支持虚拟用户的PAM认证文件
(4)在vsftpd.conf中添加支持配置
(5)为虚拟用户设置不同的权限
(1)建立虚拟用户数据库文件
[root@ftp ~]# vim /etc/vsftpd/vuser //格式:一行账号名,一行密码 test1 123456 test2 12345678 [root@ftp ~]# db_load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db //使用db_load命令生成数据库文件 [root@ftp ~]# chmod 600 /etc/vsftpd/vuser.db [root@ftp ~]# rm /etc/vsftpd/vuser
(2)创建根目录及虚拟用户映射的系统用户
[root@server ~]# useradd -d /var/vftp -s /sbin/nologin vftp [root@server ~]# chmod -R 755 /var/vftp
(3)建立支持虚拟用户的PAM认证文件
[root@server ~]#vim /etc/pam.d/vsftpd.virtual auth required pam_userdb.so db=/etc/vsftpd/vuser //检查账号及密码,数据库不需要写后缀.db account required pam_userdb.so db=/etc/vsftpd/vuser //检查用户是否在有效期内
(4)在vsftpd.conf中添加支持配置
[root@server ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO //禁止匿名登录 local_enable=YES //允许本地用户模式,由于映射的系统用户为本地用户,因此此项必须开启 guest_enable=YES //开启虚拟用户模式 guest_username=vftp //指定虚拟用户账号映射到本地账号vftp chroot_local_user=YES //禁锢用户在其家目录 allow_writeable_chroot=YES //允许禁锢的FTP根目录可写 pam_service_name=vsftpd.virtual //指定pam文件 userlist_enable=YES userlist_deny=YES user_config_dir=/etc/vsftpd/vuser_profile //指定虚拟用户的权限配置目录
(5)为虚拟用户设置不同的权限
[root@server ~]# mkdir /etc/vsftpd/vuser_profile [root@server ~]# vim /etc/vsftpd/vuser_profile/test1 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES anon_umask=022 [root@server ~]# vim /etc/vsftpd/vuser_profile/test2 local_root=/vftp/test2 anon_umask=022 anon_mkdir_write_enable=YES anon_upload_enable=YES anon_other_write_enable=YES [root@ftp ~]# mkdir -pv /vftp/test2 [root@ftp ~]# chown vftp:vftp /vftp/test2 [root@ftp ~]# systemctl restart vsftpd
(6)测试
[root@ftp ~]# ftp 静态IP