vsftpd--虚拟用户登陆<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

实验名称:vsftpd--虚拟用户登陆

系统:redhat linux 5.0  
实验过程:

FTP服务器配置
1.安装FTP服务的相关软件                                                       

方法一:RPM命令

#rpm  -ivh  vsftpd-<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />1.1.3-8.i386.rpm

方法二:编译方式

1)编译VSFTPD

[root@hpe45 root]# tar zxvf vsftpd-1.2.0.tar.gz

[root@hpe45 root]# cd vsftpd-1.2.0

[root@hpe45 vsftpd-1.2.0]# make

2)安装编译好的VSFTPD

[root@hpe45 vsftpd-1.2.0]# make  install

[root@hpe45 vsftpd-1.2.0]# cp vsftpd /usr/local/sbin/vsftpd

[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf.5 /usr/local/share/man/man5

[root@hpe45 vsftpd-1.2.0]# cp vsftpd.8 /usr/local/share/man/man8

[root@hpe45 vsftpd-1.2.0]# cp vsftpd.conf /etc

(3).创建用户账号

[root@hpe45 root]# mkdir /var/ftp/redhat

[root@hpe45 root]# mkdir /var/ftp/windows

[root@hpe45 root]# useradd -d /var/ftp/redhat  redhat

[root@hpe45 root]# useradd -d /var/ftp/windows windows

[root@hpe45 root]# chown root.root /var/ftp

[root@hpe45 root]# chmod og-w /var/ftp

2.配置服务器
1)修改vsftpd.conf主配置文件

要使用虚拟账户登录,必须关闭匿名用户登录,打开本地用户登录,同时要配置虚拟账号登录的配置文件。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

Anonymous_enable=NO 

禁止匿名用户登录

Local_enable=YES

开启本地用户登录
 
 
 
Chroot_list_enable=YES

是将用户的主目录锁定在自家中

Chroot_list_file=/etc/vsftpd/chroot_list

/etc/vsftpd/chroot_list中的用户都是能够访问服务的,可以将能访问服务的用户添加到该文本中。
 

Guest_enable=yes : 开启虚拟帐号登录

Guest_username=linux : 设置ftp对应的系统帐号为linux

Pam_service_name=vsftpd : 配置vsftpd使用的PAM模块为vsftpd

Userlist_enable=yes : 这项如果是yes,那么在/etc/vsftpd/user_list中的用户将不能访问ftp

Listen_address=192.168.1.102  : 监听地址为:192.168.1.102

Listen_port=21 :监听端口为21

Max_clients=300  :客户端访问的最大数为300

Max_per_ip=10  : 同一个客户端与服务器的最大并发连接数为10

Tcp_wrappers=yes  :  设置服务器是否启用tcp_wrappers

 

Chroot_local_user=yes   : 将所有的本地用户锁定在家目录中

User_config_dir=/etc/vsftpd/conf : 设置虚拟帐号的主目录为/etc/vsftpd/conf

(2)、创建用户数据库

第一步:创建用户文本文件

先建立用户文本文件user.txt,添加两个虚拟帐号,redhatwindows

touch /etc/vsftpd/user

vim /etc/vsftpd/user

格式:

虚拟帐号1

密码

虚拟帐号2

密码

 
 
 
第二步:生成数据库文件

保存虚拟帐号和密码的文本文件无法被系统帐号直接调用,我们需要把文本文件转换为数据库文件,这样才能被直接调用。

生成数据库需要使用db_load这个工具,而db_load需要安装:

db4-4.3.29-9.fc6.i386.rpm

db4-devel-4.3.29-9.fc6.i386.rpm

db4-utils-4.3.29-9.fc6.i386.rpm这三个软件,这三个软件可以从RedHat5.0的安装光盘中获取,如下图:

选择安装即可。

Ok,我们现在使用db_load把文本文件转换为数据库文件,

db-load –T –t hash –f /etc/vsftpd/user /etc/vsftpd/user.db

如下图:

 

 

第三步:修改数据库文件访问权限

为了防止非法用户的盗取,我们将刚刚保存用户名和密码的数据库文件进行权限的修改,只能够让root用户可读可写。

chmod 600 /etc/vsftpd/user.db

如下图所示:
 

权限如下图所示:

 

3)配置PAM文件

为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的pam,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。

说明:PAM模块.PAM(Plugable Authentication Module)为可插拔认证模块

打开vi /etc/pam.d/vsftpd,配置后如下图所示:

 

4)启动服务

#service vsftpd restart

如下图所示:

 

3.测试账号

首先用redhat账户登录

用户名和密码争取后,登录成功后,上传一个文件,如下图所示:

 

 

 

另一个账户windows,测试跟RedHat账户测试一样。

 

 

总结:用vsftpd做虚拟账户登录如以上所述,希望大家可以学习,如果有步骤不对或大家不明确的地方请加QQ421089190,希望大家多多指点,谢谢