实现基于MYSQL验证的vsftpd虚拟用户
2017-10-26 19:39
741 查看
一、说明
服务器A:
系统:centos6IP:172.17.16.169
服务器B:
系统:centos7IP:172.17.17.173
二、服务器B配置数据库
1.安装数据库服务
2.安全脚本
3.创建需要的数据库、表、用户
create database vsftpd; create table vsftpd.ftpusers(name char(20),password char(50)); grant select on vsftpd.ftpusers to ftp@'%' identified by 'password';
4.在表中插入数据
insert vsftpd.ftpusers value ('ftp1',password('ftp1password')); insert vsftpd.ftpusers value ('ftp2',password('ftp2password')); insert vsftpd.ftpusers value ('ftp3',password('ftp3password')); insert vsftpd.ftpusers value ('ftp4',password('ftp4password')); insert vsftpd.ftpusers value ('ftp5',password('ftp5password'));
三、安装支持mysql的pam模块
1.centos6
yum -y install pam_mysql
2.centos7——编译安装
#开发包/包组 yum -y install mariadb-devel yum -y groupinstall Development\ Tools yum -y install pam-devel #config ./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr #编译安装 make && make install #生成的模块文件路径 /usr/lib64/security/pam_mysql.so /usr/lib64/security/pam_mysql.la
四、在FTP服务器上配置vsftpd服务
1.在FTP服务器上建立pam认证所需文件
vim /etc/pam.d/vsftpd.mysql #添加如下两行 auth required pam_mysql.so user=ftp passwd=password host=172.17.17.173 db=vsftpd table=ftpusers user column=name passwdcolumn=password crypt=2 account required pam_mysql.so user=ftp passwd=password host=172.17.17.173 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=password crypt=2 加密方式在README中有说明
2.建立相应用户与目录
useradd -s /sbin/nologin -m -d /var/ftproot vuser #主目录有w权限,则用户将被拒绝登陆 chmod 555 /var/ftproot mkdir -p /var/ftproot/ftp{1,2,3,4,5}/{upload,pub} chmod 555 /var/ftproot/* #对upload设置w权限用来上传文件 setfacl -R -m d:u:vuser:rwx /var/ftproot/ftp{1,2,3,4,5}/{upload,pub}
3.修改vsftpd配置文件,配合mysql认证
anonymous_enable=YES guest_enable=YES guest_username=vuser pam_service_name=vsftpd.mysql
五、配置虚拟用户具有不同的访问权限
vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限每个虚拟用户的配置文件名同虚拟用户的用户名。
配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可
1.在vsftpd.conf指定其路径及名称
vim /etc/vsftpd/vsftpd.conf 添加下行 user_config_dir=/etc/vsftpd/conf.d
2.为每个用户提供单独的配置文件
mkdir /etc/vsftpd/conf.d touch /etc/vsftpd/conf.d/ftp{1,2,3,4,5,6}
3.在上一步骤创建的文件中配置虚拟用户的访问权限
有关设置注意:=两边不能有空格
anon_upload_enable=YES 允许上传 要保证对非根且登陆目录有w权限 anon_mkdir_write_enable=YES 修改上传的目录 anon_other_write_enable=YES 修改上传的文件 local_root=/ftproot 登录目录改变至指定的目录
六、测试
1.各用户配置文件
conf.d/ftp1 local_root=/var/ftproot/ftp1/ anon_upload_enable=YES anon_other_write_enable=YES conf.d/ftp2 anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/var/ftproot/ftp2/ conf.d/ftp3 local_root=/var/ftproot/ ftp4和ftp5没写
2.测试成功
虚拟用户会默认禁锢根相关文章推荐
- 实现基于mysql验证的vsftpd虚拟用户
- 实现基于文件验证的vsftpd虚拟用户和基于MYSQL验证的vsftpd虚拟用户
- 实现基于mysql验证的vsftpd虚拟用户 (centos6)
- vsftpd的基于pam_mysql的虚拟用户机制实现数据传输
- 实现基于文件验证的vsftpd 虚拟用户
- 基于vsftpd + pam + mysql实现虚拟用户访问机制
- ubuntu下vsftpd的配置(虚拟用户基于MySQL验证)
- 实验-----基于MYSQL验证的vsftpd虚拟用户
- 实验-----实现基于文件验证的vsftpd虚拟用户
- 搭建FTP-----实现基于mysql验证的虚拟用户
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- Vsftpd+MySQL实现虚拟用户验证登录
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- FTP(六)实现基于MYSQL验证的FTP虚拟用户
- vsftpd+openssl+mysql实现sftp和ftp虚拟用户
- RHEL6---VSFTPD服务器配置之一:使用mysql实现虚拟用户的访问
- vsftpd的基于pam_mysql的虚拟用户机制
- vsftpd基于mysql实现用户认证
- VSFTPD实现基于虚拟用户的认证
- 实验:实现基于MYSQL的FTP虚拟用户