vsftp服务器mysql认证_基于mysql控制vsftp的用户认证机制

一、简介

vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开发源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。

vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

在开源操作系统中常用的FTPD套件主要还有ProFTPD、PureFTPd和wuftpd等

二、特点

①vsftpd 是以一般身份启动服务,所以对于 Linux 系统的使用权限较低,对于Linux 系统的危害就相对的减低了。此外, vsftpd 亦利用 chroot() 这个函式进行改换根目录的动作,使得系统工具不会被vsftpd 这支服务所误用;

②任何需要具有较高执行权限的 vsftpd 指令均以一支特殊的上层程序( parent process ) 所控制 ,该上层程序享有的较高执行权限功能已经被限制的相当的低,并以不影响Linux 本身的系统为准;

③所有来自 clients 端,想要使用这支上层程序所提供的较高执行权限之vsftpd 指令的需求,均被视为『不可信任的要求』来处理,必需要经过相当程度的身份确认后,方可利用该上层程序的功能。例如chown(), Login 的要求等等动作;

④此外,上面提到的上层程序中,依然使用 chroot() 的功能来限制使用者的执行权限。

三、基于mysql实现vsftp的账号管理

1.安装mysql和pam_mysql[root@bogon yum.repos.d]# yum -y install vsftpd mysql-server mysql-devel pam_mysql

2.准备数据库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.创建表mysql> create table user(id int AUTO_INCREMENT primary key NOT NULL,name varchar(50) binary NOT NULL, password char(48) binary NOT NULL);

4.添加测试的虚拟用户mysql> insert into user(name,password)values('lili',password('wodehao123')),('tom',password('wodehao123'));

说明:为了确保账号的安全,本处使用的为mysql的password加密机制

5.配置pam认证所需的文件

编辑/etc/pam.d/vsftp.conf添加如下行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认证

建立虚拟用户映射的系统用户及对应的目录[root@bogon ~]# useradd -s /sbin/nologin -d /var/ftproot vuser

[root@bogon ~]# chmod go+rx /var/ftproot

请确保/etc/vsftpd/vsftpd.conf中已经启用了一下选项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选项的值如下所示

pam_service_name=vsftpd.mysql

7.启动服务,并使服务能够开机自动启动[root@bogon ~]# service vsftpd start

Starting vsftpd for vsftpd: [ OK ]

[root@bogon ~]# chkconfig vsftpd on

8.测试

f4ebf53a08899e212d33703c22df4476.png

测试成功了!

9.创建一个文件试试,要修改配置文件是其有创建文件的权限anon_mkdir_write_enable=YES

314d812c493ecb730386265dd5276b82.png   10.配置虚拟用户具有不同的访问权限

配置vsftpd为虚拟用户使用配置文件目录

编辑vstpd的主配置文件,添加如下行user_config_dir=/etc/vsftpd/vuser_dir

创建所需要目录,为虚拟用户提供配置文件[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文件,在里面添加如下选项即可。anon_upload_enable=YES

大功告成,本人水平有限,如有错误,请各位大神批评指正!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值