如何强制实施安全 FTP 连接(到允许安全和不安全的服务器)

如何强制实施安全 FTP 连接(到允许安全和不安全的服务器)

我正在设计一个供最终用户将文件上传到 FTP 服务器的流程。关键要求是确保与服务器的连接是安全的。

我知道许多 FTP 客户端应用程序都可以创建安全的 FTP 连接(例如 FTPES 或 SFTP - FTP 服务器确实支持这些连接),但这是客户端中的可选设置。换句话说,我们可以要求人们创建安全的 FTP 连接,但不能强迫他们这样做。

我应该在这里提到,FTP 服务器属于第三方提供商,如果有服务器设置来强制执行 FTPES 或 SFTP 连接,我们就无法启用这些设置。

那么,问题是 - 有没有办法强制执行安全的 FTP 连接?以下是一些推测:

  1. 也许有 FTP 客户端强制使用安全 FTP 连接,而我告诉最终用户这是他们唯一可以使用的客户端。这有点蹩脚!

  2. 也许有一个 FTP 客户端可以从远程服务器(即我控制的服务器)获取其 FTP 连接详细信息(url、协议和登录),因此我可以指定它们,而最终用户永远不会看到它们。

  3. 也许我可以建立某种“2 跳”连接,用户最初连接到我控制的需要安全连接的服务器,但(对用户透明)该连接实际上被重定向到真正的 FTP 服务器。

答案1

你的第三个想法似乎最有希望:考虑一个FTP 代理服务器。您的用户根据您设置的连接要求(例如加密)连接到代理,代理服务器根据您配置的参数连接到目标服务器。

除非你能强制执行或审核政策,否则你就无法让用户遵守政策。安全框架的强度取决于其最薄弱的环节。

我觉得这种情况很奇怪——你对保密性有要求,需要通过加密数据流量来满足,但你与第三方合作,而第三方不会满足这一要求。可能还需要将问题提交管理部门处理。

答案2

一种可能的方法就是设置您自己的服务器,让他们内部保存数据,然后设置一个脚本将数据镜像到远程站点。这意味着您负责在规定的时间安全地传输数据,而不是将其留给用户(这甚至可以为您消除一些麻烦,除非您需要立即获取远程服务器上的数据)。

除非可以将服务器设置为仅允许安全连接,否则我不知道有什么方法可以真正 100% 确保用户正在做他们应该做的事情,而且您已经说过您无法重新配置第三方服务器。

这种方法的另一个好处是,您拥有 FTP 数据的某种“备份”,并且可以更快地在本地访问数据,而不是通过 webbertubes 访问数据。使用此“ftp 代理”可以节省带宽。

如果你想进一步深入研究它,你甚至可以有一个程序,你的服务器上有一个脚本,可以由用户触发来上传到远程站点,或者可能有一个 cron 作业,可以每五分钟检查一次上传目录中的文件更改,这将触发上传过程到远程站点。

答案3

我认为只有多跳方法才真正有效。

也许您可以对服务器设置防火墙,这样它就不会接受标准 ftp 端口上的连接?

答案4

如果您只允许与服务器建立安全连接,则可以强制他们使用安全连接。如果他们不使用安全连接,他们就无法进入,他们会打电话给您,您告诉他们将 FTP 客户端配置为使用安全连接。问题解决了。

相关内容