vsftpd--虚拟用户登陆
实验名称:vsftpd--虚拟用户登陆
系统:redhat linux 5.0  
实验过程:
FTP服务器配置
1.安装FTP服务的相关软件                                                       
方法一:RPM命令
#rpm  -ivh  vsftpd-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主配置文件
要使用虚拟账户登录,必须关闭匿名用户登录,打开本地用户登录,同时要配置虚拟账号登录的配置文件。
vsftpd--虚拟用户登陆_vsftpd   虚拟账号的创
Anonymous_enable=NO 
禁止匿名用户登录
Local_enable=YES
开启本地用户登录
 vsftpd--虚拟用户登陆_休闲_02
 
 
Chroot_list_enable=YES
是将用户的主目录锁定在自家中
Chroot_list_file=/etc/vsftpd/chroot_list
/etc/vsftpd/chroot_list中的用户都是能够访问服务的,可以将能访问服务的用户添加到该文本中。
 
vsftpd--虚拟用户登陆_休闲_03
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
密码
vsftpd--虚拟用户登陆_vsftpd   虚拟账号的创_04
 
 
 
第二步:生成数据库文件
保存虚拟帐号和密码的文本文件无法被系统帐号直接调用,我们需要把文本文件转换为数据库文件,这样才能被直接调用。
生成数据库需要使用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的安装光盘中获取,如下图:
vsftpd--虚拟用户登陆_职场_05
选择安装即可。
Ok,我们现在使用db_load把文本文件转换为数据库文件,
db-load –T –t hash –f /etc/vsftpd/user /etc/vsftpd/user.db
如下图:
vsftpd--虚拟用户登陆_vsftpd   虚拟账号的创_06 
 
第三步:修改数据库文件访问权限
为了防止非法用户的盗取,我们将刚刚保存用户名和密码的数据库文件进行权限的修改,只能够让root用户可读可写。
chmod 600 /etc/vsftpd/user.db
如下图所示:
 
vsftpd--虚拟用户登陆_职场_07
权限如下图所示:
vsftpd--虚拟用户登陆_职场_08
 
3)配置PAM文件
为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的pam,通过修改指定的配置文件,调整对该程序的认证方式。PAM模块配置文件路径为/etc/pam.d/目录,此目录下保存着大量与认证有关的配置文件,并以服务名称命名。
说明:PAM模块.PAM(Plugable Authentication Module)为可插拔认证模块
打开vi /etc/pam.d/vsftpd,配置后如下图所示:
vsftpd--虚拟用户登陆_vsftpd   虚拟账号的创_09 
4)启动服务
#service vsftpd restart
如下图所示:
 vsftpd--虚拟用户登陆_职场_10
3.测试账号
首先用redhat账户登录
vsftpd--虚拟用户登陆_休闲_11
用户名和密码争取后,登录成功后,上传一个文件,如下图所示:
vsftpd--虚拟用户登陆_vsftpd   虚拟账号的创_12 
 
 
另一个账户windows,测试跟RedHat账户测试一样。
 
 
总结:用vsftpd做虚拟账户登录如以上所述,希望大家可以学习,如果有步骤不对或大家不明确的地方请加QQ421089190,希望大家多多指点,谢谢