FTP Server程序库方案探究

网友投稿 879 2022-05-29

【引言】

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

【Apache FtpServer】

【授权与概述】

Apache FtpServer是一个100%纯Java的FTP服务器。它被设计成一个基于当前可用的开放协议的、完整的、可移植的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

发布时间:2017年5月15日

【编程语言】

Java

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

【1 缩略语】

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

CVE:Common Vulnerabilities and Exposures常见的漏洞和风险

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

【2 ProFTPd】

2.1授权与概述

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

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

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

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

2.2安全性

在所有的可替代方案中,ProFTPd的CVE(常见的漏洞和风险)漏洞最多,有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

发布时间:2020年2月18日

2.6编程语言

C语言

2.7主要亮点

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

l  匿名FTP支持

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

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

l  日志管理

l  支持IPv6

l  过期账户选项

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

【3 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

发布时间:2020年4月3日

3.6编程语言

C语言

【4 vsftpd】

4.1授权与概述

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

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

4.2安全性

vsftpd在CVE中列出的漏洞数目比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

发布时间:2019年3月26日

5.6编程语言

C语言

5.7主要亮点

l  易于安装

l  易于配置

l  便携式二进制应用程序

l  开放源码许可的MIT许可

l  轻量级C语言软件

l  只有一个配置文件

l  不需要特殊技能来设置

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

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

l  可移植的C语言源码

l  适用于Unix/Linux和POSIX操作系统。

【6 glFTPd】

6.1授权与概述

glFTPd 是一个开放源码的免费FTP服服器,适用于 Unix/Linux 作业系统。这款免费软体的第一次公开发行可以追溯到1998年初,glFTPd是GreyLine FTP的缩写(GreyLine FTP的原创者)。它可以在FreeBSD、OpenBSD等Unix系统和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

发布时间:2019年12月30日

6.6编程语言

C语言

6.7主要亮点

l  在chroot模式下运行

l  虚拟用户管理

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

l  加密:通过TLS/SSL

l  上传/下载率控制

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

l  使用情况监测和计算

l  支持IPv6

l  用户可以有一个IP掩码

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

l  支持cookies

FTP Server程序库方案探究

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

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服务器是Windows的FTP服务器应用程序,它不支持其他平台,但支持Windows 7, 8, 8, 8.1和10,包括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

发布时间:2020年03月11日

7.6编程语言

C++语言

7.7主要亮点

l  仅适用于Windows系统。

l  支持32位,和64位。

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

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

l  多协议支持

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

l  设置管理器

l  定制端口

l  用户经理

l  速度限制

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

l  支持通过TLS/SSL的FTP

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的方式自研。

【更多文章】

Jet Ding文章归类索引表

FTP Java 通用安全 漏洞扫描服务

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:大力出奇迹,揭秘昇腾CANN的AI超能力
下一篇:5分钟用上毫秒级NoSQL数据库,让你提前下班
相关文章