一、简介
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等
二、特点
三、基于mysql实现vsftp的账号管理
1.安装mysql和pam_mysql
1
|
[root@bogon yum.repos.d]# yum -y install vsftpd mysql-server mysql-devel pam_mysql
|
2.准备数据库
1
2
3
4
5
6
7
8
|
mysql> create database vsftpd;
Query OK,
1
row affected (
0.00
sec)
mysql> grant all on vsftpd.* to vsftpd@localhost identified by
'wangfeng7399'
;
Query OK,
0
rows affected (
0.00
sec)
mysql> grant all on vsftpd.* to vsftpd@
'127.0.0.1'
identified by
'wangfeng7399'
;
Query OK,
0
rows affected (
0.00
sec)
mysql> flush privileges;
Query OK,
0
rows affected (
0.00
sec)
|
3.创建表
1
|
mysql> create table user(id
int
AUTO_INCREMENT primary key NOT NULL,name
var
char(
50
) binary NOT NULL, password char(
48
) binary NOT NULL);
|
4.添加测试的虚拟用户
1
|
mysql> insert into user(name,password)values(
'lili'
,password(
'wodehao123'
)),(
'tom'
,password(
'wodehao123'
));
|
说明:为了确保账号的安全,本处使用的为mysql的password加密机制
5.配置pam认证所需的文件
编辑/etc/pam.d/vsftp.conf添加如下行
1
2
|
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=wangfeng7399 host=localhost db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=
2
account required /lib64/security/pam_mysql.so user=vsftpd passwd=wangfeng7399 host=localhost db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=
2
|
6.修改vsftpd的配置文件,使其适应mysql认证
建立虚拟用户映射的系统用户及对应的目录
1
2
|
[root@bogon ~]# useradd -s /sbin/nologin -d /
var
/ftproot vuser
[root@bogon ~]# chmod go+rx /
var
/ftproot
|
请确保/etc/vsftpd/vsftpd.conf中已经启用了一下选项
1
2
3
4
5
6
7
8
|
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
并在文件的末尾添加
guest_enable=YES
guest_username=vuser
anon_umask=
022
|
并确保pam_service_name选项的值如下所示
1
|
pam_service_name=vsftpd.mysql
|
7.启动服务,并使服务能够开机自动启动
1
2
3
|
[root@bogon ~]# service vsftpd start
Starting vsftpd
for
vsftpd: [ OK ]
[root@bogon ~]# chkconfig vsftpd on
|
8.测试
测试成功了!
9.创建一个文件试试,要修改配置文件是其有创建文件的权限
1
|
anon_mkdir_write_enable=YES
|
配置vsftpd为虚拟用户使用配置文件目录
编辑vstpd的主配置文件,添加如下行
1
|
user_config_dir=/etc/vsftpd/vuser_dir
|
创建所需要目录,为虚拟用户提供配置文件
1
2
3
|
[root@bogon ftproot]# mkdir /etc/vsftpd/vuser_dir
[root@bogon ftproot]# cd /etc/vsftpd/vuser_dir
[root@bogon vuser_dir]# touch lili tom
|
配置虚拟用户的访问权限
虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让tom用户具有上传文件的权限,可以修改/etc/vsftpd/vusers/tom文件,在里面添加如下选项即可。
1
|
anon_upload_enable=YES
|
大功告成,本人水平有限,如有错误,请各位大神批评指正!!!
本文转自wangfeng7399 51CTO博客,原文链接:http://blog.51cto.com/wangfeng7399/1382881,如需转载请自行联系原作者