小编:为了实现局域网用户的文件共享服务,FTP服务器在企业网中扮演着很重要的角色。在Linux环境下,传统的基于vsftpd搭建的FTP服务器,存在着很多不足之处,不能支持虚拟账号的概念,管理起来很不方便.所以,小编,今天就和大家一起搭建一个基于虚拟账号的FTP服务器:Pure-ftp.

基本环境:

LAMP【Linux+Apache+MySQL+PHP(可选)】

方式一:RMP搭建(略)

方式二:×××

参考博客:http://tywangpanpan.blog.51cto.com/6264315/1177325

【软件需求】

pure-ftpd-1.0.36.tar.gz

PureAdmin-0.3.tar.gz

pureftp.sql(虚拟账号的数据库导入文件)

pureftpd-mysql.conf(虚拟账号链接数据库的配置文件)

【具体实现步骤】

Step1:源码安装Pure-ftp Server.

tar  zxvf  pure-ftpd-1.0.36.tar.gz  -C /usr/local/src/

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

make  &&  make install

Step2:拷贝生成pureftp服务的主配置文件和服务脚本.

cd configuration-file/

chmod a+x pure-config.pl

cp pure-config.pl  /usr/local/pureftpd/sbin/

mkdir /usr/local/pureftpd/etc

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

Step3:拷贝生成pureftp服务的启动脚本,并编辑修改相应参数.

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

vim   /etc/init.d/pureftpd

chmod  755   /etc/init.d/pureftpd

chkconfig  --add  pureftpd

chkconfig  pureftpd  on

Step4:配置pure-ftp的主配置文件,添加虚拟账号的登录环境参数.

vim  /usr/local/pureftpd/etc/pure-ftpd.conf

Step5:创建虚拟用户登录的家目录.

mkdir  /ftproot

chmod  -R  777  /ftproot

Step6:创建虚拟账号登录时映射的服务器本地nologin账号.

useradd  virtualftp  -d  /ftproot  -s  /sbin/nologin  -M

chown   virtualftp.virtualftp  /ftproot

Step7:虚拟账号的认证配置.

vim  /usr/local/pureftpd/etc/pure-ftpd.conf

Step8:建立虚拟账号与服务器本地账号的映射.

cd  /usr/local/pureftpd/bin

./pure-pw useradd user1 -u virtualftp -g virtualftp -d /ftproot/user1 -m

说明:

user1是用户名,-u virtualftp是其实际的linux用户,-d指定起始目录,并锁定于该目录。如果不锁定,则用-D;如果需要不同的权限,可以建立新的linux用户与组,如果用的系统自带的ftp用户,这样的话还需修改配置文件pure-ftpd.conf中的MinUID为ftp用户的UID 14,否则登录时会出现530错误;所以这里建议创建另一个非系统自带的用户做映射.

Step9:建立用户数据库.

./pure-pw mkdb /usr/local/pureftpd/pureftpf.pdb

Step10:源码配置Web管理界面.

tar  zxvf   PureAdmin-0.3.tar.gz  -C /var/www/extsuite/extmail/html/

cd  /var/www/extsuite/extmail/html/

mv  PureAdmin-0.3  pureadmin

Step11:导入数据文件pureftp.sql到MySQL数据库.

注:导入前作如下修改.

INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,ssl_cipher,x509_issuer,x509_subject) VALUES('localhost','ftp',PASSWORD('passwd'),'Y','Y','Y','Y','N','N','N','N','N','N','N','N','N','N','Y','Y','Y');

FLUSH PRIVILEGES;

CREATE DATABASE ftpusers;

USE ftpusers;

CREATE TABLE admin (

Username varchar(35) NOT NULL default '',

Password char(32) binary NOT NULL default '',

PRIMARY KEY  (Username)

) ;

INSERT INTO admin VALUES ('admin',MD5('123456'));

CREATE TABLE `users` (

`User` varchar(16) NOT NULL default '',

`Password` varchar(32) binary NOT NULL default '',

`Uid` int(11) NOT NULL default '14',

`Gid` int(11) NOT NULL default '5',

`Dir` varchar(128) NOT NULL default '',

`QuotaFiles` int(10) NOT NULL default '500',

`QuotaSize` int(10) NOT NULL default '30',

`ULBandwidth` int(10) NOT NULL default '80',

`DLBandwidth` int(10) NOT NULL default '80',

`Ipaddress` varchar(15) NOT NULL default '*',

`Comment` tinytext,

`Status` enum('0','1') NOT NULL default '1',

`ULRatio` smallint(5) NOT NULL default '1',

`DLRatio` smallint(5) NOT NULL default '1',

PRIMARY KEY  (`User`),

UNIQUE KEY `User` (`User`)

) ;

导入数据,并授权.

mysql  -u root -p < pureftp.sql

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

mysql>flush privileges;

mysql>quit;

查看导入是否成功.

Step12:修改pureadmin的配置文件,修改数据库的相关参数.

vim  /var/www/extsuite/extmail/html/pureadmin/config.php

Step13:配置pureftpd-mysql.conf连接数据库文件.

cp  pureftpd-mysql.conf  /usr/local/pureftpd/etc/

创建匿名账号的根目录.

mkdir  /var/ftp

