FTP Server程序庫方案探究
【引言】
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
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小時內刪除侵權內容。