FTP Server程序库方案探究

举报
Jet Ding 发表于 2020/09/30 17:13:00 2020/09/30
【摘要】 FTP(文件传输协议),顾名思义就是两台计算机之间的文件传输协议,本地计算机和远程服务器。FTP服务器是一种运行在Web服务器上的网络服务器,在服务器端使用FTP协议来管理文件传输、连接和用户。

【引言】

 

FTP(文件传输协议),顾名思义就是两台计算机之间的文件传输协议,本地计算机和远程服务器。FTP服务器是一种运行在Web服务器上的网络服务器,在服务器端使用FTP协议来管理文件传输、连接和用户。

Apache FtpServer

【授权与概述】

Apache FtpServer是一个100%JavaFTP服务器。它被设计成一个基于当前可用的开放协议的、完整的、可移植的FTP服务器引擎。FtpServer可以作为一个Windows服务或Unix/Linux守护进程独立运行,也可以嵌入到Java应用程序中。

使用GPL授权模式。

其功能列表如下:

l  100%Java,免费,免费,开源的FTP服务器

l  多平台支持,多线程设计,。

l  用户虚拟目录,写权限,空闲超时,支持上传/下载带宽限制。

l  支持匿名登录。

l  上传和下载文件均可断点续传。

l  同时处理ASCII和二进制数据传输。

l  支持IP限制,支持禁止IP

l  数据库和文件可用于存储用户数据。

l  所有的FTP消息都可以自定义。

l  隐式/显式SSL/TLS支持。

l  支持MDTM - 你的用户可以改变文件的日期时间戳。

l  "MODE Z "支持更快的数据上传/下载。

l  可轻松添加自定义用户管理器、IP限制器、记录器。

l  可以添加用户事件通知(Ftplet)。

 

 

【安全性】

https://nvd.nist.gov/view/vuln/search-results?query=FtpServer&search_type=all&cves=on

 

59个漏洞。

 


【使用分布状况】

https://www.shodan.io/search?query=FtpServer

 

搜索到5500个用户。

 


【工程网站】

https://mina.apache.org/ftpserver-project/

【最新发布】

最新版本:1.1.1

发布时间:2017515

 

【编程语言】

Java

 

现在我们来看看有哪些FTP Server的替代方案,本文我们会讨论三个可替代方案,在最后我们会小结一下。

 

缩略语

GPL: The GNU General Public License (GNU GPL or GPL)  通用公共许可证

CVECommon Vulnerabilities and Exposures常见的漏洞和风险

LGPL: GNU Lesser General Public License (LGPL) version 3 :较小的一般公共许可证版本3

ProFTPd

2.1授权与概述

ProFTPd有很多的插件,是以Apache的配置架构为模型,也使用了GPL的授权。

 

ProFTPd是一个模块化的FTP服务器,已经有很长一段时间了。大型的控制面板(cPanelDirectAdmin)都支持ProFTPd,而且已经支持多年。

 

ProFTPd的配置相当简单,在Google上快速搜索一下就能看到很多配置文件的例子。

ProFTPd可用于各种系统架构和操作系统。

 

2.2安全性

 

在所有的可替代方案中,ProFTPdCVE(常见的漏洞和风险)漏洞最多,有54个。这么高的数字,很可能是ProFTPd的广泛使用,使它成为黑客的目标。

下面是ProFTPd安全性相关问题列表:

 


https://nvd.nist.gov/view/vuln/search-results?query=proftpd&search_type=all&cves=on

2.3使用分布状况

共搜到一百万以上的使用结果


 

https://www.shodan.io/search?query=ProFTPd+

2.4工程网站

http://www.proftpd.org/

 

2.5最新发布

最新版本:1.3.7rc3

发布时间:2020218

2.6编程语言

C语言

 

2.7主要亮点

l  每个目录配置中的".ftpaccess "类似于Apache".htaccess"

l  匿名FTP支持

l  配置单个或多个虚拟FTP服务器或匿名FTP服务

l  支持基于Linux文件系统权限的隐藏文件和目录。

l  日志管理

l  支持IPv6

l  过期账户选项

l  在独立模式下,作为可配置的非特权用户运行。

PureFTPd

3.1授权与概述

 

PureFTPd的口号是「安全第一」。PureFTPd使用BSD授权,可在多种操作系统上使用(但不包括Windows)。


PureFTPd的配置很简单,有一个免配置文件选项。虽然PureFTPd不像ProFTPd那样被广泛使用,但PureFTPd在线上也有许多配置范例。

3.2安全性

PureFTPd "安全第一 "口号让它在安全方面中处于领先的位置,安全漏洞最少。

 

搜到有8个漏洞:


https://nvd.nist.gov/view/vuln/search-results?query=pure-ftpd&search_type=all&cves=on

 

3.3使用分布状况

共搜到124条使用结果。

 

 


https://www.shodan.io/search?query=PureFTPd&language=en#

3.4工程网站

https://www.pureftpd.org/project/pure-ftpd/

3.5最新发布

最新版本:1.0.49

发布时间:202043

3.6编程语言

C语言

 

vsftpd

4.1授权与概述

vsftpd是另一个GPL授权的FTP服务器,它的字面意思是 "非常安全的FTP守护进程"。它是一款以安全为前提的轻量级FTP服务器。

 

它的轻量级特性使它能够非常有效地扩展,许多大型站点(ftp.redhat.comftp.debian.orgftp.freebsd.org)目前都使用vsftpd作为他们的首选FTP服务器。

 

4.2安全性

vsftpdCVE中列出的漏洞数目比ProFTPd少,但比PureFTPd多。这可能是因为它的名字暗示了它是一个安全的FTP服务,也可能是因为它在大型网站中的使用非常广泛,所以它比其他的服务更受关注。

 

