其他人如何保护 FTP 密码?对于合同网络开发人员和网络营销/设计公司来说,我的情况似乎并不罕见,但在网上很难找到我喜欢的答案。
场景:
我可以访问许多 FTP 站点,这些站点位于不同的服务器上,但都不属于我拥有或控制的服务器。大多数向我提供这些凭据的人的技术技能非常有限,有几个人不知道如何更改密码或为我设置单独的帐户。不到 1% 的人使用 SFTP 或 SSL over FTP,因此大多数“纯文本”密码通过网络传输。
如果这些密码落入坏人之手,那就真的麻烦了,部分原因是更改密码或禁用帐户等可能需要几天时间。所以我会花很多时间清理被破坏/感染的网站,结果却一次又一次地被感染,直到他们最终弄清楚如何更改密码。
我目前的想法是:
只需使用 KeePass 加密存储密码,就感觉“足够安全”。我不喜欢这个想法,因为任何监视网络流量的病毒仍然可以看到我的所有 FTP 密码。病毒可能会在我的系统中潜伏数周或数月,并获取大量密码。
我有一台单独的 PC,仅用于 FTP,并使用 KeePass 在上面存储密码。这里的主要问题是我需要能够在任何地方工作,在家里/远程/等等,而且我不想随身携带两台笔记本电脑。我可能需要远程桌面访问,但黑客可以使用键盘记录器/等获取 RDP 密码,并自己远程访问该 PC。他们还可以获取 KeePass 密码和文件(一旦他们有了 RDP 密码)。
一台装有 VMware 的 PC。永远不要在“主机”(非 VM)上做任何事情,这样它就“永远”不会感染病毒,并且有一台 VM 供我工作,另一台仅用于 FTP(也永远不会感染病毒)。听起来这是目前最好的方法,但运行这样的 VM 所需的硬件,同时还能获得不错的速度,似乎很昂贵。仅对我而言(不包括其他员工),我需要 3 个这样的盒子,因为我喜欢在工作、家里和小屋里都有一台台式电脑。
一台 PC 上存储了所有 FTP 信息,除了通过 FTP/SFTP 或某些专有协议/程序外,无法访问。此“服务器”类似于 FTP 代理或其他东西,只不过它还会在发送到真正的 FTP 服务器之前注入登录信息。因此,我 PC 上的 FTP 客户端只会发送主机/URL 和用户名,但随后总是发送“密码”或“空白”作为密码,而 FTP“代理”会在数据库中查找真正的密码并修改流,然后再发送到真正的服务器。我只能从服务器(控制台)更新密码数据库,并且我永远不会在服务器上运行任何应用程序/等。
允许远程控制的 FTP 客户端。这样我就可以把它安装在某个非常安全的盒子上,然后从另一个盒子上远程控制它。至少,如果另一个人获得了远程控制它的权限,他们仍然无法从中获取密码,所以他们只能破坏网站,而不能一遍又一遍地继续这样做。
结论(迄今为止):
4 和 5 是唯一听起来比较安全的(只要代理或远程控制客户端没有漏洞),但我认为这两个都不存在。我猜 5 可能是一个为您托管 FTP 客户端的网站,因此您可以登录并管理您的 FTP 帐户(但在输入密码后永远无法取回密码),并通过它们进行所有 FTP 操作。因此,只要他们的服务器是安全的,您的帐户信息和流量也是安全的。也许是“Web 到 FTP”提供商?但我希望界面非常简单,比如复制/粘贴支持,就像我可以使用大多数 FTP 客户端一样——我想这可能是一个交易破坏者。黑客可以获取我使用此服务的登录信息,并使用它来破坏网站,但至少无法获取 FTP 凭据。
在您说“只需使用防病毒软件”之前...我们在两台不同的 PC 上安装了最新版本的 Avast 和 MS Security Essentials,但两台 PC 仍然感染了某种病毒,将多个 FTP 密码发送到了乌克兰。这对我们来说非常尴尬,不得不要求客户更改 FTP 密码,并且不得不等待几天,让其中一些客户弄清楚如何更改(向他们的托管公司发送电子邮件,因为他们没有电话支持,而且是在周末)。
ps-我们是一家基于 Windows 的办公室,因此正在寻找基于 Windows 的解决方案...或者至少基于 Windows 的客户端可以访问(如果是 Unix 服务器)。
答案1
这不是你的问题。如果第三方选择只提供不安全的方法供你使用,那么服务器被入侵就不是你的错。
最佳解决方案:培训他们了解 FTP 协议不安全的原因,并让他们聘请第三方来解决问题。如果您已经向他们发出警告,告知他们 FTP 协议的不安全性,但他们仍然选择使用 FTP,那么这是他们的选择,您必须尊重他们的选择。
答案2
正如您在问题中所述,FTP 并不安全。明文密码是一场灾难。您能做的最好的事情就是确保您只连接到您信任的网络上的 FTP 服务器,例如不是公共 wifi。如果您需要连接到 FTP 服务器并且不能信任网络,请通过安全的方式(如 VPN 连接或 SSH 隧道)将您的 FTP 连接转发到您控制的服务器。理想情况下,这台机器离 FTP 服务器尽可能近。搜索“使用 PuTTY 进行 SSH 端口转发”,使用 PuTTY 转发到便宜的 Linux VPS 可能是最简单的解决方案。