CentOS5.5/rhel5.5建立Vsftpd虚拟用户
时间:2010-10-16 来源:dmxjay
vsftpd高级虚拟用户,FTP专有用户,FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。
本文的Linux系统是CentOS 5.5/rhel5.5,selinux已经直接disable掉了.
yum -y install vsftpd
一、建立Vsftpd虚拟用户:
1、添加虚拟用户口令文件安装Vsftpd
[root@localhost ~]#vim /etc/vsftpd/virtusers
奇数行为用户名,偶数行为密码。
ftp1 //用户名
redhat //密码
ftp2 //用户名
redhat //密码
给此文件设置600权限
[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers
2、生成虚拟用户口令认证文件
将刚添加的virtusers虚拟用户口令文件转换成系统识别的口令认证文件。
需要安装认证文件所需软件db4-utils
[root@localhost ~]#yum install -y db4-utils
下面使用db_load命令生成虚拟用户口令认证文件。
生成一个hash码型的数据库文件供ftp虚拟用户使用。
[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
设置600权限
[root@localhost ~]#chmod 600 /etc/vsftpd/virtusers.db
3、编辑vsftpd的PAM认证文件
[root@localhost ~]#cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.vu
[root@localhost ~]#vim /etc/pam.d/vsftpd.vu
添加如下这两行,其他注释:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib/security/pam_userdb.so db=/etc/vsftpd/virtusers
4、建立本地映射用户并设置宿主目录权限
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,不需要本地shell。
[root@localhost ~]#useradd -s /sbin/nologin virtuser (也可以-d 改变主目录)
5、配置vsftpd.conf
[root@localhost ~]#vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
chroot_local_user=YES //以上设置chroot功能,使整体ftp更安全
guest_enable=YES //开启虚拟用户
guest_username=virtuser //FTP虚拟用户对应的系统用户
pam_service_name=vsftpd.vu //PAM认证文件
创建chroot_list空文件(chroot功能需设置)
[root@localhost ~]#touch /etc/vsftpd/chroot_list
6、重启vsftpd服务
[root@localhost ~]#service vsftpd restart
7、测试虚拟用户登录FTP
[root@host2 ~]# lftp 192.168.10.4
lftp 192.168.10.4:~> user ftp1
Password:redhat
lftp