ftp是文件传输协议,要实现这种协议,需要安装一些相应的服务和工具。在客户端需要安装连接工具,我们常用的客户端连接工具有ftp,lftp,wget,curl等,在服务端需要安装一些软件包,如vsftpd,这样就能实现客户端与服务端的连接。本次实验是要实现基于mysql验证的vsftpd虚拟用户,这个实验的目的就是实现安全的文件传输协议。

本次实验需要三台虚拟机,一台做ftp服务器,一台用做客户端,一台做数据库。

步骤:

服务器端

  1. 安装ftp连接工具

    yum install vsftpd

     

  2. 安装连接数据库需要的一些软件包,如果虚拟机版本是centos6,就不需要安装了,因为自带的有,在centos7上需要安装。在7上没有pam-mysql软件,需要自己去官网下载,地址http://pam-mysql.sourceforge.net/,之后在相应的版本下下载即可。

    下载之后要编译安装,下面是具体编译步骤:

    @1、解压

    @2、安装所需要的依赖包和包组

    yum groupinstall "development tools"

    yum install mariadb-devel

    yum install pam-devel

    @3、在解压后的pam包下检查配置是否齐全

     

    @4、若是配置没有问题,进行编译和安装

     

  3. 接下来要在服务器端进行配置连接数据库的文件,只有配置好了文件,才能与数据库进行连接。文件是在指定目录下,自己创建的,在里面写一些配置参数。

    cd /etc/pam.d

    vim vsftpd.mysql(数据库名字自己随便起)

    上面一段话意思就是说连接数据库的用户是ftp,密码是centos,数据库所在的主机ip是192.168.37.101,数据库名字是vsftpd,数据表是ftpusers,等等。

  4. 接下来还要对vsftpd服务进行配置

    其中guest_username意思就是指定虚拟用户默认访问的所属人。在不特别指定路径的情况下,默认访问的就是ftpuser的家目录

  5. 配置完之后,要写一些测试需要用的文件

    #1、先把默认的给创建出来

    加上权限

    #2、创建两个虚拟用户,设置不同的权限,方便以后测验

    创建第一个虚拟用户配置文件:

    mkdir /etc/vsftpd/conf.d/

    vim /etc/vsftpd/conf.d/ftp1

    anon_upload_enable=yes

     

    cd /app/ftpdir/

    touch f1

    mkdir up

    chown ftpuser up

    创建第二个虚拟用户配置文件:

    vim /etc/vsftpd/conf.d/ftp2

    local_root=/app/ftp2

    mkdir /app/ftp2

    touch f2

数据库端:

先要安装数据库,然后设置数据库名字,建立表格,在表格里配置相应的参数,最后配置数据库文件,以便与服务器更好的连接。

步骤:

  1. 安装数据库

    yum install mariadb-server

    开启服务

    systemctl start mariadb

  2. 运行安全脚本,为连接数据库设置密码

  3. 创建数据库

     

客户端:

测试之前把所有的防火墙策略关掉,检查服务有无开启。所有准备工作做完,开始测试。

使用ftp服务连接到ftp服务器端

然后输入对应的虚拟用户名和密码即可

在这里可以查看ftp1下刚才创建的文件

也可以查看ftp2下的文件

实验完成。