四、身份认证。

在上面的参数中,可以通过将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

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

 


相关内容