vsftpd基于系统用户访问ftp服务器,系统用户越多越不利于管理,不利于系统安全,这样就以vsftp虚拟防护的方式来解决。
虚拟用户没有实际的真实系统用户,,而是通过映射到其中一个真实用户以及设置相应权限来访问验证,虚拟用户不能登陆系统。
1.安装虚拟用户需要用到的软件以及认证模块
| [root@www ~]# yum install pam* libd-utils libdb* --skip -broken -y |
2.创建虚拟用户临时文件
| /etc/vsftpd/ftpusers.txt xj3 123456 xj4 123456 |
3.生成虚拟用户数据库认证文件,权限为700
| [root@www vsftpd]# db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db [root@www vsftpd]# chmod 700 /etc/vsftpd/vsftpd_login.db |
4.配置pam认证文件/etc/pam.d/vsftpd加入下面两行代码:
| auth_required pam_userdb .so db=/etc/vsftpd/vsftpd_login account_required pam_userdb.so db=/etc/vsftpd/vsftpd_login |
5.vsftp虚拟用户需要映射到一个系统用户,该系统用户不需要密码,也不需要登陆,主要用于虚拟用户映射使用
| useradd -s /sbin/nologin ftpuser |
6.vsftpd配置
| #globle config vsftpd 2018 anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES listen_ipv6=NO userlist_enable=YES tcp_wrappers=YES # config virtual user ftp pam_service_name=vsftpd 虚拟用户企业pam认证 guest_enable=YES 启用虚拟用户 guest_username=ftpuser 映射虚拟用户至系统用户ftpuser user_config_dir=/etc/vsftpd/vsftpd_user_conf虚拟用户配置文件所在的目录 virtual_use_local_privs=YES 虚拟用户使用与本地用户相同的权限 |
7至此,所有虚拟用户共同使用/home/ftpuser主目录实现上传下载,可以在/etc/vsftpd/vsftpd_user_conf目录创建虚拟用户各自的配置文件,创建虚拟用户配置文件主目如下:
| mkdir -p /etc/vsftpd/vsftpd_user_conf/ |
8,为虚拟用户创建配置文件,同时创建私有的虚拟目录








