配置构想图:

虚拟账号之pureftp_应用程序

要求:

1、ftp-clients访问pure-ftp数据库时,用户信息存放在ftpusers的数据库中;

2、通过pureamin来管理pureftp在ftpusers数据库中的用户。

配置环境准备:

1、安装组包:开发工具、开发库、老的软件开发 (Development Tools

Development Libraries、Legacy Software Development)

    yum groupinstall “开发工具” -y

2、因实验环境是基于apache,php,mysql的,需要安装

 yum install httpd php mysql mysql-server mysql-devel php-mysql  -y

实验所需软件包:pure-ftpd-1.0.36.tar.gz,PureAdmin-0.3.tar.gz(http://down.51cto.com/data/632638),

ZendOptimizer-3.3.3-linux-hicode.tar.gz(提高php应用程序执行速度)

一、pure-ftp配置

1、pure-ftpd的服务项的设置

#tar -zxvf  pure-ftpd-1.0.36.tar.gz  -C /usr/local/src/   (解压并指定目录)

# cd pure-ftpd-1.0.36     (切换到解压目录)

#./configure \

    --prefix=/usr/local/pureftpd \   #路径,默认在/usr/local/

    --with-mysql \             #用MySQL管理用户数据

    --with-shadow \          #忽略shadow密码,除非你使用PAM, LDAP 或者 SQL

    --with-pam  \             #认证模块

  --with-welcomemsg   \   #像其它一样FTP servers读取’welcome.msg’档案。但是Pure-ftpd预设是使用’.banner’档案。

   --with-uploadscript  \     #成功上传后可自动自动调用扩展程序。这需要安装’pure-uploadscript’。

   --with-cookie   \          #当使用者登入时显示自定义的标题信息

  --with-virtualchroot \    #通常使用者不能离开家目录,启用这项,再配合symbolic links,就变成可能了

  --with-virtualhosts \    #支持虚拟主机。就是可为每个IP地址设不同的匿名登入区域。如果只有一个IP就用不着这项。

  --with-diraliases \       #支持目录别名

  --with-quotas \           #启用虚拟配额

  --with-puredb \          #本地用户数据存储,支持虚拟用户

  --with-sysquotas \       #支持系统配额

  --with-ratios \          #支持上传/下载比率限制

  --with-ftpwho \          #支持’pure-ftpwho’命令,建议在standalone模式使用,inet较慢

  --with-throttling \      #支持带宽限制

  --with-language=simplified-chines  \     #输出信息为简体中文

--with-altlog       #支持将日志输出成特定格式,以便用于分析

#make

#make install  

#cp contrib/redhat.init /etc/init.d/pureftpd

#vim /etc/init.d/pureftpd (改变以下三行)

17 prog=pure-config.pl

18 fullpath=/usr/local/pureftpd/sbin/$prog            (正确关联pureftpd服务的控制脚本)

19 pureftpwho=/usr/local/pureftpd/sbin/pure-ftpwho

24     $fullpath /usr/local/pureftpd/etc/pure-ftpd.conf --daemonize(pureftpd的主配置文件)

#chmod 755 /etc/init.d/pureftpd   (修改权限,使pureftpd为可执行的服务脚本)

#chkconfig --add pureftpd     (使pureftpd被chkconfig管理,并加入开机启动)

#chkconfig pureftpd on

2、pure-ftp的主配置文件修改

#mkdir -pv /usr/local/pureftpd/etc/

#cp   /usr/local/src/pure-ftpd-1.0.36/   \

configuration-file/pure-ftpd.conf   /usr/local/pureftpd/etc/

# vi /usr/local/pureftpd/etc/pure-ftpd.conf

      其中有几项要修改:

       chrootEveryone              yes   限定在自己的家目录

       NoAnonymous               yes   不允许匿名登录

       Bind                    127.0.0.1,21 监听本机回环 <可选>

       CreateHomeDir            yes   允许用户登录后自动创建家目录   <必须>


二、配置虚拟用户登录环境

# useradd virtualftp -d /ftproot -s /sbin/nologin  <创建接下来的虚拟用户对应的系统用户>

# chmod -R 777 /ftproot  <这项不做可能会引起登录时报421错误>

---修改环境变量

# echo PATH=$PATH:/usr/local/pureftpd/bin/ >>/etc/profile

#. /etc/profile      (重新加载环境变量)


三、用mysql认证

1、拷贝解压到/usr/local/src下pure-ftpd-1.0.36目录里的pureftp与mysql关联文件


#cp /usr/local/src/pure-ftpd-1.0.36/pureftpd-mysql.conf    /usr/local/pureftpd/etc/

2、修改pureftp与mysql的关联文件,

# vim  /usr/local/pureftpd/etc/pureftpd-mysql.conf  <修改如下:>

MYSQLUser      ftp

MYSQLPassword   abc

MYSQLDatabase   ftpusers

MYSQLCrypt      MD5

101 MySQLGetQTASZ  SELECT QuotaSize FROM users WHERE User='\L'

106 MySQLGetRatioUL SELECT ULRatio FROM users WHERE User='\L'

107 MySQLGetRatioDL SELECT DLRatio FROM users WHERE User='\L'

114 MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User='\L'

115 MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User='\L'

:wq

开启以上几行,使pureftp-server支持磁盘配额、比率、带宽

3、配置pureftp的主配置文件,指明关联mysql文件的存放位置

#vi /usr/local/pureftpd/etc/pure-ftpd.conf

116 MySQLConfigFile       /usr/local/pureftpd/etc/pureftpd-mysql.conf


四、配置数据库(采取导入的方式)

# mysqladmin -u root password "123"  (为本地数据库创建密码)

网址:http://down.51cto.com/data/632641 下载要导入的数据库源码

下载后,编辑vim pureftp.sql 文件,可以自行修改账号密码等参数,本文保持默认,一定要如下修改第15行:

15   前2个减号空一格-- ----

mysql -u root -p < pureftp.sql

Enter password:

虚拟账号之pureftp_应用程序_02

导入成功后,用root登录mysql,执行对ftpusers用户的授权

mysql>grant all privileges on ftpusers.* to ftp@localhost identified by 'abc';

mysql>flush privileges;

mysql>quit;


五、pureadmin配置

1、下载PureAdmin-0.3.tar.gz,

网址:http://down.51cto.com/data/632638

2、配置web程序

# tar xvf PureAdmin-0.3.tar.gz -C /var/www/html/

# cd /var/www/html/

# mv PureAdmin-0.3/ pureadmin   (重命名)

#vim /var/www/html/pureadmin/config.php   (编辑配置文件)

<?php

$cfg['dbhost']='localhost'; //mysql host

$cfg['dbname']='ftpusers';  //mysql db name

$cfg['dbuser']='ftp';           //mysql user

$cfg['dbpasswd']='abc';           //mysql password

$cfg['passwdtype']='MD5';

$cfg['dir']='/ftproot'; //dir

..........

?>    (其余的保持默认值就可以了,也可自定义设置)


六、安装ZendOptimizer(php加速器)

#tar -zxvf ZendOptimizer-3.3.3-linux-hicode.tar.gz  -C /usr/local/src

#cd /usr/local/src/ZendOptimizer-3.3.3-linux-glibc23-i386/

#./install.sh (根据提示操作)

安装很简单,不再附图。


七、测试

现在可以登录使用了

http://192.168.2.1/pureadmin

查看导入的数据库文件

#vim  pureftp.sql   可知admin 的密码为passwd

虚拟账号之pureftp_Legacy_03

登录:用户admin ; 密码passwd ;验证码不用

虚拟账号之pureftp_软件开发_04

登录后添加新用户:test1,test2

虚拟账号之pureftp_数据库_05

虚拟账号之pureftp_Software_06

用户未登录前,查看基目录下/ftproot为空:

虚拟账号之pureftp_Legacy_07

以test2从客户端登录ftp服务器,

虚拟账号之pureftp_Software_08

自动创建虚拟用户的家目录,

虚拟账号之pureftp_Software_09

#vim /usr/local/pureftpd/etc/pure-ftpd.conf   (编辑开启日志)

304 AltLog                     clf:/var/log/pureftpd.log

311 AltLog                     stats:/var/log/pureftpd.log

318 AltLog                     w3c:/var/log/pureftpd.log

查看日志文件(可以与综合日志/var/log/messages结合查看)

虚拟账号之pureftp_Legacy_10


可以看出,日志记录的时间与系统时间并不对照,因为pureftp默认使用的是GMT时区


#vim /usr/local/pureftpd/etc/pure-ftpd.conf
加上TimesGMT off

重启pureftpd服务,后再看看。

结束了。。


注:限制ip段

#vim /usr/local/etc/pureftpd-mysql.conf

修改 “MYSQLGetPW SELECT Password FROM users WHERE User="\L"  ”,将其改为“MYSQLGetPW SELECT Password FROM users WHERE User="\L" and (ipaccess='*' or ipaccess=SUBSTRING_INDEX("\R",".",3))”这里是限制C类地址登陆,限制单个ip可直接将ipaccess字段设为限制登陆的ip地址。以此类推,可以设定为限制A、B类地址或指定ip地址范围。

本文出自 “刘园的博客” 博客,请务必保留此出处http://colynn.blog.51cto.com/5971950/1093539