vsftpd服务器同时支持匿名用户、本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集中管理的FTP根目录,方便了管理员的管理,同时将用于FTP登录的用户名、密码与系统用户账号区别开,进一步增强了FTP服务器的安全性。
下面我们就来实现这个vsftp的虚拟用户登录的功能。
首先确保已经安装了vsftpd软件包。
1、建立虚拟ftp的帐号和密码数据文件
vim /etc/vsftpd/vusers.list
gentoo
123
john
456 (奇数行为帐号,偶数行为密码)
保存退出。
因为我们要使用哈希对列表进行转换,以便能过被vsftp服务所识别,所以安装这个提供哈希转换的软件包 db4-utils
yum install db4-utils
对创建的帐号和密码文件进行哈希转换
db_load -T -t hash -f vusers.list vusers.db
为了数据的安全修改文件的权限
chmod 600 /etc/vsftpd/vusers.*
2、创建ftp根目录及虚拟用户映射的系统用户
mkdir /var/ftproot 虚拟用户登录ftp进入的目录
useradd -d /var/ftproot -s /sbin/nologin virtual 创建虚拟用户在主机上的映射用户
chmod 755 /var/ftroot
3、建立支持虚拟用户的PAM认证文件
vi /etc/pam.d/vsftp.vu 内容如下:
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers
4、在vsftpd.conf文件中添加支持配置
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=no 拒绝匿名用户登录
local_enable=YES 开启虚拟用可以登录的前提
write_enable=YES 开启ftp的写权限
anon_umask=022
guest_enable=YES 允许虚拟用户登录
guest_username=virtual 指定虚拟用户的映射用户名
pam_service_name=vsftpd.vu 指定我们的认证文件
5、配置完成,重启服务进行测试
service vsftp resart
如图,输入ftp连接,刚刚设置的用户gentoo和密码123
点击登录,则进入ftp,如图所示:
本文出自 “redhat” 博客