共享文件服务之vsftpd服务搭建实验

前言:

ftp服务是传统的文件共享服务,其中 vsftpd 是普及度比较高的 ftp 应用实现

vsftpd

1、vsftpd介绍
   全名:very secure ftp daemon

程序:/usr/sbin/vsftpd
  配置文件:/etc/vsftpd/vsftpd.conf

2、用户分类

匿名用户(映射至某一固定的系统用户)
  本地用户(root及系统用户),
  虚拟用户(存储在文件或其他服务器端数据库中的用户);

实验内容

一般情况下, 我们安装好 vsftpd 后默认允许匿名用户下载指定的文件资源。但是有的时候有权限管理的需要,下面我们用 MySQL 存储用户权限信息,实现 vsftpd 用户权限管理功能。

实验目标

搭建 vsftpd 服务并登录服务

实验环境

hostip用途
node1192.168.1.134vsftpd端(安装vsftpd、编译mysql模块)
node2192.168.1.137数据库端(安装mariadb服务)

实验步骤:

一、MySQL端数据库配置

准备一台新安装的 CentOS7.6 服务器,node2 ,ip 为 192.168.1.137 , 并安装 MariaDB 数据库

1、关闭node2主机沙盒和防火墙
2、安装mariadb服务
#yum install -y mariadb-server 	 //安装包mariadb服务
#systemctl start mariadb 		 //启动mariadb服务
#ss -ntl						 //检查端口3306
3、配置mysql存储用户权限信息
> create database vsftpd;		//创建测试库vsftpd

在这里插入图片描述

4、创建测试表vuser 并设置表属性
> use vsftpd;  
> create table vuser (id int auto_increment primary key,username char(30),password char(50) binary);				//主键随id数增长,用户名长度限制30字节,密码长度限制50字节

在这里插入图片描述

5、插入虚拟用户ftp1和ftp2的信息
>insert vuser(username,password)values('ftp1',password('123456')),('ftp2',password('123456'));

在这里插入图片描述

6、授权访问用户vsftpd,使其有查权限
> grant select on vsftpd.vuser to vsftpd@'192.168.1.%' identified by '123456';

在这里插入图片描述

7、查看vuser表中数据
>select * from vuser;

在这里插入图片描述

8、数据库查看授权的访问用户和主机IP
>use mysql;
>select Host, User, Password from user;

在这里插入图片描述

二、vsftpd端运行环境和服务配置

pam_mysql.so时vsftp服务的核心文件,放置在/lib64/security目录下,由于CentOS 7yum源中没有pam-mysql,故需自己编译安装;

1、下载vsftpd服务
#yum install -y vsftpd				//下载vsftpd服务

在这里插入图片描述

2、相关的程序包
#yum install -y gcc gcc-c++ pam-devel mariadb-devel		//下载相关的程序包

在这里插入图片描述

3、下载pam-mysql压缩包
# wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz			

在这里插入图片描述

4、解压pam-mysql压缩包
# tar xf pam_mysql-0.7RC1.tar.gz   

在这里插入图片描述

5、查看configure文件
	# cd pam_mysql-0.7RC1      //进入解压后的文件内
	# ll				   	   //查找configure

在这里插入图片描述

6、解压configure
	# ./configure  --with-pam-mods-dir=/lib64/security	
	# make && make install			//编译安装

在这里插入图片描述

7、在/lib64/security目录下的pam_mysql.so

在这里插入图片描述

三、pam配置

1、编辑vsftp.mysql
	# cd /etc/pam.d
	# vi  /etc/pam.d/vsftpd.mysql 

我服务器配置内容如下:

auth required pam_mysql.so user=vsftpd passwd=123456 host=192.168.1.137 db=vsftpd table=vuser usercolumn=username passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=123456 host=192.168.1.137 db=vsftpd table=vuser usercolumn=username passwdcolumn=password crypt=2

在这里插入图片描述
其中:

pam_mysql.so  //相对路径,如果此模块置于/lib64/security目录下,则可直接写文件名,当然,写全路径也没问题;
2、pam_mysql.so的编辑格式
user=vsftpd
passwd=123456  //授权登陆mysql时的用户
host=localhost      //本地主机
db=test                //存放虚拟用户的数据库名
table=vstfpd
usercolumn=name 
passwdcolumn=passwd
crypt=2  //密码加密方式代号
          //0:不加密
          //1:使用crypt(3)加密
          //2:mysql函数加密password();
          //3:md5加密
          //4:SHA1加密

四、细节优化

1、编辑配置文件vsftpd.conf

添加项:

 		   guest_enable=YES
            guest_username=vuser
  			修改此项为:pam_service_name=vsftpd.mysql
# vi /etc/vsftpd/vsftpd.conf
# tail -7 /etc/vsftpd/vsftpd.conf 

我服务器的配置内容如下:

pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vusers.d/
userlist_enable=YES
tcp_wrappers=YES

在这里插入图片描述

2、创建系统用户作为映射
# useradd -r -s /sbin/nologin -d /data/ftproot vuser				//创建系统用户作为映射
# mkdir -pv /data/ftproot							//创建本地用户目录

在这里插入图片描述

3、创建虚拟用户目录
# mkdir -pv /etc/vsftpd/vusers.d				//创建虚拟用户目录

在这里插入图片描述

4、写入虚拟用户ftp的管理权限

确保这些项为YES:
 
      anonymous_enable=YES
      local_enable=YES
      write_enable=YES

1)ftp1配置内容:
	# vi  /etc/vsftpd/vusers.d/ftp1
	# cat  /etc/vsftpd/vusers.d/ftp1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/ftp1

在这里插入图片描述

2)ftp2配置内容:
	# vi  /etc/vsftpd/vusers.d/ftp2
	# cat  /etc/vsftpd/vusers.d/ftp2
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/data/ftp2
保存退出

在这里插入图片描述

五、服务登录

1、启动vsftp服务 下载登录工具lftp
 	#systemctl start vsftpd	   //启动vsftpd服务
 	# yum install -y lftp	   //下载lfyp工具	

在这里插入图片描述

2、登录虚拟用户ftp1
	# lftp ftp1@127.0.0.1

效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值