PureFtp+PureAdmin:实现基于虚拟账号的FTP服务器

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

   在这篇博客中,小编要与读者分享一下pureftp的搭建,读者可能知道,在linux下常用的ftp服务器是使用VSFTP搭建的居多,但是这样一来,服务器的登陆用户名和密码都是系统账号,必然会带来安全隐患,因此提出虚拟账号的概念,登陆ftp服务器的用户并不是系统中实际存在的用户,而是虚拟用户,但是在登陆ftp服务器的之后会映射成为一个合法系统账号(类似NAT的概念),目前vsftp也可以实现虚拟账号,但是相较于pureftp而言要逊色几分,加上pureftp可以结合web管理界面(pureadmin实现)来进行管理,可以实现用户空间的配额管理等优点,因此小编觉得学会pureftp的搭建与管理是很具实用价值的。

软件环境:

LAMP环境

pure-ftpd-1.0.36.tar.gz

PureAdmin-0.3.tar.gz

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

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

Step 1:源码安装Pure-ftp Server.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 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

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

1
2
3
4
5
# 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/

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

1
2
# cp contrib/redhat.init /etc/init.d/pureftpd
# vim /etc/init.d/pureftpd

clip_image002

1
2
3
# chmod  755  /etc/init.d/pureftpd
# chkconfig --add pureftpd
# chkconfig pureftpd on

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

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

clip_image004

clip_image006

clip_image008

clip_image010

clip_image012

clip_image014

clip_image016

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

1
2
# mkdir /ftproot
# chmod -R  777  /ftproot

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

1
2
# useradd virtualftp -d /ftproot -s /sbin/nologin -M
# chown virtualftp.virtualftp /ftproot

虚拟账号的认证配置.

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

clip_image018

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

1
2
# 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错误;所以这里建议创建另一个非系统自带的用户做映射.

建立用户数据库.

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

Step 2:PureAdmin的配置(管理pureftp的web站点).

1
2
3
# tar zxvf PureAdmin- 0.3 .tar.gz -C / var /www/html/
# cd / var /www/html/
# mv PureAdmin- 0.3  pureadmin

导入数据文件pureftp.sql到MySQL数据库,因为小编使用的MYSQL是5.1以上的版本,所以PureAdmin的表结构的引擎并不能够完全兼容,要做出修改.

注:导入前作如下修改.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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 `)
) ;

导入数据,并授权.

1
2
3
4
# mysql -u root -p < pureftp.sql
mysql>grant all privileges on ftpusers.* to ftp@localhost >identified by  'tmppasswd' ;
mysql>flush privileges;
mysql>quit;

查看导入是否成功.

clip_image020

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

1
# vim / var /www/html/pureadmin/config.php

clip_image022

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

clip_image024

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

创建匿名账号的根目录.

1
# mkdir / var /ftp

Step 3:浏览器登录测试。

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

clip_image026

clip_image028

clip_image030

clip_image032

clip_image034

clip_image036

匿名账号登录测试.

clip_image038




本文转自 chenming421  51CTO博客,原文链接:http://blog.51cto.com/wnqcmq/1197629

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
弹性计算 Linux Windows
跨账号和同账号的ECS云服务器之间迁移教程
跨账号和同账号的ECS云服务器之间迁移教程
|
1月前
|
安全 编译器 Linux
深入解析与防范:基于缓冲区溢出的FTP服务器攻击及调用计算器示例
本文深入解析了利用缓冲区溢出漏洞对FTP服务器进行远程攻击的技术,通过分析FreeFlow FTP 1.75版本的漏洞,展示了如何通过构造过长的用户名触发缓冲区溢出并调用计算器(`calc.exe`)。文章详细介绍了攻击原理、关键代码组件及其实现步骤,并提出了有效的防范措施,如输入验证、编译器保护和安全编程语言的选择,以保障系统的安全性。环境搭建基于Windows XP SP3和Kali Linux,使用Metasploit Framework进行攻击演示。请注意,此内容仅用于教育和研究目的。
79 4
|
3月前
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建
125 0
|
3月前
|
安全 网络协议 网络安全
Windows Server 2003 FTP服务器搭建
Windows Server 2003 FTP服务器搭建
|
3月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
5月前
|
安全 Ubuntu Linux
在Linux中,如何进行FTP服务器配置?
在Linux中,如何进行FTP服务器配置?
|
5月前
|
弹性计算 应用服务中间件
注册阿里云免费领取云服务器,全流程账号注册、实名认证到免费服务器申请
阿里云账号注册与免费服务器申请流程: 1. 访问官网并点击注册,支持手机验证码、支付宝、淘宝和钉钉注册。 2. 手机号注册需获取验证码完成注册;支付宝等方式注册自动关联实名信息。 3. 实名认证:个人推荐支付宝认证,扫码授权即可;企业认证同样便捷。 4. 免费服务器申请:访问免费中心,选择服务器点击“立即试用”,最长期限3个月。
|
6月前
|
网络协议 Unix 网络安全
FTP服务器怎么搭建?Windows server搭建FPT服务器
FTP服务器是按照FTP协议提供文件传输服务的计算机。它用于在两台计算机间安全地传输文件,支持用户权限管理和跨平台操作。FTP使用控制连接处理命令,数据连接传输文件,有PORT和PASV模式。要搭建FTP服务器,首先在Windows Server 2008 R2上安装IIS,确保选中FTP服务。接着,创建FTP文件夹作为站点根目录,通过IIS管理器添加FTP站点,配置站点信息、身份验证和权限。测试客户端通过telnet和浏览器访问FTP服务器,确认能成功登录及浏览文件。FTP常用于文件共享和管理,可通过专用工具如FlashFXP上传下载文件。
213 0
FTP服务器怎么搭建?Windows server搭建FPT服务器
|
6月前
|
弹性计算
阿里云账号注册流程图文详解、账户实名认证和申请免费服务器全流程
阿里云账号注册支持手机号、支付宝等验证方式。使用手机号需手动验证,而支付宝等可自动完成实名认证。注册后须进行个人或企业实名认证才能正常使用服务。个人认证推荐使用支付宝快速完成;企业认证也支持支付宝法人扫描完成。完成认证后,可在免费中心申请最长达3个月的免费服务器试用,或选择付费方案获得更多资源。
|
8月前
|
SQL 分布式计算 DataWorks
DataWorks常见问题之dataworks连接FTP服务器失败如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。