虚拟账号之pureftp

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

配置构想图:

要求:

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

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6月前
|
运维 Linux 网络安全
jumpserver详解(八)——jumpserver用户设置
jumpserver详解(八)——jumpserver用户设置
171 0
|
Linux 数据库 数据安全/隐私保护
使用JumpServer管理你的服务器
本文介绍CentOS 7从安装jumpserver到简单使用jumpserver管理服务器。 1.Jumpserver介绍 Jumpserver是一款开源的开源的堡垒机,如下图是官网介绍。 官网地址:http://www.
4532 0
|
关系型数据库 MySQL Linux
[教程]在CentOS7上配置 FTP服务器 Proftpd 支持 MySQL 虚拟用户加密认证以及磁盘限额(Quota)
本文软件采用 yum 安装,不需要编译,而且随时都可以跟随 CentOS 升级 Proftpd 到最新版本,以避免可能的漏洞攻击。利用 Proftpd 现成的配置以及设置好的各种模块,可以实现 sftp 和 ssh 的结合,完美的实现虚拟用户加密密码存放于数据库。
4668 0
|
开发工具 安全
|
机器学习/深度学习 关系型数据库 Linux
|
网络协议 数据安全/隐私保护 开发工具
|
关系型数据库 MySQL 数据库
|
Apache 数据库 数据安全/隐私保护
下一篇
无影云桌面