快捷搜索:   nginx

RHEL 5.2下vsftp配置全教程分享(3)

local_root=/home/ftp

所有用户的根目录,,对匿名用户无效

anon_max_rate

匿名用户的最大传输速度,单位是Byts/s

local_max_rate

本地用户的最大传输速度,单位是Byts/s

download_enable= YES

是否允许下载

在上面所有参数中,只要涉及到上传的参数在启用后还需要对应本地目录有写入权限。

四、身份认证。

在上面的参数中,可以通过将anonymous_enable设置为NO禁止匿名用户访问。在禁止匿名用户后,可通过以下方式的授权用户:

本地用户:以/etc/passwd中的用户名为认证方式

虚拟用户:支持将用户名和口令保存在数据库文件或数据库服务器中。相对于FTP的本地用户形式来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案
本地用户在这里就不多介绍了,主要介绍实现虚拟用户的二种方法:

1、使用本地数据文件:

生成虚拟用户文件,建立/etc/vsftpd/vuser.txt文件,内容如下:

tonyzhang    #虚拟用户1
111 #虚拟用户1密码
tomqin #虚拟用户2
111 #虚拟用户2密码

安装生成数据库rpm包:db4-utils。

rpm -ivh db4-utils-4.3.29-9.fc6.i386.rpm

生成虚拟用户数据库。

db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.txt

创建本地映射用户,修改本地映射用户家目录权限。

useradd -d /var/ftp/vuserdir  -s /sbin/nologin vuser
chmod o+rw /var/ftp/vuserdir

修改pam认证文件/etc/pam.d/vsftpd,将原有内容注释。

auth    required      /lib/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vusers

修改/etc/vsfptd/vsftp.conf,增加以下内容。

guest_enable=YES
guest_username=vuser




2、使用MySQL数据文件:

创建本地映射用户。

useradd -s /sbin/nologin vuser

修改/etc/vsfptd/vsftp.conf,增加以下内容。

guest_enable=YES
guest_username=vuser

安装MySQL及相关软件包。

yum -y install mysql.i*

yum -y install perl-DBD-MySQL.i*

yum -y install mysql-server.i*

yum -y install mysql-devel.i*

在MySQL中建立数据库及用户表。

[root@polo ]# mysql -u root mysql -p
mysql>create database ftpvuser; #建立用户数据库
mysql>use ftpvuser; #打开数据库
mysql>create table users(name char(16) binary,passwd char(16) binary); #建立存取用户信息表
#插入二个用户及口令
mysql>insert into users (name,passwd) values ('tonyzhang',password('111'));
mysql>insert into users (name,passwd) values ('tomqin',password('111'));

授权vuser可以读ftpvuser数据库的users表。


[root@polo ]# mysql -u root mysql -p

mysql>grant select on ftpvuser.users to vuser@localhost identified by '123';

mysql>quit

在上述授权完成后,可通过下图方法验证授权是否成功。


编译MySQL的PAM认证模块。

首先需要下载(http://sourceforge.net/projects/pam-mysql)MySQL的PAM认证模块源码,使用tar命令解压后,进行编译。在编译前需要安装以下软件包。

yum -y install gcc.i*

yum -y install gcc-c++.i*

yum -y install pam-devel.i*

安装完成后就可以进行编译。

./configure
make
make install

编辑完成后可查看/lib/security目录下是否已有对应pam模块(如下图)。

修改pam认证文件/etc/pam.d/vsftpd,将原有内容注释。

auth required pam_mysql.so user=vuser passwd=123 host=localhost db=ftpvuser table=users usercolumn=name passwdcolumn=passwd crypt=2
account required pam_mysql.so user= vuser passwd=123 host=localhost db= ftpvuser table=users usercolumn=name passwdcolumn=passwd crypt=2


上述二种虚拟用户配置完成后,在通过以下步骤可针对每个虚拟用户指定不同的配置文件。

1、修改/etc/vsfptd/vsftp.conf

user_config_dir=/etc/vsftpd/vuserconf

2、在/etc/vsfptd/vsftp.vuserconf目录下,以每个虚拟用户的用户名为名称建立配置文件即可。

五、虚拟主机。

在默认情况下,vsftp不像IIS那样可以在同一台主机上建立多个ftp站点,不过并不是没有法子让vsftp在同一台主机上建立多个ftp站点,方法如下:

1、添加一个虚拟IP地址(eth0的IP地址192.168.0.10)

ifconfig eth0:0 192.168.0.11/24

2、创建虚拟FTP服务用户


useradd -d /var/ftp2 -s /sbin/nologin ftp2
chmod -R 755 /var/ftp2
chown -R root:root /var/ftp2
mkdir -m 755 /var/ftp2/pub
chown ftp2:root /var/ftp2/pub

3、准备虚拟FTP服务器的配置文文件

cp /etc/vsfptd/vsftpd.conf /etc/vsfptd/vsftpd1.conf

4、修改/etc/vsftpd/vsfptd.conf

listen_address=192.168.0.10

5、修改/etc/vsftpd/vsfptd1.conf

listen_address=192.168.0.11
ftp_username=ftp2
local_root=/var/ftp2

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论