Vsftpd虚拟账户配置
1、创建进行FTP认证的用户数据库文件,其中奇数为账户名,偶数为密码
注意:所有的环境是建立在关闭SELinux及Firewalld、iptables
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@localhost vsftpd]# more vuser.list
kali
123456
unix
123456
[root@localhost vsftpd]# db_load -T -t hash -f vuser.list vuser.db
(创建用户数据库文件)
[root@localhost vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
2、创建vsftpd服务程序用于存储文件的根目录以及虚拟用户映射的系统本地用户。
TP服务用于存储文件的根目录指的是,当虚拟用户登录后所访问的默认位置。(简单来说创建一个可以映射到虚拟用户的系统本地用户)
[root@localhost vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual
[root@localhost vsftpd]# chmod -Rf 755 /var/ftproot/
3、建立用于支持虚拟用户的PAM文件。
[root@localhost vsftpd]# more /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
因为有些时候这样的验证方式在系统中是被否认的,以上验证方式是针对于CentOS6系统, 以下为CentOS7验证方式
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
拓展:
pam_userdb(vsftpd:auth): user_lookup: could not open database `/etc/vsftpd/vsftpd_login.db’: No such file or directory
这种报错日志:找不到验证的方式,需要修改/etc/pam.d/vuser中的验证方式
4、修改主配置文件
利用PAM文件进行认证时使用的参数以及作用
当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;
当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。
当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除、重命名)。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,
anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。
当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,
anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。