vsftp虚拟用户的配置

FTP服务概述:

FTP服务器是在互联网上提供文件存储和访问服务器的计算机,它们依靠FTP协议提供服务。

今天的主角:vsftp

VSFTP是基于GPL发布的类unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP,从此名称可以看出来,编制者的初衷是为了代码的安全。

特点:安全、高校

模式:C/S模式

服务器配置文件位置:

/etc/vsftpd/vsftpd.conf   #核心配置文件、

/etc/vsftp/ftpusers  #用于指定哪些用户不能访问FTP服务器,即黑名单。

/etc/vsftp/user_list  #指定允许使用vsftpd用户的列表文件,即白名单。

下面示例虚拟用户的配置

创建ftp虚拟帐号。允许客户使用ftp帐号下载文件。 但是,你们自己的合作伙伴帐号:vip帐号可以上传一内部文件。需考虑到服务器的安全性,所以关闭实体用户登录,使用虚拟帐号验证机制,并对不同虚拟帐号设置不同的权限。保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。

1、创建用户数据库

(1)创建用户文本文件

先建立用户文本文件vsftpd_virtualuser.txt,添加两个虚拟帐号,公共帐号ftp 及客户帐号

vip

[root@test63 vsftpd]# vim /etc/vsftpd/vsftpd_virtualuser.txt  #写入以下内容。格式一行用户一行密码。

ftp  #用户

123456  #密码

vip

123456 

(2)生成数据库

保存虚拟帐号和密码的文本文件无法被系统帐号直接调用。我们需要使用db_load 命令生成db

数据库文件

安装:

[root@test63 vsftpd]# rpm -qf `which db_load `

db4-utils-4.7.25-16.el6.x86_64 

# db_load -T -t hash -f /etc/vsftpd/vsftpd_virtualuser.txt  /etc/vsftpd/vsftpd_virtualuser.db

选项-T允许应用程序能够将文本文件转译载入进数据库

-t hash使用hash码加密

-f 指定包含用户名和密码文本文件。此文件格式要示:奇数行用户名、偶数行密码

[root@test63 vsftpd]# rm -rf /etc/vsftpd/vsftpd_virtualuser.txt   #为了安全,删除此文件。后期不再使用此文件。

 

(3)修改数据库文件访问权限

[root@test63 vsftpd]# chmod 600 /etc/vsftpd/vsftpd_virtualuser.db

[root@test63 vsftpd]# ll !$

ll /etc/vsftpd/vsftpd_virtualuser.db

-rw------- 1 root root 12288 Nov 10 21:16 /etc/vsftpd/vsftpd_virtualuser.db

 

2、配置PAM 文件

为了使服务器能够使用数据库文件,对客户端进行身份验证,需要调用系统的PAM 模块.

PAM概述:

PAM(Plugable Authentication Module)为可插拔认证模块,不必重新安装应用系统,通过修

改指定的配置文件,调整对该程序的认证方式。PAM 模块配置文件路径为/etc/pam.d/目录,此

目录下保存着大量与认证有关的配置文件,并以服务名称命名。

vim  /etc/pam.d/vsftpd

修改vsftpd 对应的PAM 配置文件/etc/pam.d/vsftpd。将默认配置使用“#”全部注释,添加两行应字段。

auth       required /lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_virtualuser

account  required /lib64/security/pam_userdb.so  db=/etc/vsftpd/vsftpd_virtualuser

 

3、创建虚拟帐号对应的系统用户及ftp共享的目录

对于公共帐号和客户帐号,因为需要配置不同的权限,所以可以将两个帐号的目录进行隔离,控

制用户的文件访问。公共帐号ftp 对应系统帐号ftpuser,并指定其主目录为/var/ftp/share,

而客户帐号vip 对应系统帐号ftpvip,指定主目录为/var/ftp/vip。

[root@test63 vsftpd]# useradd -d /var/ftp/share ftpuser

[root@test63 vsftpd]# useradd -d /var/ftp/vip ftpvip

[root@test63 vsftpd]# chmod -R 500 /var/ftp/share/  #修改权限

[root@test63 vsftpd]# chmod -R 700 /var/ftp/vip/

chmod -R 500 /var/ftp/share/ :公共帐号ftp 只允许下载,修改share 目录其他用户权限为

rx 可读可执行。

chmod -R 700 /var/ftp/vip/ :客户帐号vip 允许上传和下载,所以对vip 目录权限设置为rwx,

可读可写可执行。 

4、建立配置文件

一个配置文件无法实现此功能,需要为每个虚拟帐号建立独立的配置文件,并根据需要进行相应的设置。

(1)修改vsftpd.conf 主配置文件

[root@test63 vsftpd]# cp vsftpd.conf.back vsftpd.conf

禁用匿名用户登录并启用本地用户登录设置

vim vsftpd.conf

改:

#anonymous_enable=YES 

为:

#anonymous_enable=NO 

local_enable=YES   #确认此选项打开,允许本地用户登录。 Uncomment :取消注释

chroot_local_user=YES   #确认此选项打开。将所有本地用户限制在家目录中,NO 则不限制

