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 ,添加两个虚拟帐号, redhat windows

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 做虚拟账户登录如以上所述,希望大家可以学习,如果有步骤不对或大家不明确的地方请加 QQ 421089190 ,希望大家多多指点,谢谢