虚拟用户账号是为了保证FTP服务器的安全性,由vsftpd服务器提供的非系统用户账号。虚拟用户FTP登录后把指定的目录作为FTP根目录。虚拟用户与本地用户具有类似的功能,由于虚拟用户相对安全,因此正逐步替代本地用户账号。

vsftpd虚拟用户账号设置过程:

⑴ 建立虚拟账号库文件。

⑵ 生成vsftpd的认证数据库文件。

⑶ 建立虚拟用户所需的PAM配置文件。

⑷ 建立虚拟用户所要访问的目录并设置相应权限。

⑸ 设置vsftpd.conf配置文件。

一:安装vsftp服务器:

[root@lyt ~]# mkdir /mnt/cdrom

[root@lyt ~]# mount /dev/cdrom /mnt/cdrom/

[root@lyt ~]# cd /mnt/cdrom/Server/

[root@lyt Server]# rpm -ivh vsftpd-2.0.5-16.el5.i386.rpm      #安装vsftp主程序

[root@lyt Server]# service vsftpd start

[root@lyt Server]# chkconfig vsftpd on      #设置开机自动启动

二:创建虚拟账号库:

[root@lyt Server]# cd /etc/vsftpd/

[root@lyt vsftpd]# vim viruser.txt       #创建虚拟的账号库文件

基于虚拟账号的vsftp_根目录

三:生成vsftp的认证数据库文件:(使用db_load命令)

[root@lyt Server]# rpm -ivh db4-utils-4.3.29-10.el5.i386.rpm      #安装包含db_load命令的软件包

[root@lyt Server]# db_load -T -t hash –f  /etc/vsftpd/viruser.txt  /etc/vsftpd/viruser.db    #使用该指令将viruser.txt文件转换为认证数据库文件viruser.db

[root@lyt Server]# cd /etc/vsftpd/

[root@lyt vsftpd]# vim /etc/pam.d/vsftpd

基于虚拟账号的vsftp_账号_02

四:创建虚拟用户所要访问的目录并设置相应权限

[root@lyt vsftpd]# useradd user1     #新建用户user1

[root@lyt vsftpd]# passwd user1

[root@lyt vsftpd]# cd /home/user1/

[root@lyt user1]# touch f1        #在user1的家目录中创建文件f1

[root@lyt user1]# chmod 755 /home/user1/ 

[root@lyt vsftpd]# vim /etc/vsftpd/vsftpd.conf

基于虚拟账号的vsftp_的_03

[root@lyt vsftpd]# service vsftpd restart

基于虚拟账号的vsftp_账号_04

附:

1:使用本地账户和匿名账户登录查看下载速率:

[root@lyt Server]# mkdir /tmp/qq     #创建一个目录qq

[root@lyt Server]# cd /tmp/qq/

[root@lyt qq]# rpm2cpio /mnt/cdrom/Server/vsftpd-2.0.5-16.el5.i386.rpm |cpio –id      #将vsftp包拆解

[root@lyt qq]# cd etc/pam.d/

[root@lyt pam.d]# cp vsftpd /etc/pam.d/

基于虚拟账号的vsftp_的_05

[root@lyt pam.d]# vim /etc/vsftpd/vsftpd.conf

基于虚拟账号的vsftp_安全性_06

[root@lyt pam.d]# service vsftpd restart

[root@lyt pam.d]# cd /var/ftp/pub/

[root@lyt pub]# dd if=/dev/zero of=f1 bs=1M count=1     #在匿名目录中创建一个1M大小的文件f1

[root@lyt pub]# cp f1 /home/user1/       #将该文件拷贝到本地用户user1的家目录中

测试:

基于虚拟账号的vsftp_安全性_07

基于虚拟账号的vsftp_根目录_08

笔者在使用本地用户user1登录后下载时出现了一点小问题,这里交给笔者探讨解决:

2:同时在线的用户数量:

[root@lyt pub]# vim /etc/vsftpd/vsftpd.conf

基于虚拟账号的vsftp_根目录_09

[root@lyt pub]# service vsftpd restart

测试:

基于虚拟账号的vsftp_根目录_10

3:限制每个ip地址的最大连接数:

[root@lyt pub]# vim /etc/vsftpd/vsftpd.conf

基于虚拟账号的vsftp_服务器_11

[root@lyt pub]# service vsftpd restart

基于虚拟账号的vsftp_服务器_12