FTP虚拟用户

虚拟用户
虚拟用户认证所使用的账号和密码都不是服务器中真实存在的,其安全性比本地用户更好,即使被抓包获取到账号密码都无法直接登录到服务器。配置虚拟用户的流程如下:
(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

posted @ 2021-03-02 14:52  破碎的屋檐  阅读(116)  评论(0编辑  收藏  举报