文件传输协议(FTP)是用于传输大文件的原始互联网协议之一。现代互联网有许多工具来传输电子邮件附件和各种传输工具,但这些方法有其局限性。FTP具有增强的安全性,例如SFTP和FTPS中提供的安全性,仍然是传输文件的最佳工具之一。但是,要使用它,必须设置SFTP服务器。
入门:FTP、FTPS与SFTP
FTP文件传输协议:原始协议及其主要限制是它发送未加密的登录和数据。登录信息以及文件本身以明文形式“以明文形式”发送,用户可以看到。
FTPS文件传输协议安全(也称为FTPES):这是安全FTP,在这种情况下,S表示传输层安全性(TLS)加密。这本质上是一个基本的FTP服务器,它知道如何协商加密的TLS隧道来传输数据。
SFTP安全文件传输协议:这也是安全的FTP,但在这种情况下,S代表Secure SHell(SSH)。它不是一个FTP服务器。相反,它是一个了解FTP命令的SSH服务器。登录信息和文件通过SSH加密传输。缩写SFTP的初衷是RFC 913定义的简单文件传输协议,但已是“历史”状态,不再使用。
SCP安全复制:这不是FTP协议,但它被广泛用于安全传输文件,因此在此提及。SCP是使用SSH协议从一台机器到另一台机器的非常简单的文件副本。FTP协议具有SCP不具备的各种文件管理功能。
实现SSH文件传输协议的GUI实用程序被称为SFTP客户端,尽管它也可以是SFTP服务器。SFTP客户端名称表示此软件启动连接。它也称为服务器,因为它通常是存储备份配置的文件服务器的一部分。
SCP只是一个复制功能。SFTP有自己的环境。它允许你在远程系统上移动文件,更改目录甚至在远程主机上创建目录。SFTP和SCP都使用相同的安全程序来强制执行用户身份验证,并通过连接加密来保护传输。但是,SFTP为用户提供了更多访问操作系统操作系统的功能。你更有可能使用SCP进行简单的文件传输。
由于两个系统都需要用户身份验证,因此如果你将其中任何一个放入批处理作业,则存在风险,因为你必须在调用该命令时提供用户名和密码。但是,可以通过为该计算机创建受限访问用户帐户来限制任何人在远程系统上发现用户帐户的可能性,从而阻止访问该帐户的任何人进入除帐户主目录之外的任何其他目录。但是,这种策略会否定为SFTP提供优势的许多功能。如果使用SCP执行安全传输到远程主机的风险较小,因为该协议中没有命令语言。SFTP更适合系统管理员在远程计算机上执行交互式手动任务和传输。
下面就让我们一起看看20个免费的SFTP和FTPS服务器:
1.SolarWinds SFTP
操作系统:Windows
SolarWinds是一套完整的IT工具。而SolarWinds则包含免费的强大SFTP和SCP服务器作为其产品的一部分。
SolarWinds SFTP服务器下载是一个zip文件,可以解压缩为MSI安装程序。安装完成后,设置就像启动程序并指定一些选项(如允许的协议和允许的传输选项)一样简单。
还有一个内置的SCP服务器,因为SFTP和SCP都使用SSH来完成他们的任务。你可以通过选择“Both”协议来配置SolarWinds SFTP服务器以允许SCP。
在“用户”选项卡上,你可以创建用户帐户并指定详细信息,例如要使用的网络接口。
2.FileZilla FTPS
操作系统:Windows
FileZilla是一个众所周知的FTP服务器和客户端套件。服务器本身只能在Windows上运行,但由于几乎每个操作系统都有Filezilla客户端,因此它是一个不错的选择。不需要使用FileZilla客户端连接到FileZilla FTP服务器,但简化产品可以帮助解决支持问题。Filezilla服务器支持FTPS,但不支持SFTP。客户端支持两者。
3.IIS FTPS服务器
操作系统:Windows
Windows Server中提供了一个经常被忽视的FTPS服务器。如果你已经在运行Internet信息服务(IIS),则可以添加FTP服务器角色,然后创建TLS证书,并且可以非常快速地在IIS服务器旁边运行全功能FTPS服务器。
4.FreeFTP
操作系统:Windows
FreeFTP源自FreeSSH,是适用于Windows的全功能SFTP服务器。它支持所有类型的FTP,包括SFTP和FTPS。顾名思义,它是免费的,支持创建任意用户,这使其成为Windows网络上快速SFTP设置的理想选择。
在安装过程中,你可以根据需要选择运行FreeSFTP,也可以将其安装为系统服务。后者意味着它将一直运行并可供SFTP用户使用。
确保下载最新版本(大于1.0.11)。版本1.0.11中发现了一个漏洞,该漏洞已在1.0.12中修补,当前版本为1.0.13。
5.Syncplify.me SFTP服务器
操作系统:Windows
Syncplify是一个可扩展的SFTP服务器,可以运行自定义脚本。如果你发现必须跳过以使SFTP服务器适合你的独特工作流程,Syncplify可能是你正在寻找的工具。
免费/评估版具有Ultimate版的所有功能,但它只接受单个连接,并且未获得在生产中使用的许可。
6. Rebex Tiny FTP服务器
操作系统:Windows
Rebex Tiny SFTP服务器可免费用于所有用途,包括商业用途。它可在WIndows XP、Windows 7等上运行,并且还支持Windows Server 2002,2008和2012版本。它仅限于一个用户,但功能丰富。它不需要设置,并且包含完整的日志记录功能以及对公钥/私钥登录的支持,而不是密码。
值得一提的是,Rebex提供了完整的.NET库,允许开发人员在自己的应用程序中包含SFTP代码。这些库不是免费的,但值得一看,如果你是一个.NET开发人员,手头上有这样的项目。
7. zFTPServer
操作系统:Windows
zFTPServer专为企业Windows环境而构建。它具有完整的Active Directory登录集成,并通过了Microsoft Server 2012 R2认证。它支持IPv6,帐户过期以及企业Windows管理员将欣赏的许多其他功能。
免费版本没有功能限制,因此可以按原样用于较小的实现。但是,有一些帐户相关的限制。免费版限制为总共五个帐户,并且在任何给定时间都有三个活动连接。
8.ALTFTP
操作系统:Windows
ALTools网站为系统管理员和普通计算机用户提供了一套产品。ALTFTP是一个支持SFTP的FTP服务器,可以运行在各种旧的和更新的硬件上,甚至可以追溯到Pentium 150.它是Windows唯一的FTP服务器,从Windows 98开始支持到Windows 7.据推测,它也将在Windows 10上运行,但没有具体列出。
ALTFTP只需一次下载即可将客户端和服务器应用程序捆绑在一起,并提供60天的免费试用版。
9.CrushFTP
操作系统:Windows
CrushFTP是基于Windows的FTP服务器,利用压缩,因此命名为“Crush”。它压缩传输的文件并通过网络流式传输压缩数据,大大减少了许多类型文件的传输时间。
CrushFTP还内置了一些安全措施。它可以通过自动禁止攻击IP来防止暴力登录攻击,强大的用户管理包括虚拟文件系统和权限继承。CrushFTP服务器有30天的试用期,客户端是免费的。
10. Cornerstone MFT服务器
操作系统:Windows
Cornerstone MFT(托管文件传输)是一种SFTP服务器,可满足企业的要求。MFT是一个总称,表示比正常的特殊FTP客户端/服务器关系通常提供的更高级别的控制和审计。MFT的出现是为了满足透明登录的需要,在传输过程中提高安全性,以及更好地了解文件传输进度和成功或失败。
Cornerstone提供PGP加密的文件存储。数据可以即时加密,因此永远不会有未加密的数据在磁盘上等待加密。此外,Cornerstone还提供周边保护机制,例如双因素身份验证。
你可以试试Cornerstong MFT 30天试用版,看看它是否符合需求。
11.Globalscape SFTP服务器
操作系统:Windows
Globalscape创造了“增强文件传输”(EFT)这一短语来指代他们的“托管文件传输”(MFT)产品。
Globalscape的EFT服务器可以部署在高可用性(HA)配置中,包括负载平衡和集群配置。此外,Globalscape提供内部部署和云产品,因此可以根据自己的情况选择最佳的EFT解决方案。
Enterprise和SMB有30天的免费试用版。虽然云版本也有免费试用版,但目前尚不清楚试用期有多长。
12.Titan FTP服务器
操作系统:Windows
Titan FTP Server支持常规FTP,以及FTPS和SFTP。它符合HIPAA标准,非常适合在全球的医院和政府机构中使用。它在Windows Server 2008和Windows Server 2012上运行。
除了简单地提供文件传输服务之外,Titan FTP服务器捆绑了一些安全措施,可以抵御暴力破解尝试和完整的审计功能,因此系统管理员可以了解其服务器上发生的情况。
帐户管理可以与企业版中的Windows NT/SAM身份验证相关联,并且包括细粒度帐户管理,例如自动帐户到期。
Titan为其FTP服务器提供为期20天的试用版。
独立的免费SFTP和FTPS服务器(无需安装)
13.Syncplify.me Micro SFTP服务器
操作系统:Windows
除免费/评估版外,Syncplify还提供适用于Windows的Micro SFTP服务器。它是一个完全包含的便携式SFTP服务器,可以从USB运行。与完整Syncplify SFTP服务器的免费/评估版不同,Micro服务器版在任何情况下都可以完全免费使用,包括生产和商业用途。
14. Xlight FTP服务器
操作系统:Windows
Xlight FTP服务器有多种版本,包括不需要安装的便携式独立版本。凭借32位和64位版本,它将在Windows 2000,XP,Vista,7,10,2003 Server,2008 Server和2012 Server上运行。 它甚至还有本地化文件,允许你的安全FTP服务器以各种不同的语言显示文本,或者如果你所需的语言尚不可用,可以编写自己的语言文件。
15.Core Mini SFTP服务器
操作系统:Windows/Linux
Core Mini FTP服务器是一个免费的SFTP服务器,无需安装。你可以简单地下载它,指定用户名和密码,用于FTP传输的目录,以及已启动并运行。请记住,SFTP服务器将以你的用户身份运行,因此无法防止SFTP用户损坏你的文件。请务必为FTP使用指定无害或空目录。
以下是适用于Linux的免费SFTP和FTPS服务器
由于SFTP在SSH上运行,因此大多数Linux系统都准备好了SFTP。FTPS需要一个支持TLS的专用FTP服务器,但是当在Linux主机上很容易设置SFTP时,很难找到运行FTPS的充分理由。
使用OpenSSH
在标准Linux系统上,大多数有效用户将能够使用任何SFTP客户端连接到服务器并从其主目录传输文件。但是,允许远程用户访问通常被视为安全风险,因此许多系统管理员将禁止此访问。最常见的方法是禁止用户的shell访问,或阻止SFTP端口(22,与SSH相同)到指定的IP地址。
假设没有这些限制,任何可以连接到SFTP服务器上的端口22的SFTP客户端都应该可以正常工作。
$ sftp [email protected]
[email protected]'s password:
Connected to 172.81.178.34.
sftp> pwd
Remote working directory: /home/test-sftp
sftp>
16.MySecureShell
操作系统:Linux
在大多数Linux发行版上可轻松设置SFTP。而这意味着你的用户对你的信任程度可能与现实不相称。如果你有不受信任或未知的SFTP用户,可能希望对他们在系统上可以执行的操作施加限制。有很多方法可以实现这一点,例如只允许运行不允许常规SSH登录的SFTP引擎,或者可以使用MySecureShell等应用程序来完成繁重的工作。
MySecureShell支持访问控制列表,这是对用户访问进行精细控制的核心。它包含在许多分发存储库中,因此只需使用包管理器来安装它:
$ sudo apt-get install mysecureshell
[sudo] password for jdw:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
mysecureshell
安装后,可能需要对/ etc / ssh / sftp_config中的应用程序配置文件进行一些基本修改,然后就可以启动并运行了。
17.vsftp
操作系统:Linux
Vsftp是一个免费的FTP服务器,用于类Unix系统,包括Linux。众所周知,它非常快速,稳定并且消耗很少的系统资源。广泛的功能列表包括对虚拟用户(非系统用户)的支持,监听任何接口的能力,每用户配置以及速率限制或限制以避免dos类型攻击。
许多最著名的Linux发行版将vsftp作为其FTP服务器运行,这说明其安全性和稳定性。Vsftp在大多数Linux发行版中都可以通过包管理器安装。
$ sudo apt-get install vsftpd
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
vsftpd
与大多数Linux工具一样,需要快速运行/etc/vsftp.conf文件来设置一些基本配置选项,然后vsftp服务器就可以运行了。
18. ProFTPd配置为使用SFTP
操作系统:Linux
ProFTP是在需要取代wu-ftp作为广泛使用的FTP服务器的基础上构建的。由于应用程序中的不安全因素需要多年的修改,因此Wu-ftp变得笨拙,而最终从头开始构建新的FTP客户端变得更加高效。
ProFTP在webserver之后受到启发。可以在配置文件的格式中看到这一点,并且它使用模块来加载所需的功能。在这种情况下,你需要在加载mod_sftp模块的情况下使用ProFTP以获得SFTP功能。
ProFTP网站提供了一些示例配置,可帮助你开始正确的方向。
FTP仍然是互联网工具集中非常重要的一部分,尽管它本身缺乏安全性。就像HTTP协议已经将TLS用固定在其上以形成我们现在称为HTTPS的安全性一样,FTP已经将TLS和SSH合并到其中以便提供加密和安全性。很少有其他工具可以轻松地允许任意大量的文件传输。许多企业将在未来很长一段时间内继续使用SFTP或FTPS。
19.PureFTPD
操作系统:Linux
PureFTPD是一个开源的SFTP服务器,几乎可以在所有类Unix操作系统上运行,包括Linux,BSD,Solaris等。它作为一个开源项目进行维护,旨在提供符合标准的FTP服务器。已被翻译成各种语言,因此如果你正在使用国际用户群,PureFTP可能适合。
PureFTP没有限制;所有功能从一开始就可用。其中更有用的功能之一是能够限制连接以保留带宽,在虚拟文件系统中运行它(* nix用语中的“chroot”),设置上传/下载限制等等。
适用于Windows和Linux的最佳免费SFTP和FTPS服务器
20.VandDyke VShell
操作系统:Windows\\Linux
VanDyke Software VSHell是适用于Windows和Unix的企业级SFTP和SCP服务器。它支持SFTP,SCP和FTPS,并包含非常精细的用户访问控制。
Windows版本拥有易于使用的图形安装程序,它可以使用各种用户身份验证方法,如LDAP和公钥/私钥对。
Unix版本支持虚拟目录以及细粒度的文件权限。可以为每个用户或虚拟目录本身设置文件权限。
VShell提供30天的试用版。
閱讀更多 雲智時代 的文章