ftp是文件传输协议,要实现这种协议,需要安装一些相应的服务和工具。在客户端需要安装连接工具,我们常用的客户端连接工具有ftp,lftp,wget,curl等,在服务端需要安装一些软件包,如vsftpd,这样就能实现客户端与服务端的连接。本次实验是要实现基于mysql验证的vsftpd虚拟用户,这个实验的目的就是实现安全的文件传输协议。
本次实验需要三台虚拟机,一台做ftp服务器,一台用做客户端,一台做数据库。
步骤:
服务器端:
-
安装ftp连接工具
yum install vsftpd
-
安装连接数据库需要的一些软件包,如果虚拟机版本是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、若是配置没有问题,进行编译和安装
-
接下来要在服务器端进行配置连接数据库的文件,只有配置好了文件,才能与数据库进行连接。文件是在指定目录下,自己创建的,在里面写一些配置参数。
cd /etc/pam.d
vim vsftpd.mysql(数据库名字自己随便起)
上面一段话意思就是说连接数据库的用户是ftp,密码是centos,数据库所在的主机ip是192.168.37.101,数据库名字是vsftpd,数据表是ftpusers,等等。
-
接下来还要对vsftpd服务进行配置
其中guest_username意思就是指定虚拟用户默认访问的所属人。在不特别指定路径的情况下,默认访问的就是ftpuser的家目录
-
配置完之后,要写一些测试需要用的文件
#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
数据库端:
先要安装数据库,然后设置数据库名字,建立表格,在表格里配置相应的参数,最后配置数据库文件,以便与服务器更好的连接。
步骤:
-
安装数据库
yum install mariadb-server
开启服务
systemctl start mariadb
-
运行安全脚本,为连接数据库设置密码
-
创建数据库
客户端:
测试之前把所有的防火墙策略关掉,检查服务有无开启。所有准备工作做完,开始测试。
使用ftp服务连接到ftp服务器端
然后输入对应的虚拟用户名和密码即可
在这里可以查看ftp1下刚才创建的文件
也可以查看ftp2下的文件
实验完成。