您的位置:首页 > 编程语言 > PHP开发

企业中vsftp虚拟用户高级配置实战

2012-05-02 19:19 246 查看
[align=center] 企业中vsftp虚拟用户高级配置实战[/align]

ftp服务器在企业中使用是非常多的,今天在迁移以前同事搭建的一个vsftp虚拟用户的站点的时候,走了些弯路,总结出来写成文档方便以后搭建。

搭建的时候往往为了安全,需要针对不同目录给予不同的权限,那么今天就来实战一下关于企业中vsftp虚拟用户验证的方式是如何实现的。

一、Vsftp的安装

我的安装环境为:Centos 5.5 64 bit

Vsftp的安装非常简单,只需要执行如下的命令就安装完成了。

yum -y install vsftpd db4-tcl db4-utils db4-devel

chkconfig --level 2345 vsftpd on

备注:如果不安装db4-utils,在后面使用db_load命令的时候会提示找不到命令。

二、Vsftp的配置

Vsftp的配置包含几个步骤,分别为:

1.
创建用户数据库

A.创建用户文本文件

vim /etc/vsftpd/vftpuser.txt

添加虚拟帐号的格式如下:

格式:

虚拟帐号1

密码

虚拟帐号2

密码

B. 使用db_load命令生成数据库

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

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

C.设置用户文本文件和数据库文件的权限为600,防止非法用户获取密码

chmod 600 /etc/vsftpd/vftpuser.*

2.
配置PAM认证文件

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

使用echo命令清除掉安装vsftp的时候自动添加的内容,或者用#号注释掉也可以。

echo > /etc/pam.d/vsftpd

#如果不是全新安装,请注意备份次文件

vim /etc/pam.d/vsftpd 添加如下内容:

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

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

3.
创建虚拟帐号以及对应的系统帐号

创建系统帐号:

mkdir -p /home/ftp/ftp_upload

mkdir -p /home/ftp/ftp_download

useradd -d /home/ftp/ftp_upload supper -s /sbin/nogloin

useradd -d /home/ftp/ftp_download ftpuser -s /sbin/nogloin

并通过chmod对相应的目录赋予权限

chown -R supper.root /home/ftp/ftp_upload

chown -R ftpuser.root /home/ftp/ftp_download

chmod 700 /home/ftp/ftp_upload #允许上传下载

chmod 500 /home/ftp/ftp_download ftpuser #只允许下载

备注:因为现在新版本的vsftp处于安全的考虑,会自动检查根目录的权限,如果根目录是777的话会报如下错误,所以请大家在设置权限的时候注意,不要设置根目录为777权限.

500 OOPS: vsftpd: refusing to run with writable anonymous root

4. 创建配置文件

在vsftp的配置文件中,可以分别为每个虚拟用户设置不同的子配置文件,从而让子用户获得不同的权限,接下来就来看一下vsftp的配置文件如何设置。

A. 主配置文件的设置

主配置文件主要是设置所有虚拟用户相同的配置,以及通过user_config_dir参数设置子配置文件的路径,配置如下:

anonymous_enable=NO

#禁用匿名用户登录

local_enable=YES

#启用本地用户登录

listen=YES

#启动监听,设置成standalone启动,不然是用/etc/rc.d/init.d/vsftpd restart会#报Starting
vsftpd for vsftpd: 500 OOPS: vsftpd: not configured for standalone, #must be
started from inetd错误

chroot_local_user=YES

#将所有本地用户限制在家目录中

pam_service_name=vsftpd

#这个要和前面设置的pam.d目录下的文件保持一致

user_config_dir= /etc/vsftpd/user_config

#设置用户的子配置文件目录

max_clients=300

#ftp最大的连接客户数

max_per_ip=10

#设置每个IP的最大连接数

B.子配置文件的设置

我们可以为每个虚拟用户设置不同配置,比如:是否可以上传、下载速度限制为多少、家目录,对应的什么真实的用户等等。

vim /etc/vsftpd/user_config/carl

guest_enable=yes

#开启虚拟帐号登录

guest_username=www

#虚拟帐号carl对应的系统帐号

local_root=/data/htdocs

#设置虚拟用户的目录

anon_world_readable_only=no

#设置是否允许匿名用户浏览器整个服务器的文件系统

write_enable=yes

#设置虚拟用户是否可以写入

anon_mkdir_write_enable=yes

#设置虚拟用户是否可以创建文件夹

anon_other_write_enable=yes

#设置虚拟用户是否可以执行其他的写入操作,比如删除、重命名、覆盖操作。

anon_upload_enable=yes

#允许虚拟用户的上传功能

anon_max_rate=100000

#设置虚拟用户的传输速度为100KB/s

5. 启动vsftp

使用如下命令启动vsftp

/etc/rc.d/init.d/vsftpd start

至此,企业中的支持虚拟用户的vsftp的搭建已经介绍完成,请读者自行搭建环境测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: