vsftp服务器mysql认证_FTP服务(4)基于MySQL数据库认证

1335024bb9361e80ddd4ef915e986af0.png

基于MySQL数据库认证

说明:本实验在两台CentOS主机上实现,一台做为FTP服务器,一台做数据库服务器

数据库服务器和FTP服务器系统都是CentOS7

注意:如果是CentOS6系统请执行yum install vsftpd pam_mysql命令安装连接组件

MariaDB服务器:

yum install mariadb-server -y

systemctl start mariadb

mysql

MariaDB [(none)]>CREATE DATABASE vsftpddb; #准备数据库

MariaDB [(none)]>use vsftpddb

MariaDB [vsftpddb]> CREATE TABLE users(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,name CHAR(50) BINARY NOT NULL,password CHAR(48) BINARY NOT NULL); #创建users表

MariaDB [vsftpddb]>DESC users;+----------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+----------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | char(50) | NO | | NULL | |

| password | char(48) | NO | | NULL | |

+----------+----------+------+-----+---------+----------------+MariaDB [vsftpddb]> GRANT ALL ON vsftpddb.* TO vsftpduser@'192.168.0.7' IDENTIFIED BY 'vsftpdpass'; #创建并授权用户

vsftpd服务器:

yum install mariadb -y

mysql-uvsftpduser -pvsftpdpass -h192.168.0.8#测试连接数据库

MariaDB [(none)]>DESC vsftpddb.users;+----------+----------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------+----------+------+-----+---------+----------------+

| id | int(11) | NO | PRI | NULL | auto_increment |

| name | char(50) | NO | | NULL | |

| password | char(48) | NO | | NULL | |

+----------+----------+------+-----+---------+----------------+MariaDB [(none)]>use vsftpddb

MariaDB [vsftpddb]> INSERT INTO users(name,password) VALUES('user1',PASSWORD('user1pass')); #创建vsftpd的虚拟用户

MariaDB [vsftpddb]> INSERT INTO users(name,password) VALUES('user2',PASSWORD('user2pass'));

MariaDB [vsftpddb]> SELECT *FROM users;+----+-------+-------------------------------------------+

| id | name | password |

+----+-------+-------------------------------------------+

| 1 | user1 | *F20B90D5A0CED3757C51AE04CD4700AB9879E467 |

| 2 | user2 | *A9C95B38C9A88ECAE9128FD396059335E97CAA6E |

+----+-------+-------------------------------------------+

yum groupinstall "Development Tools" -yyum -y install mariadb-devel pam-devel vsftpdwget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz tar xf pam_mysql-0.7RC1.tar.gz

cd pam_mysql-0.7RC1/pam_mysql-0.7RC1]# ./configure --with-pam-mods-dir=/lib64/security

pam_mysql-0.7RC1]# make && make installls /lib64/security/ |greppam_mysql.so

pam_mysql.so #pam模块已安装

vim /etc/pam.d/vsftpd.mysql

auth required pam_mysql.so user=vsftpduser passwd=vsftpdpass host=192.168.0.8 db=vsftpddb table=users usercolumn=name passwdcolumn=password crypt=2account required pam_mysql.so user=vsftpduser passwd=vsftpdpass host=192.168.0.8 db=vsftpddb table=users usercolumn=name passwdcolumn=password crypt=2

crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysql password()函数加密,3表示md5加密,4表示sha1加密

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()函数加密

useradd -r -s /sbin/nologin -d /data/mftp/vusermkdir -pv /data/mftp/pub/

chmod -w /data/mftp/setfacl-m u:vuser:rwx /data/mftp/pub/vim/etc/vsftpd/vsftpd.conf

anonymous_enable=YES

guest_enable=YES

guest_username=vuser

pam_service_name=vsftpd.mysql #修改为使用pam_mysql模块认证

systemctl restart vsftpd

vsftpd可以在配置文件目录中为每个用户提供单独的配置文件以定义其ftp服务访问权限,每个虚拟用户的配置文件名同虚拟用户的用户名。配置文件目录可以是任意未使用目录,只需要在vsftpd.conf指定其路径及名称即可

vim /etc/vsftpd/vsftpd.conf

user_config_dir=/etc/vsftpd/vusers.dmkdir /etc/vsftpd/vusers.d/

touch /etc/vsftpd/vusers.d/{user1,user2}

vim/etc/vsftpd/vusers.d/user1

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

local_root=/ftproot #登录目录改变至指定的目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值