一、搭建环境
1、Vmware10.0虚拟机下Centos6.4-64位操作系统最小化安装,
2、软件需求
PureAdmin-0.3.tar.gz //pureftpd服务的web管理页面,都是php页面
pure-ftpd-1.0.36.tar.gz //ftp服务的主程序安装包
pureftpd-mysql.conf //ftp服务与mysql服务之间的接口文件
pureftp.sql // mysql数据库文件,内容是创建pureftpd库和pureftpd服务器中需要的账户的表
mysql
mysql-server
php
php-gd
php-mysql
pam-devel
mysql-devel
二、工作过程
从后台管理来说,管理人员想要通过在实现了lamp环境下的浏览器中登录ftp服务器后台管理,需要pureftp的web管理页面也就是PureAdmin,通过它来完成对数据库的操作(主要是对账户的操作),mysql数据库完成了ftp虚拟账号存储的问题,这里有相应的库和表,用户表中的账户实现映射本地账号来完成对ftp服务器的访问。
从账户访问来说,建立的pureftp服务器与mysql服务之间实现了pureftp-mysql接口连接,以这样的方式可以实现ftp服务器的访问。(此账户是指虚拟账号)
三、安装步骤
1、安装mysql服务 Apache服务
[root@ahao1pureftp]# yum install httpd mysql mysql-server php php-gd php-mysql pam-develmysql-devel //安装所需要的软件包 [root@ahao1pureftp]# service mysqld start //启动mysql服务器 [root@ahao1pureftp]# service httpd start //启动Apache服务器 [root@ahao1pureftp]# chkconfig httpd on //加入chkconfig管理 [root@ahao1pureftp]# chkconfig mysqld on //加入chkconfig管理 //接下来我们要将pureftp.sql文件导入mysql中去 //首先我们应该修改一下文件,保证我们能正常导入 [root@ahao1pureftp]# vim pureftp.sql
15 --------------------------------------------------------- //15行,这里要加个空格
VALUES('localhost','ftp',PASSWORD('tmppasswd'),//27行,这里我们要修改pureftp库的管//理员密码要修改成tmppasswd
50 INSERT INTOadmin VALUES ('admin',MD5('123')); //50行,修改mysql管理员的密码,//这里是123
[root@ahao1pureftp]# mysqladmin -u root -p password '123' //建立管理员账户,及密码 [root@ahao1pureftp]# mysql -u root -p <pureftp.sql //导入pureftp库
//可以登录数据库查看是否有pureftp库生成
2、安装PureAdmin-0.3.tar.gz
[root@ahao1pureftp]# tar -zxvf PureAdmin-0.3.tar.gz -C /var/www/html/ //解压到web服//务的站点主目录下
//这里需要我们修改config.php文件
我们修改过之后,可以在浏览器中访问试试:
在浏览中输入http://192.168.1.169/pureadmin //这是我主机的实验地址
有图可知,我们证明我们是可以正常访问的。
如果在登录之后出现用户权限不足的问题,建议在mysql中使用以下语句解决权限问题。
但是,在ftproot目录下的账户是为了安全,使用的虚拟账户,在本地账户中是不存在的,这些虚拟账户需要一个本地账户来管理,这样我们需要建立一个本地账户。
[root@ahao1pureadmin]# useradd -d /ftproot ftpaccount // 建立账户 [root@ahao1pureadmin]# chmod -R o+rwx /ftproot/ //站点主目录是眼存放建立的账户//的,所以要修改它的权限增加读写,可执行权限
3、安装pure-ftpd-1.0.36.tar.gz
[root@ahao1pureftp]# tar -zxvf pure-ftpd-1.0.36.tar.gz -C /usr/local/src //安装pureftp服务 [root@ahao1pureftp]# cd /usr/local/src/pure-ftpd-1.0.36/ //进入安装目录 编译命令如下: ./configure \ --prefix=/usr/local/pureftpd\ --with-mysql \ --with-shadow \ --with-pam \ --with-welcomemsg \ --with-uploadscript \ --with-cookie \ --with-virtualchroot\ --with-virtualhosts\ --with-diraliases\ --with-quotas \ --with-puredb \ --with-sysquotas\ --with-ratios \ --with-ftpwho \ --with-throttling\ --with-language=simplified-chinese [[email protected]]# make && make install //安装 //在一般安装服务之后都会在安装目录下都有会有自己的配置文件,但是在pureftp中//没有配置文件所以我们需要手动添加目录,并且找到配置文件(一般都会在安装目录下的其他单独目录下) [[email protected]]# mkdir /usr/local/pureftpd/etc //建立配置文件的目录 [[email protected]]# cd configuration-file/ //这个目录下存放了配置文件 [root@ahao1configuration-file]# cp pure-ftpd.conf /usr/local/pureftpd/etc/ //拷贝配//置文件 [[email protected]]# cd contrib/ //这个目录下存放在可执行脚本 [root@ahao1contrib]# cp redhat.init /etc/init.d/pureftpd //复制脚本到控制脚本目录下 [root@ahao1contrib]# chmod a+x /etc/init.d/pureftpd //为脚本增加权限 [root@ahao1configuration-file]# cp pure-config.pl /usr/local/pureftpd/sbin/ //控制脚本//需要的脚本程序 [root@ahao1configuration-file]# chmod a+x /usr/local/pureftpd/sbin/pure-config.pl //为//脚本增加权限 [root@ahao1configuration-file]# vim /etc/init.d/pureftpd //修改脚本内容
[root@ahao1configuration-file]# service pureftpd start /启动pureftpd [root@ahao1configuration-file]# chkconfig --add pureftpd [root@ahao1configuration-file]# chkconfig pureftpdon //加入chkconfig的管理,设置//开机启动 [root@ahao1configuration-file]# cd /usr/local/pureftpd/etc //进入配置文件所在目录 [root@ahao1etc]# vim pure-ftpd.conf //编辑配置文件 116 MySQLConfigFile /usr/local/pureftpd/etc/pureftpd-mysql.conf // 116行,打开此行,修改mysql与pureftpd的连接器的配置文件所在 126 PureDB /usr/local/pureftpd/etc/pureftpd.pdb //126行,打开此行,修改pureftpDB的目录位置 336CreateHomeDir yes //336行,打开此行,表示自动创建家目录 [root@ahao1etc]# cp /root/pureftp/pureftpd-mysql.conf ./ //拷贝ftp与mysql的接口文件到/usr/local/pureftpd/etc/目录下 [root@ahao1etc]# vim pureftpd-mysql.conf //编辑接口文件 32MYSQLPassword tmppasswd //32行,mysql管理员密码 45MYSQLCrypt md5 //45行, mysql管理员密码的加密方式 //编辑完成,保存退出。
我们还需要产生pureftpDB文件
[root@ahao1etc]# ../bin/pure-pw useradd user1 -u ftpaccount -g ftpaccount -d/ftproot/user1
到这里我们的基本配置就配置好了。
我们可以测试一下了
我们开一个命令提示符终端测试:
测试说明,我们能正常访问的。
四、总结
通过我们简单设置,pureftp服务搭建好了,但是需要我们注意的是,在我们用web页面访问ftp服务的管理页面中,那里建立的账户是虚拟的,并不会在本地账户中出现;
这是为了实现ftp服务的安全,虚拟账户不存在与本地账户目录中,也就不是本地账户,它存在在mysql数据库中,即使虚拟账号被抓包,一样不能造成对服务器的破环。
如图所示,虚拟账户信息都在数据库中。