【测试分析】

浏览器登录测试。

http://10.1.1.100/pureadmin(用户名:admin;密码:123456)

添加虚拟账号.

服务器登陆测试.

查看虚拟账号的家目录.

客户端虚拟账号登陆测试.

匿名账号登录测试.

【小编总结】

通过今天的介绍,我们通过Pure-Ftp简单的实现了给予虚拟账号的FTP服务器,而且实现了方便的Web方式管理.当然还可以根据需求进行更加的详细的参数的限定:配额、时间、速率等等,有兴趣的博友可以自己尝试下!!!!!!

转载于:https://blog.51cto.com/tywangpanpan/1197568

Pure-Ftp:基于虚拟账号的FTP服务器相关推荐

  1. 支持加密和虚拟账号的ftp搭建

    一.ftp简介: 1.ftp 是基于应用层默认使用21(连接控制端口)与20(数据传输端口)的文件传输协议.提供网络中两个互联的计算机之间进行文件传输功能. 2.工作模式 (1.主动模式 首先,客户端 ...

  2. 基于虚拟账号的邮件系统

    按照如下图所以创建基于虚拟账号的邮件系统: 如上图所示:客户端登录邮件系统需要经过cyrus-sasl函数库账号的认证,但是cyrus-sasl无法调用mysql,所以必须安装courier-auth ...

  3. vsftpd + Berkeley DB 创建基于虚拟用户的FTP

    FTP协议以快速著称,vsftp 号称安全的FTP,是目前主流的FTP服务器软件. 本文创建基于 Berkeley DB 虚拟用户的VSFTP服务器 环境:CentOS 6.4 x86_64 1.安装 ...

  4. 搭建基于虚拟账号的电子邮件系统

    使用postfix,cyrus-sasl,courier-authlib,mysql,dovecot,extmail,extman搭建电子邮件系统,可以使用web方式以虚拟账号注册登录邮箱,并且发送接 ...

  5. 基于虚拟账号的邮件系统之×××

    postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件.postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试.在 ...

  6. 基于虚拟用户的电子邮件系统

    在现实生活中,我们根本不可能为邮件用户在邮件服务器上添加系统账号.互联网上成千上万的人每天都在进行邮件传输和邮箱申请. 正是采用了利用虚拟账号映射成我们邮件系统的系统账号.现实生活中的126 .QQ. ...

  7. linux ftp 团队认证,linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

    linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建 1.FTP协议:有命令和数据连接两种 命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 ...

  8. linux ftp mysql_linux下ftp和ftps以及ftp基于mysql虚拟用户认证服务器的搭建

    命令连接,控制连接:21/tcp 数据连接: 主动模式,运行在20/tcp端口 和 被动模式,运行在随机端口 数据传输模式(自动模式):有二进制(mp3,jpg等)和文本(html)两种传输模式 ft ...

  9. linux下ftp虚拟账号创建2

    环境:CentOS 5.0 操作系统 一.安装: 1.安装Vsftpd服务相关部件: [root@CentOS ~]# yum install vsftpd*  或 [root@CentOS ~]# ...

最新文章

  1. 【人工智能】人工智能时代的道路选择 | 焦点评论
  2. 原生js获取document_【JS 口袋书】第 9 章:使用 JS 操作 HTML 元素
  3. MyBatis Plus Generator——基于Velocity的Controller参考模板(集成MyBatis Plus、Swagger2、自封装Response、分页)
  4. Pixhawk的传感器数据(陀螺、加计等)流程
  5. ObjectDataSourc用法之三(排序)
  6. 【博士招生】卢森堡大学​SnT(CVI²)研究小组,DeepFake 检测领域
  7. github 仓库管理及代码上传
  8. python写完程序怎么运行
  9. android使用es文件管理器,Android系统文件管理教程-ES文件浏览器用法!
  10. 将使用Kivy的Python程序打包为安卓的apk文件(使用python-for-android)
  11. API接口是什么?(京东API详解)
  12. Ubuntu下键盘输入错乱问题,输入自动变为希腊字母和符号
  13. Python爬虫:输入公司名称,爬取企查查网站中的公司信息
  14. 【如何在知网下载学位论文PDF版本】
  15. ACM技术栈(知识栈)
  16. 改oracle 密码,如何修改oracle用户密码
  17. MVC是什么?优点?
  18. Python基础刻意练习:魔方方法
  19. expdp/impdp时大量等待Streams AQ: Enqueue Blocked On Low Memory
  20. Python中使用逻辑与运算符“and”判断两个比较条件是否满足时编辑器提示“Simplify chained comparison ”的解决方法

热门文章

  1. 两百行业专家聚首 详解IEC新标准
  2. mybatis热加载的实现
  3. oracle自定义数组
  4. Hadoop2 实战系列之1 -- Hortonworks Sandbox的安装和使用
  5. 在超链接href中实现form的提交
  6. hibernate4.2.1默认集成javassist-3.15.0-GA包的一个bug问题
  7. hdu 4196(数论)
  8. BGP链路冗余使用直接接口和回环口分析
  9. 《算法图解》之散列表
  10. python安装pymssql等包时出现microsoft visual c++ 14.0 is required问题无需下载visualcppbuildtools的解决办法...