vsftpd基于mysql实现用户认证
2018-01-05 15:00
666 查看
一、演示环境:
二、安装前准备:1、 服务器时间校对2、 配置epel源三、mysql服务器所需执行的操作:1、 安装软件包:# yum -y install mysql-server mysql-devel ftp2、 启动mysql,检查3306号端口是否被监听:# service mysqld start # ss -tnlp | grep :33063、 初始化mysql:# mysql_secure_installation //设置root用户密码为1234564、 创建数据库、表,并授权远程用户登录: # mysql -uroot -p mysql> create database ftp; mysql> grant select on ftp.* to ftpuser@'192.168.1.144' identified by '123456'; mysql> flush privileges; mysql> use ftp; mysql> create table user(id int unsigned auto_increment not null primary key,name varchar(20) binary not null,password char(48) binary not null); mysql> desc user;
5、 添加FTP虚拟用户marion和keyso: mysql> insert into user(name,password) values('marion',password('mftpasswd')),('keyso',password('kftpasswd')); 备注:虚拟用户marion使用密码mftpasswd登录FTP,虚拟用户keyso则使用密码kftpasswd登录FTP
mysql> select * from user;
备注:账号密码使用password()函数加密后存储
四、vsftpd服务器所需执行的操作:1、 安装软件包:# yum -y install vsftpd pam_mysql mysql2、 使用账号ftpuser远程登录mysql服务器:
3、 创建认证所需文件vsftpd.mysql: # rpm -ql pam_mysql | grep pam_mysql.so --> /lib64/security/pam_mysql.so # vim /etc/pam.d/vsftpd.mysql,添加如下两行代码: auth required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2 account required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2 备注:
4、 创建虚拟用户映射的系统用户:# useradd -s /sbin/nologin -d /ftpdocs vuser //新的家目录ftpdocs必须事先不存在,该命令会自动创建# chmod go+rx /ftpdocs5、 修改主配置文件/etc/vsftpd/vsftpd.conf,确认启用如下选项: chroot_local_user=YES pam_service_name=vsftpd.mysql guest_enable=YES guest_username=vuser user_config_dir=/etc/vsftpd/vusers use_localtime=YES6、 创建对应的虚拟用户配置文件目录:# mkdir -pv /etc/vsftpd/vusers7、 配置不同的虚拟用户具有不同的访问权限: # cd /etc/vsftpd/vusers # vim marion anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES # cp marion keyso # sed -i 's#YES#NO#g' keyso
备注:每个虚拟用户的配置文件名同虚拟用户的用户名。虚拟用户所能执行的权限都由匿名用户的相关选项定义。所有的虚拟用户都映射到系统用户vuser上。
8、 启动vsftpd,检查21号端口是否被监听:# service vsftpd start # ss -tnlp | grep :21五、用户认证测试: 在mysql服务器上分别使用虚拟用户marion和keyso远程登录FTP:# ftp 192.168.1.144,测试上传文件、删除文件、创建目录和删除目录等权限 使用虚拟用户marion登录FTP:
使用虚拟用户keyso登录FTP:
IP地址 | 操作系统 | 服务器角色 |
192.168.1.144 | CentOS 6.9 | vsftpd服务器 |
192.168.1.145 | CentOS 6.9 | mysql服务器 |
5、 添加FTP虚拟用户marion和keyso: mysql> insert into user(name,password) values('marion',password('mftpasswd')),('keyso',password('kftpasswd')); 备注:虚拟用户marion使用密码mftpasswd登录FTP,虚拟用户keyso则使用密码kftpasswd登录FTP
mysql> select * from user;
备注:账号密码使用password()函数加密后存储
四、vsftpd服务器所需执行的操作:1、 安装软件包:# yum -y install vsftpd pam_mysql mysql2、 使用账号ftpuser远程登录mysql服务器:
3、 创建认证所需文件vsftpd.mysql: # rpm -ql pam_mysql | grep pam_mysql.so --> /lib64/security/pam_mysql.so # vim /etc/pam.d/vsftpd.mysql,添加如下两行代码: auth required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2 account required /lib64/security/pam_mysql.so user=ftpuser passwd=123456 host=192.168.1.145 db=ftp table=user usercolumn=name passwdcolumn=password crypt=2 备注:
数字 | 代表的含义 |
0 | 不加密,明文 |
1 | 使用crypt函数加密 |
2 | 使用mysql password()函数加密 |
3 | 使用md5加密 |
4 | 使用sha1加密 |
备注:每个虚拟用户的配置文件名同虚拟用户的用户名。虚拟用户所能执行的权限都由匿名用户的相关选项定义。所有的虚拟用户都映射到系统用户vuser上。
8、 启动vsftpd,检查21号端口是否被监听:# service vsftpd start # ss -tnlp | grep :21五、用户认证测试: 在mysql服务器上分别使用虚拟用户marion和keyso远程登录FTP:# ftp 192.168.1.144,测试上传文件、删除文件、创建目录和删除目录等权限 使用虚拟用户marion登录FTP:
使用虚拟用户keyso登录FTP:
相关文章推荐
- Linux运维 第三阶段 (三) VSFTPD(ftps及vsftpd+pam+mysql实现虚拟用户认证)
- vsftpd基于pam_mysql mysql 虚拟用户认证
- 创建vsftpd服务器基于mysql的虚拟用户认证
- 实现基于MYSQL验证的vsftpd虚拟用户
- VSFTPD实现基于虚拟用户的认证
- vsftpd基于本地用户和mysql认证配置
- 基于vsftpd+pam+mysql架设ftp并实现虚拟用户登录
- 实现基于mysql验证的vsftpd虚拟用户
- 基于vsftpd + pam + mysql实现虚拟用户访问机制
- ftp奥妙之怎么实现基于mysql的数据库和对应的表中的字段来完成对用户认证的? 推荐
- FTP服务系列之vsftpd+pam+mysql实现虚拟用户认证
- vsftpd基于pam_mysql做虚拟用户认证
- 基于ubuntu中使用mysql实现opensips用户认证的解决方法
- vsftpd基于pam_mysql的认证和hash编码的方式配置虚拟用户
- 基于ssl/tls实现vsftpd的安全通信并通过PAM实现对vsftpd的虚拟用户认证
- 安装vsftpd+pam+mysql实现对虚拟用户身份认证功能
- vsftpd服务器基于mysql的虚拟用户认证,并为每个用户分配不同的目录
- 基于ubuntu中使用mysql实现opensips用户认证的解决方法
- vsftpd基于pam_mysql的虚拟用户认证
- vsftpd基于pam_mysql的虚拟用户认证