虚拟账号之pureftp

配置构想图:

要求:

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

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

配置环境准备:

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

Development LibrariesLegacy 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.gzPureAdmin-0.3.tar.gzhttp://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: 

导入成功后,用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

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

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

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

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

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

#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默认使用的是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地址。以此类推,可以设定为限制AB类地址或指定ip地址范围。



本文转自 刘园  51CTO博客,原文链接:http://blog.51cto.com/colynn/1093539

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值