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

文章目录

      • 前言:
      • vsftpd
        • 1、vsftpd介绍
        • 2、用户分类
      • 实验内容
      • 实验目标
      • 实验环境
      • 实验步骤:
      • 一、MySQL端数据库配置
        • 1、关闭node2主机沙盒和防火墙
        • 2、安装mariadb服务
        • 3、配置mysql存储用户权限信息
        • 4、创建测试表vuser 并设置表属性
        • 5、插入虚拟用户ftp1和ftp2的信息
        • 6、授权访问用户vsftpd,使其有查权限
        • 7、查看vuser表中数据
        • 8、数据库查看授权的访问用户和主机IP
      • 二、vsftpd端运行环境和服务配置
        • 1、下载vsftpd服务
        • 2、相关的程序包
        • 3、下载pam-mysql压缩包
        • 4、解压pam-mysql压缩包
        • 5、查看configure文件
        • 6、解压configure
        • 7、在/lib64/security目录下的pam_mysql.so
      • 三、pam配置
        • 1、编辑vsftp.mysql
        • 2、pam_mysql.so的编辑格式
      • 四、细节优化
        • 1、编辑配置文件vsftpd.conf
        • 2、创建系统用户作为映射
        • 3、创建虚拟用户目录
        • 4、写入虚拟用户ftp的管理权限
          • 1)ftp1配置内容:
          • 2)ftp2配置内容:
      • 五、服务登录
        • 1、启动vsftp服务 下载登录工具lftp
        • 2、登录虚拟用户ftp1

前言:

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

vsftpd

1、vsftpd介绍

   全名:very secure ftp daemon

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

2、用户分类

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

实验内容

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

实验目标

搭建 vsftpd 服务并登录服务

实验环境

host ip 用途
node1 192.168.1.134 vsftpd端(安装vsftpd、编译mysql模块)
node2 192.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

共享文件服务之vsftpd服务搭建实验_第1张图片

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;

共享文件服务之vsftpd服务搭建实验_第2张图片

8、数据库查看授权的访问用户和主机IP

>use mysql;
>select Host, User, Password from user;

共享文件服务之vsftpd服务搭建实验_第3张图片

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

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

1、下载vsftpd服务

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

共享文件服务之vsftpd服务搭建实验_第4张图片

2、相关的程序包

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

共享文件服务之vsftpd服务搭建实验_第5张图片

3、下载pam-mysql压缩包

# wget http://prdownloads.sourceforge.net/pam-mysql/pam_mysql-0.7RC1.tar.gz			

共享文件服务之vsftpd服务搭建实验_第6张图片

4、解压pam-mysql压缩包

# tar xf pam_mysql-0.7RC1.tar.gz   

共享文件服务之vsftpd服务搭建实验_第7张图片

5、查看configure文件

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

共享文件服务之vsftpd服务搭建实验_第8张图片

6、解压configure

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

共享文件服务之vsftpd服务搭建实验_第9张图片

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

共享文件服务之vsftpd服务搭建实验_第10张图片

三、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

共享文件服务之vsftpd服务搭建实验_第11张图片

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

共享文件服务之vsftpd服务搭建实验_第12张图片

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
保存退出

共享文件服务之vsftpd服务搭建实验_第13张图片

五、服务登录

1、启动vsftp服务 下载登录工具lftp

 	#systemctl start vsftpd	   //启动vsftpd服务
 	# yum install -y lftp	   //下载lfyp工具	

共享文件服务之vsftpd服务搭建实验_第14张图片

2、登录虚拟用户ftp1

	# lftp [email protected]

效果如下:
共享文件服务之vsftpd服务搭建实验_第15张图片

你可能感兴趣的:(网络文件共享服务)