搭建vsftpd服务器,使用匿名帐户登入

系统:linuxhtml

vsftp版本:version 2.2.2 (yum install vsftpd)linux

FTP的登陆通常有三种方式,分别是:数据库

  • 匿名用户形式:默认安装的状况下,系统只提供匿名用户访问,只须要输入用户anonymous/ftp,并将本身的Email做为口令便可登陆。
  • 本地用户形式:以/etc/passwd中的用户名为认证方式。
  • 虚拟用户形式:支持将用户名和密码保存在文件或数据库中,将登陆用户映射到指定的系统帐号(/sbin/nologin)来访问资源,其中这些虚拟用户是FTP的用户。

从安全性考虑,对于多用户登入、为了方便对用户权限进行管理,通常都是用虚拟用户形式。vim

 

Vsftp安装:浏览器

       若是能够连外网,能够直接使用命令:  yum install vsftpd (建议用这种方式,这个会自动把依赖搞好)安全

       若是用tar包,  tar –zxvf vsftpd-3.0.2.tar.gz服务器

                              make && make install 性能

 

ftp虚拟账号优化

公司为了宣传最新的产品信息,计划搭建FTP 服务器,为客户提供相关文档的下载。对全部互ui

联网开放共享目录,容许下载产品信息,禁止上传。公司的合做单位可以使用FTP 服务器进行上

传和下载,但不能够删除数据。须要保证服务器的稳定性并作优化。

 

建立ftp虚拟账号。容许客户使用ftp账号下载文件。 可是,大家本身的合做伙伴账号:vip账号能够上传一内部文件。

 

需考虑到服务器的安全性,因此关闭实体用户登陆,使用虚拟账号验证机制,并对不一样虚拟账号设置不

同的权限。

保证服务器的性能,还须要根据用户的等级,限制客户端的链接数及下载速度。

 

1、建立用户数据库

(1)建立用户文本文件

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

vip

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

ftp  #

123456  #密码

vip

123456

 

(2)生成数据库

保存虚拟账号和密码的文本文件没法被系统账号直接调用。咱们须要使用db_load 命令生成db

数据库文件

安装:

[root@xuegod63 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@xuegod63 vsftpd]# rm -rf /etc/vsftpd/vsftpd_virtualuser.txt   #为了安全,删除此文件。后期再也不使用此文件。

 

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

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

[root@xuegod63 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。将默认配置使用“#”所有注释,下面添加两行,pam_userdb.so能够写成/lib64/security/pam_userdb.so的绝对路径

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@xuegod63 vsftpd]# useradd -d /var/ftp/share ftpuser

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

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

[root@xuegod63 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@xuegod63 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@xuegod63 ~]# grep vuserconfig /etc/vsftpd/vsftpd.conf   #查看要建立的目录名

user_config_dir=/etc/vsftpd/vuserconfig

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

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

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

 

配置虚拟账号配置文件,写入如下内容:

[root@xuegod63 ~]# 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@xuegod63 ~]# 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

 

附:

       若是想要将虚拟帐户限制在某个路径,须要在该帐户的文件中配置:

       local_root=/home/lxxd/dssj/Shenzhen

       容许帐户删除权限

anon_other_write_enable=YES

 

5、重启vsftpd 使配置生效

[root@xuegod63 ~]# service vsftpd restart

相关文章
相关标签/搜索