搜到有16个漏洞:

 


 

https://nvd.nist.gov/view/vuln/search-results?query=vsftpd&search_type=all&cves=on

4.3使用分布状况

共搜到68万以上的使用结果

 


https://www.shodan.io/search?query=vsFTPd

 

4.4工程网站

https://security.appspot.com/vsftpd.html

4.5最新发布

最新版本:3.0.3

发布时间:2015

4.6编程语言

C语言

4.7  主要亮点

 

l 虚拟IP配置

l 用户创建、管理、删除、虚拟用户

l 每个用户的配置

l 带宽节流

l 每源IP配置

l 每个来源-IP限制设置

l 支持IPv6

l SSL:支持

5 uFTP

5.1授权与概述

uFTP是一个开源的、轻量级的、可移植的FTP服务器。它主要是为基于Unix/Linux (POSIX)的服务器编写的。

它是在MIT授权下发布的,但它包含了OpenSSL项目开发的OpenSSL工具包的软件,所以我们也要查看OpenSSL授权。

 

5.2安全性

https://nvd.nist.gov/view/vuln/search-results?query=uftp&search_type=all&cves=on

 

共发现10个安全问题。


 

5.3使用分布状况

https://www.shodan.io/search?query=uftp

 

共有18个使用记录。

 


5.4工程网站

https://www.uftpserver.com/

5.5最新发布

最新版本:NA

发布时间:2019326

5.6编程语言

C语言

5.7主要亮点

l  易于安装

l  易于配置

l  便携式二进制应用程序

l  开放源码许可的MIT许可

l  轻量级C语言软件

l  只有一个配置文件

l  不需要特殊技能来设置

l  官方维基上有详细的记录

l  该代码和软件可用于商业应用。

l  可移植的C语言源码

l  适用于Unix/LinuxPOSIX操作系统。

6 glFTPd

6.1授权与概述

glFTPd 是一个开放源码的免费FTP服服器,适用于 Unix/Linux 作业系统。这款免费软体的第一次公开发行可以追溯到1998年初,glFTPdGreyLine FTP的缩写(GreyLine FTP的原创者)。它可以在FreeBSDOpenBSDUnix系统和Ubuntu服务器等Linux发行版中顺利运行。

 

glFTP支持许多FTP/站点命令,并且在chroot环境下运行,这使得它相对安全。

6.2安全性

https://nvd.nist.gov/view/vuln/search-results?query=glftpd&search_type=all&cves=on

共发现6个安全问题。


 

6.3使用分布状况

https://www.shodan.io/search?query=glFTPd

共有230个使用记录。

 


6.4工程网站

https://glftpd.io/

 

6.5最新发布

最新版本:2.10a

发布时间:20191230

6.6编程语言

C语言

6.7主要亮点

l  chroot模式下运行

l  虚拟用户管理

l  全局或每个用户的带宽节流

l  加密:通过TLS/SSL

l  上传/下载率控制

l  用户管理:创建、更新、删除

l  使用情况监测和计算

l  支持IPv6

l  用户可以有一个IP掩码

l  下载(DL)和上传(UL)使用量统计

l  支持cookies

l  支持ECDHE的密钥交换,从而使PFSECC证书发挥作用。

l  允许向用户添加IPv6掩码

l  显示磁盘空间、使用量、空闲空间、使用过的空间

l  在文件列表中隐藏真实用户名和组名

l  支持 "dirlog "缓存

l  支持XCWD/XMKD/XRMD/XPWD/XCUP FTP命令

l  支持SSCN命令作为SSL FXL的另一种方法。

7 FileZilla

7.1授权与概述

FileZilla是一个开源的免费FTP客户端和服务器,它可以作为FTP客户端在多个平台上运行,也可以作为FTP服务器在Windows上运行。FileZilla已经有多年的历史了,它与许多商业付费软件竞争。

 

FileZilla服务器是WindowsFTP服务器应用程序,它不支持其他平台,但支持Windows 7, 8, 8, 8.110,包括32位和64位。FileZilla服务器和客户端是在GPL v2.0下发布的。

2.2安全性

https://nvd.nist.gov/view/vuln/search-results?query=FileZilla&search_type=all&cves=on

共发现17个安全问题。


 

7.3使用分布状况

共有48万多个使用记录。

 


7.4工程网站

 

https://filezilla-project.org/

7.5最新发布

最新版本:3.47.2.1

发布时间:20200311

7.6编程语言

C++语言

7.7主要亮点

l  仅适用于Windows系统。

l  支持32位,和64位。

l  易于最终用户安装和使用

l  用于家庭服务器和小公司的个人使用。

l  多协议支持

l  通过简单的用户界面进行简单的安装

l  设置管理器

l  定制端口

l  用户经理

l  速度限制

l  支持被动模式和易于使用的管理器

l  支持通过TLS/SSLFTP

l  IP过滤器和管理器

l  每个用户的连接限制

l  共享文件夹管理器

l  支持文件传输压缩

l  文件夹/目录权限设置选项

l  线程限制控制

l  连接、无传输和登录的超时设置

l  支持网络上的另一台机器上的远程文件夹共享。

l  匿名用户登录支持。

 

小结

现在做一下总结,Apache FtpServer库使用的是Java语言,我在搜索的过程中发现了几个使用Java的开源Ftp Server,比如ColoradoFTP, DrFTPD, Java FTP Server。但是他们都比较老旧了,因此就没有列出来。

 

因此:

如果是部署FTP服务器的话,我们的选项很多,可以从上面的列表中选择合适的项目软件。

如果是Java代码开发集成的话,目前没有找到直接的替代品。可以通过Fork Apache FTPServer的方式自研。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200