FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制
来源:互联网 发布:linux查看磁盘剩余空间 编辑:程序博客网 时间:2024/06/06 02:42
实验说明:
一台FTP服务器:192.168.243.7(centos7.3)
一台MariaDB数据库服务器:192.168.243.6(centos6.9)
所需要的软件包:pam_mysql-0.7RC1.tar.gz
关闭selinux
工作原理
一、在FTP服务器上安装vsftpd和pam_mysql
centos6:pam_mysql由epel的源中提供 yum install vsftpd pam_mysqlcentos7:无对应rpm包,需手动编译安装yum -y groupinstall "Development Tools" yum -y install mariadb-devel pam-devel vsftpd
编译安装pam模块
下载pam_mysql-0.7RC1.tar.gz
tar xvf pam_mysql-0.7RC1.tar.gz cd pam_mysql-0.7RC1/ ./configure --with-mysql=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security make && make install
二、在数据库服务器,创建虚拟用户账号
建立存储虚拟用户数据库和连接的数据库用户
MariaDB [(none)]> create database ftpdb;
MariaDB [(none)]> create table ftpvusers (id int unsigned auto_increment primary key,username char(30),password char(48));
MariaDB [(none)]> insert into ftpvusers (username,password) values ('ftpuser1',password('CENTOS')),('ftpuser2',password('CENTOS'));MariaDB [(none)]> grant all on ftpdb.* to ftpuser@'192.168.243.7' identified by 'CENTOS';
MariaDB [(none)]> flush privileges;
三、在FTP服务器上配置vsftpd服务
1.在FTP服务器上建立pam认证所需文件
[root@centos7 ~]#vim /etc/pam.d/ftp.mysql
配置字段说明
- auth 表示认证
- account 验证账号密码正常使用
- required 表示认证要通过
- pam_mysql.so模块是默认的相对路径,是相对/lib64/security/路 径而言,也可以写绝对路径;后面为给此模块传递的参数
- user=vsftpd为登录mysql的用户
- passwd=magedu 登录mysql的的密码
- host=mysqlserver mysql服务器的主机名或ip地址
- db=vsftpd 指定连接msyql的数据库名称
- table=users 指定连接数据库中的表名
- usercolumn=name 当做用户名的字段
- passwdcolumn=password 当做用户名字段的密码
- crypt=2 密码的加密方式为mysql password()函数加密
crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示 使用mysql password()函数加密,3表示md5加密,4表示 sha1加密
2.建立相应用户和修改vsftpd配置文件,使其适应mysql认证 建立虚拟用户映射的系统用户及对应的目录
useradd -s /sbin/nologin -d /app/ftpsite ftpvuser chmod 555 /app/ftpsite/cd /app/ftpsite/mkdir uploadchown ftpvuser upload
配置vsftpd为虚拟用户使用配置文件目录
添加如下选项
user_config_dir=/etc/vsftpd/vusers.d/
root@centos7 ~]#vim /etc/vsftpd/vsftpd.conf128 pam_service_name=ftp.mysql //建的pam认证文件129 guest_enable=YES130 guest_username=ftpvuser //设置的映射系统用户131 user_config_dir=/etc/vsftpd/vusers.d/
四、启动vsftpd服务
service vsftpd start;systemctl start vsftpd chkconfig vsftpd on;systemctl enable vsftpd
查看端口开启情况
netstat -tnlp |grep :21
五、创建所需要目录,并为虚拟用户提供配置文件和配置虚拟用户访问权限
[root@centos7 ~]#mkdir /etc/vsftpd/vusers.d/[root@centos7 ~]#vim /etc/vsftpd/vusers.d/ftpuser1anon_upload_enable=YES //否开启虚拟用户上传文件的权限 [root@centos7 ~]#vim /etc/vsftpd/vusers.d/ftpuser2local_root=/app/ftpsite2/anon_upload_enable=YES[root@centos7 ~]#mkdir -pv /app/ftpsite2/upload[root@centos7 ~]#chown ftpvuser /app/ftpsite2/upload
总结:
在配置ftp配置文件中,留心不要敲多空格,配置命令结尾也不能留出空格,否则vsftpd服务重启失败
阅读全文
0 0
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制
- 实验:实现基于MYSQL的FTP虚拟用户
- 实验:实现基于mysql的ftp虚拟用户
- nginx+pam+mysql实现基于数据库的用户认证
- nginx+pam+mysql实现基于数据库的用户认证
- FTP服务器工作原理及如何通过PAM认证实现虚拟用户登录
- 实现基于文件验证的vsftpd虚拟用户和基于MYSQL验证的vsftpd虚拟用户
- 配置FTP虚拟用户访问
- 无错版Vsftpd+Mysql+Pam配置虚拟用户方法
- vsftp虚拟用户pam认证文件的创建和配置
- Vsftp与PAM虚拟用户
- 基于系统用户支持ftp上传和访问
- 实现基于MYSQL验证的vsftpd虚拟用户
- 实现基于mysql验证的vsftpd虚拟用户
- centOS6.8 ftp服务 安装配置 基于本地用户和虚拟用户
- CentOS7 FTP服务搭建(虚拟用户访问FTP服务)
- mysql管理ftp的虚拟用户
- http服务--基于用户的访问控制实现
- c++11 yield
- OLED(128*64)SSD1306驱动学习总结
- django + semantic ui 框架,接口测试正常,在前端点击按钮调用出现异常问题解决
- mongodb优化
- 搭建Jetbrains授权idea服务器
- FTP基于PAM和MySQL/MariaDB实现虚拟用户访问控制
- PixHawk学习笔记 之 源码浅析—mc_pos_control.cpp 子程序合集
- jquery实现jsp页面报警
- Swfit4.0中JSON与模型原生互转(JSONEncoder/JSONDecoder的使用)
- Glide加载图片OutOfMemory
- flex布局
- js对象生成与调用
- SQLServer中跨服务器跨数据库之间的数据操作
- 免费视频平台