vsftpd基于系统用户访问ftp服务器,系统用户越多越不利于管理,不利于系统安全,这样就以vsftp虚拟防护的方式来解决。
虚拟用户没有实际的真实系统用户,,而是通过映射到其中一个真实用户以及设置相应权限来访问验证,虚拟用户不能登陆系统。
1.安装虚拟用户需要用到的软件以及认证模块
[[email protected] ~]# yum install pam* libd-utils libdb* --skip -broken -y
2.创建虚拟用户临时文件
/etc/vsftpd/ftpusers.txt
xj3
123456
xj4
123456
3.生成虚拟用户数据库认证文件,权限为700
[[email protected] vsftpd]# db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
[[email protected] 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 虚拟用户使用与本地用户相同的权限
原文地址:https://www.cnblogs.com/xj2638795202/p/9213855.html