实现FTP基于MYSQL虚拟用户认证
2019-05-21 01:11
1906 查看
两台主机实现:一台作为ftp服务器,一台作为mysql服务器 host1 : 192.168.1.107 vsftpd pam_mysql.so host2 : 192.168.1.109 mariadb mariadb-server
一.准备数据库
1.安装数据库并启动mysql
~]# yum install mariadb mariadb-server -y ~]# systemctl start mariadb
2.创建vsftpd服务的虚拟数据库及用户列表
1)创建vsftp的数据库 [none]> create database vsftpd; [none]>use vsftpd 2)创建vsftp虚拟用户表 [none]>create table vuser; [none]>create table vuser (id int auto_increment primary key,username char(30),password char(50) binary); 3)将虚拟用户的用户名及密码填入表中 [none]>insert into vuser(username,password)values('user1',password('centos')),('user2',password('linux')); 4)创建并授权用户,作为vsftp服务器连接数据库服务的授权用户 [none]>grant select on vsftpd.vuser to vsftpd@'192.168.1.107' identified by 'centos';
二.vsftp服务器端准备
1.编译安装模块驱动pam_mysql.so
1) 准备编译环境所需要的包 ~]# yum install gcc gcc-c+ pam-devel mariadb-devel 2) 将驱动源码文件解压 ~]# tar xvf /data/tools/pam_mysql-0.7RC1.tar.gz /data/tools 3) 进入模块驱动源码解压后的文件夹 ~]# cd /data/tools/pam_mysql-0.7RC1 4) 将模块驱动安装到正确的 路径下/lib64/security ~]# ./configure --with-pam-mods-dir=/lib64/security 5) 进行编译安装 ~]# make && make install
2.创建pam配置文件
~]# vim /etc/pam.d/vsftpd.mysql # 认证依赖于pam_mysql.so 模块,其余为连接数据库授权的用户、密码等信息 auth required pam_mysql.so user=vsftpd passwd=centos host=192.168.1.109 db=vsftpd table=vuser usercolumn=username passwdcolumn=password crypt=2 # accunt 验证账号必须是有效性,其中crypt=2 为加密类型 account required pam_mysql.so user=vsftpd passwd=centos host=192.168.1.109 db=vsftpd table=vuser usercolumn=username passwdcolumn=password crypt=2
3.修改vsftpd主配置文件,调用pam模块配置
~]# vim /etc/vsftpd/vsftpd.conf pam_service_name=vsftpd.mysql #调用pam模块 userlist_enable=YES tcp_wrappers=YES guest_enable=YES #将所有用户映射到guest用户,并映射到其家目录 guest_username=vuser #guest命名为vuser用户 user_config_dir=/etc/vsftpd/vusers.d/ #虚拟用户配置文件路径
4.创建系统用户指定其家目录
~]# useradd -r -s /sbin/nologin/ -d /data/ftproot vuser 给系统用户vuser设置权限,使的虚拟用户和其他用户映射到vuser,有权限上传文件或对文件增删改的必要条件,还需满足vsftp配置才能实现 ~]# setfacl -m u:vuser:rwx /data/ftproot/upload
5.创建虚拟用户配置文件,配置每个用户特定属性
如:user1可以上传文件而user2不可以上传文件 ~]# vim /etc/vsftpd/vusers.d/user1 anon_upload_enable=YES #允许上传文件 anon_mkdir_write_enable=YES #允许创建文件夹 anon_other_write_enable=YES #可删除和可修改上传的文件 local_root=/data/user1 #指定user1的家目录 ~]#vim /etc/vsftpd/vusers.d/user2 local_root=/data/user2 #指定user2的家目录
三.启动vsftp服务,实现mysql虚拟用户认证
~]# systemctl start vsftpd
相关文章推荐
- FTP(六)实现基于MYSQL验证的FTP虚拟用户
- 搭建FTP-----实现基于mysql验证的虚拟用户
- ftp奥妙之怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的? 推荐
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制 推荐
- 实验:实现基于mysql的ftp虚拟用户
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制
- FTP服务系列之vsftpd+pam+mysql实现虚拟用户认证
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- 实验:实现基于MYSQL的FTP虚拟用户
- linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建
- vsftpd基于mysql做虚拟用户认证
- vsftpd的基于pam_mysql的虚拟用户机制实现数据传输
- vsftpd+openssl+mysql实现sftp和ftp虚拟用户
- 19、vftpd基于PAM_MYSQL进行虚拟用户的认证且每个用户有自己的独立目录及不同的访问权限
- 实现基于文件验证的vsftpd虚拟用户和基于MYSQL验证的vsftpd虚拟用户
- VSFTPD实现基于虚拟用户的认证
- vsftpd基于pam_mysql的认证和hash编码的方式配置虚拟用户
- ftp实现通过数据库的虚拟用户认证
- 基于ssl/tls实现vsftpd的安全通信并通过PAM实现对vsftpd的虚拟用户认证