前言:
FTP有三种登录方式:匿名登录、本地系统用户登录和虚拟用户登录。
虚拟用户是ftp服务器的专用用户,它的特点是只能访问服务器为其提供的FTP服务,而不能访问系统的其它资源。所以,如果想让用户对FTP服务器站内具有写权限,但又不允许访问系统其它资源,可以使用虚拟用户来提高系统的安全性。在VSFTP中,认证这些虚拟用户使用的是单独的口令库文件(pam_userdb),由可插入认证模块(PAM)认证。使用这种方式更加安全,并且配置更加灵活。
yum install -y vsftpd vi /etc/vsftpd/vsftpd.conf #开启用户登录认证 anonymous_enable=NO local_root=/data chroot_local_user=YES
1.生成虚拟用户口令库文件(为了建立此口令库文件,先要生成一个文本文件。)
vi /etc/vsftp/user_list.txt user1 pass user2 pass
2.生成用户数据库
db_load -T -t hash -f /etc/vsftpd/user_list.txt /etc/vsftpd/user_list.db chmod 600 /etc/vsftpd/user_list.db
3.创建虚拟用户PAM文件
vi /etc/pam.d/vsftpd.vu auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/user_list account required /lib64/security/pam_userdb.so db=/etc/vsftpd/user_list
4.建立本地用户来映射虚拟用户
useradd -s /sbin/nologin vftp chmod 700 /home/vftp
5.启动虚拟用户并映射到本地用户
vi /etc/vsftpd/vsftpd.conf guest_enable=YES guest_username=vftp pam_service_name=vftpd.vu
6.默认虚拟用户都在vsftp家目录,需要设置指定的目录,添加虚拟用户配置文件位置
添加用户配置目录:
vi /etc/vsftpd/vsftpd.conf user_config_dir=/etc/vsftpd/vsftpd_user_conf mkdir /etc/vsftpd/vsftpd_user_conf
添加用户配置文件:
vi /etc/vsftpd/vsftpd_user_conf/user1 local_root=/ftp/share write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_world_readable_only=NO #开放用户浏览、下载权限 anon_other_write_enable=YES #重命名权限、续传,不建议开
设置权限:
chown vftp:root -R /ftp/share service vsftpd restart