RHEL4-FTP服务(五)配置虚拟用户访问vsftpd服务器_(上)


 

 
VSFTPD采用PAM认证虚拟用户,由于虚拟用户的用户名及口令被单独保存。因此在验证时,VSFTPD需要用一个系统用户的身份来读取数据据文件或数据库服务器以完成验证。这就是VSFTPDguest用户。这如同匿名用户也需要一个系统用户FTP一样。我们也可以把gust用户看成是虚拟用户在系统中的代表。

 

1、在配置vsftp虚拟用户之前,先让我们来检查两个东西。

 
 其一是使用命令:#rpm -q vsftp 

 
确认一下是否已经安装了vsftpd服务,默认系统中是没有安装的,具体的方法请参见: RHEL4- FTP服务(一)vsftpd的安装与启动

 

其二是使用命令#rpm -q db4

 
确认是否安装了 Berkeley db,如下图:

 

 
如果但看上图说明已经安装了 Berkeley db,但是在实际的搭建服务的过程中,光有这一项还不行,还得安装两个有关db4的包,才能正常使用。不然会在配置的过程中出现如下问题:
 
 
这个包放在RHEL4安装光盘的第三张盘中,如下图所示:
 
 
安装这两个包,如下图所示:
 
 
这样就可以把这个问题解决了,这是在网上所有的文档中无法找到的解决方法,只有在亲自的实践过程中才能遇到。

 

2、下面我们来开始正式配置vsftp虚拟用户

 
  (1)、生成虚拟用户的数据库:

 
先使用命令#vi /etc/vsftpd/login.txt

 
在打开的文档中输入内容,在此说明一下这个文档是写入虚拟用户登陆ftp的帐户和密码信息,奇数行是用户名,偶数行是对应的用户密码,如下图所示:

 
 
xdq’为虚拟用户名,‘123’为虚拟用户登陆密码。注意不能写错行!

根据需要写完以后‘wq’保存。
 
 
写完文档以后,使用‘db_load’命令生成 虚拟用户认证库 。如下图所示:
 
 
(#说明:‘db_load  -T  -t  hash ’为笔写命令参数,
-f  /etc/vsftpd/login.txt’是指定刚才所建文档login.txt,‘/etc/vsftpd/login.db’是指定生成的虚拟用户库存放的位置并起名字为login.db

 

2)、生成一个新的PAM文件,使其指定你上一步生成的 虚拟用户认证库 。如下图所示:
 

 

在打开的文档中写入如下两行内容:

 
auth   required   /lib/security/pam_userdb.so   db=/etc/vsftpd/login
account   required   /lib/security/pam_userdb.so  db=/etc/vsftpd/login

 
(#说明: 上面的两行中‘db=/etc/vsftpd/login.’意思是指定你刚才生成的虚拟用户认证库文件的绝对路径,注意‘login’后面没有‘db’其他的为固定必写内容)写完这两行之后就可以保存并退出。

 

3)、建立虚拟用户的guest用户,并制定访问目录

 
#useradd  -d  /home/ftp virtual

 
(说明:‘-d  /home/ftp’是指定匿名用户的登陆目录,必须要保证有这个目录,如果没有可以使用mkdir命令新建一个,可以在任何位置建立,但是在这里必须要指定。‘virtual’是我建立的用户并起名字为virtual,可以随意起名字,但一定要有意义。这个用户就是我在开篇中说道的虚拟用户要使用的guest用户)

 

建立了用户,让我们来查看一下/home下是否有ftp目录,如下图
 

 
嗯,已经有ftp目录了!我们最好在这个文件夹下建立一个文件,以便测试的时候用。

 

4)、 修改vsftpd的配置文件。

 
打开文件:#vi  /etc/vsftpd/vsftpd.conf

 
打开之后找到如下行:

pam_service_name=vsftpd

更改为:

pam_service_name=niming.pam  

 
(说明:这样更改是说明把pam_service_name执行第二步我们建立的pam文件,是服务能够读取这个文件)
**********************************************************************

anonymous_enable=yes

local_enable=YES

更改为:

anonymous_enable=no

local_enable=YES
#说明:这样更改的作用是关闭服务的匿名用户登陆功能, 并且允许非匿名用户的登录,就是虚拟用户所需要的权限

**********************************************************************
 

添加如下几行:

chroot_local_user=YES

guest_enable=YES

guest_username=virtual

#说明:' chroot_local_user=YES '这说明了把用户锁定到登陆目录,guest_enable=yes'说明让服务启用虚拟用户功能,'guest_username=virtual'是指定虚拟用户使用的guest用户,也就是我们第三步建立的virtual用户)
**********************************************************************
去掉
anon_upload_enable=YES(具有上传的权限)
anon_mkdir_write_enable=YES (有建立和删除目录权限)
前面的注释。

添加
anon_world_readable_only=NO(具有浏览和下载的权限)
anon_other_write_enable=YES(有文件改名和删除文件权限)
(#说明:以上四个控制语句,在《 RHEL4- FTP服务(三)配置匿名用户访问VSFTPD服务器 》开始部分有更加详细的说明!)
**********************************************************************
修改:
max_clients=300
(设置FTP服务器最大接入客户端数为300个)
max_per_ip=10 (设置每个IP地址最大连接数为10个)

 

(5) 、运行 vsftpd.

# vsftpd /etc/vsftpd/vsftpd.conf &
( #说明:这样做是指定配置文件, 时可以避免出500错误)

 
(6) 、重新启动vsftpd
 

 

(7) 、查看vsftpd服务是否运行
 

 

 

3、 使用虚拟用户FTP

 
配置完以后简单的测试一下,打开浏览器,在地址栏中输入ftp://服务器IP地址,在弹出的框中输入虚拟用户名字和密码,看一下是不是可以登陆了。
 


按照提示改用windows资源管理器打开ftp

 

登陆成功!!!
 
 
 
 
虽然已经可成功使用虚拟用户访问vsftp服务器,但是 如何实现给每虚拟用户单独建立一个属于自己的配置文件,用以实现不同用户不同权限的一个功能。请看下一篇:

RHEL4-FTP服务(五)配置虚拟用户访问vsftp服务器(下)
                                     
                                            ——为虚拟用户单独生成配置文件

 
 

—————————————————————————————————

特别声明:--

一、本文为原创,著作权及使用权为(作者笔名:闪电cto)本人所有。 ­

二、本文首发于51cto个人博客(http://xudeqiang.blog.51cto.com)。  ­

三、本文只供互联网上的读者分享,不供共享范畴,希知。 ­

四、未经许可严禁对本文作修改、节选、断章性质的处理。 ­

五、可转载,但必须注明原文章首发的出处网址,及文章作者,严禁复制。 ­

六、如若转摘用于杂志网络媒体新闻,必须通知作者得到允许后方可,需收稿费。­

七、作者联系信息:QQ:306718122   邮箱levinboy@foxmail.com

——————————————————————————————