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 虚拟用户使用与本地用户相同的权限
来源: http://www.bubuko.com/infodetail-2654690.html