pam_service_name=vsftpd  #确认在文件的最后有选项。配置vsftpd 使用的PAM 模块为vsftpd

在此选项后面追加:

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

max_clients=300:设置FTP 服务器最大接入客户端数为300 个

max_per_ip=10:设置每个IP 地址最大连接数为10 个

 

(2)建立虚拟帐号配置文件

在user_config_dir 指定路径下,建立与虚拟帐号同名的配置文件并添加相应的配置字段

首先建立公共帐号ftp 的配置文件

 [root@test63 ~]# grep vuserconfig /etc/vsftpd/vsftpd.conf   #查看要创建的目录名

user_config_dir=/etc/vsftpd/vuserconfig

[root@test63 ~]# mkdir /etc/vsftpd/vuserconfig

[root@test63 ~]# touch /etc/vsftpd/vuserconfig/ftp

[root@test63 ~]# touch /etc/vsftpd/vuserconfig/vip

 

配置虚拟帐号配置文件,写入以下内容:

[root@test63 ~]# vim /etc/vsftpd/vuserconfig/ftp

guest_enable=yes

guest_username=ftpuser

anon_world_readable_only=no

anon_max_rate=50000

解释:

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

guest_username=ftpuser:设置ftp 对应的系统帐号为ftpuser

anon_world_readable_only=no:允许匿名用户浏览器整个服务器的文件系统

anon_max_rate=50000:限定传输速率为50KB/s

 

注意:

vsftpd 对于文件传输速度限制并不是绝对锁定在一个数值上哈,而是在80%~120%之间变化

比如设置100KB/s 则实际是速度在80KB/s~120KB/s 之间变化

下面是合作伙伴帐号的配置文件vip

[root@test63 ~]# vim /etc/vsftpd/vuserconfig/vip  #写入以下内容

guest_enable=yes

guest_username=ftpvip

anon_world_readable_only=no

write_enable=yes

anon_mkdir_write_enable=yes

anon_upload_enable=yes

anon_max_rate=100000

解释:

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

guest_username=ftpvip:设置ftp 对应的系统帐号为ftpvip

anon_world_readable_only=no:允许匿名用户浏览器整个服务器的文件系统

write_enable=yes:允许在文件系统写入权限

anon_mkdir_write_enable=yes:允许创建文件夹

anon_upload_enable=yes:开启匿名帐号的上传功能

anon_max_rate=100000:限定传输速度为100KB/s

 

5、重启vsftpd 使配置生效

[root@test63 ~]# service vsftpd restart

6、测试

(1)公共帐号ftp 测试

在公共帐号测试前,我们先建立个测试文件

[root@test63 vsftpd]#  cp /mnt/Packages/mysql-server-5.1.52-1.el6_0.1.x86_64.rpm /var/ftp/share/productinfo.xls  #共享的文件要大一些,方便后期测试下载速度。

[root@test63 vsftpd]# cp -r /boot/grub/ /var/ftp/share/   #复制一个目录

这次在Linux下测试。

ftp客户端命令

lftp  ftpIP   -u  username,passwd

或:

lftp  ftpIP   -u  username

 

使用公共帐号ftp,登录ftp 服务器

[root@test64 ~]# lftp 192.168.1.63 -u ftp,123456

lftp ftp@192.168.1.63:~> ls

-r--r--r--    1 0        0         8492640 Nov 10 13:49 produtinfo.xls

lftp ftp@192.168.1.63:/> get produtinfo.xls  #下载单个文件  。并测试限速50KB/s

 

 

lftp ftp@192.168.1.63:/> mget *.txt 

lftp ftp@192.168.1.63:/> mirror grub/  #下载一个文件夹

lftp ftp@192.168.1.63:/> !ls grub   #!bash命令

 

测试 vip帐号

[root@test63 vsftpd]# lftp 192.168.1.63 -u vip

Password:

lftp vip@192.168.1.63:~> ls         

lftp vip@192.168.1.63:/> !ls

chroot_list     user_list          vsftpd_conf_migrate.sh

ftpusers  vsftpd.conf     vsftpd_virtualuser.db

grub              vsftpd.conf.anon  vuserconfig

productinfo.xls  vsftpd.conf.back

lftp vip@192.168.1.63:/> put chroot_list   #测试上传

12 bytes transferred      

 

允许:vip帐号 删除文件

[root@test63 vsftpd]# cat vuserconfig/vip

guest_enable=yes

guest_username=ftpvip

anon_world_readable_only=no

write_enable=yes

anon_mkdir_write_enable=yes

anon_upload_enable=yes

anon_other_write_enable=YES    # 允许删除,重命名等

anon_max_rate=100000

 

[root@test63 vsftpd]# service vsftpd restart

[root@test63 vsftpd]# lftp 192.168.1.63 -u vip

Password:

lftp vip@192.168.1.63:~> ls  

lftp vip@192.168.1.63:/> rm -rf chroot_list

rm ok, `chroot_list' removed

lftp vip@192.168.1.63:/> ls

-r--r--r--    1 0        0         8492640 Mar 09 14:21 a.zip

 

 

 

转载于:https://my.oschina.net/wulinux/blog/831761

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值