VSFTP+MariaDB 实现ftp的匿名认证
Mysql:
172.20.1.11 作为mysql的服务端,安装过程略
创建数据库,及授权远程账户
MariaDB [(none)]> create database vsftpd;
MariaDB [(none)]> GRANT select ON vsftpd.* TO ‘ftpuser‘@‘%‘ identified by ‘123456‘;
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> use vsftpd;
Database changed
MariaDB [vsftpd]> CREATE TABLE users(
-> id int auto_increment not null,
-> name char(20) binary not null,
-> password char(48) binary not null,
-> primary key(id));
MariaDB [vsftpd]>
insert into users(name,password) values(‘zhangsan‘,password(‘zhangsan‘)),(‘lisi‘,password(‘lisi‘));
Vsftpd:
172.20.1.10 VSFTP服务器上需要安装vsftpd 和pam_mysql(epel源中,是pam连接mysql的驱动程序,epel源需要单独配置)
[root@localhost ~]# yum install vsftpd pam_mysql
建立pam认证所需文件
[root@localhost log]# rpm -ql pam_mysql
/lib64/security/pam_mysql.so 共享模块的路径,下面会用得到
/usr/share/doc/pam_mysql-0.7
/usr/share/doc/pam_mysql-0.7/COPYING
/usr/share/doc/pam_mysql-0.7/CREDITS
/usr/share/doc/pam_mysql-0.7/ChangeLog
/usr/share/doc/pam_mysql-0.7/NEWS
/usr/share/doc/pam_mysql-0.7/README
[root@localhost vsftpd]# vim /etc/pam.d/vsftpd.mysql (不存在,创建即可)
auth required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=172.20.1.11 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=172.20.1.11 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
创建系统用户(虚拟用户需要对应一个系统用户)
[root@localhost vsftpd]# useradd -s /sbin/nologin -d /var/ftproot vuser
[root@localhost vsftpd]# chmod go+rx /var/ftproot
请确保/etc/vsftpd/vsftpd.conf中已经启用了以下选项
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
chroot_local_user=YES
而后添加以下选项
guest_enable=YES
guest_username=vuser
并确保pam_service_name选项的值如下所示
pam_service_name=vsftpd.mysql
至此vsftpd已经可以正常开启,但是使用虚拟用户登录进来后,所有的权限都是一样的
对不同的虚拟用户赋予不同的权限
编辑/etc/vsftpd/vsftpd.conf添加如下行
user_config_dir=/etc/vsftpd/vusers_config
[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_config 目录不存在,创建之
[root@localhost vsftpd]# cd /etc/vsftpd/vusers_config
[root@localhost vusers_config]# touch zhangsan lisi 为每一个虚拟用户创建一个文件,里面内容定义其权限
常用的有:
anon_upload_enable={YES|NO} 是否允许上传操作
anon_mkdir_write_enable={YES|NO} 是否允许写入操作
anon_other_write_enable={YES|NO} 是否允许删除等操作
[root@localhost vusers_config]# cat zhangsan lisi
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
zhangsan用户登录效果,可以上传、重命名和删除
Lisi用户登录效果,可以上传,但不可以重命名及删除
如果禁止上传、创建、重命名、删除等,则全部NO掉即可
原文地址:http://wangkunpeng.blog.51cto.com/1538469/1880600