运行基于 Windows 的 Web 服务器的人经常会问我这个问题。FTP 虽然无处不在,但存在许多缺陷和不足,而所有这些缺陷和不足都无法通过在现有 FTP 协议上添加 SSL/TLS 来解决。
那么,是否有一个协议、配置或其他解决方案可供 Windows 用户用于公共文件传输,以取代 FTP?典型的要求简单而直观:
- 它必须是相对不熟练的管理员可以设置和管理的东西
- 访问此协议也不需要隐式授予对其他资源的访问权限
- 互联网需要安全
这里有一些不行不满足问题要求但通常还是会被建议的解决方案。将它们包含在这里是为了敦促您避免将它们作为答案
- Cygwin 和其他 SSH 解决方案除了对于新手来说设置起来比较复杂之外,还隐式地向访问者授予命令 shell 访问权限,使他可以执行不仅仅是上传和下载文件(即执行任意代码)的操作
- RDP 不仅具有文件共享功能,还授予访问者桌面访问权限,使他可以执行不仅仅是上传和下载文件的操作
- FTPS、FTPES 和其他基于 FTP 的解决方案。加密并不是 FTP 的唯一问题。否则我们不会问这个问题。
- Windows 文件共享在互联网上使用并不安全,因此通常会被 ISP 阻止
- DAV,除非可以非常轻松地设置和保护(通常情况并非如此)
请注意,这是非常明确和有意的不是A购物问题。我们不会问哪种流行产品最能满足一长串的功能。相反,我们正在寻找一个常见问题的潜在解决方案。
答案1
我认为您的禁忌清单所强调的关键问题不是文件传输,而是相关管理员接受的培训质量(或预期必须接受的培训质量)。如果一个组织无法在内部或通过外包 IT 基础设施建立这样的系统,那么作为客户或投资者,我会感到担忧(这听起来比我预期的更咄咄逼人/傲慢,但我想不出更好的措辞方式……)。
为了更直接地解决你的问题:
Cygwin + SSH
使用 Cygwin 设置肯定很麻烦,但有商业选项可能更容易管理。SCP/SFTP(通过 SSH)不是必然意味着 shell 访问 - 在所有实现中,我知道这可以从用户中删除,或者根本不可能。在 Linux 下,通常可以使用受限制的 shell rssh
,只需将所有用户设置为将其中一个作为他们的 shell,因此它们很可能也存在于 Cygwin 的端口集合中(如果没有,也可以在本地编译)。如果您不确定受限制的 shell 是否足够,另一个选择是让 SSH loginc 全部通过网关盒,该网关盒中绝对不包含用户可以运行的任何有用的东西,并让它通过用户家中的本地网络安装其他存储区域(尽管设置起来会更加麻烦)。
RDP 不仅具有文件共享功能,还授予访问者桌面访问权限,使他可以执行不仅仅是上传和下载文件的操作
我同意 RDP/RDS 只是用于文件共享的错误解决方案,尽管您可以使用非常有限的权限安全地锁定您的 RDP 用户。
FTPS、FTPES 和其他基于 FTP 的解决方案。加密并不是 FTP 的唯一问题。
同意。
Windows 文件共享在互联网上使用并不安全,因此通常会被 ISP 阻止
如果您控制连接的客户端操作系统,并且它们始终通过质量不错的链接进行连接,则可以考虑使用 Windows 文件共享,但只能通过某种形式的 VPN 解决方案进行访问。不过,如果您认为管理 SSH 是一个主要的基础设施管理问题,那么 VPN 的想法也可能会令人害怕。
DAV,除非可以非常轻松地设置和保护(通常情况并非如此)
我自己没有使用过 DAV,因此无法在此发表任何权威评论。