【发布时间】:2011-06-27 18:02:32
【问题描述】:
我们要求能够访问移动设备上的资源。移动设备必须充当服务器。无论手机如何连接(wifi、3g、防火墙后等),它都必须可用。我知道这可以通过启动从手机到云可访问服务器的 ssh 反向端口来实现。希望访问手机资源的客户现在可以通过某个随机端口连接到云服务器,并通过隧道连接到移动设备。很好。
我的问题涉及这种想法作为可扩展、稳健、安全的解决方案的可行性。使用这种方案部署到数万台设备的移动应用程序可以访问设备本地资源。设备本地资源不是超高安全性。建议使用 ssh 主要是因为它使设置隧道更容易。
这是我的一些担忧,
-
端口分配。每个隧道都需要云服务器上的唯一端口。我相信这将需要设备和云服务器在启动隧道之前协商 IP。这当然是可能的,但这意味着某处存在某种复杂的服务,它不断地探测端口以确定它们的可用性。
-
端口资源。服务器上有有限数量的端口。当跨多个服务器扩展时,这可能不是问题。
-
隧道管理。隧道可能并不总是很好地下降,因此存在“清理”意外下降的隧道的问题(参见 #1)。
-
安全。每个设备都需要公钥来匹配云服务器上的秘密。如果它在设备上,则可以从中取出。现在,只要帐户被锁定,就不会发生什么事情,但它确实打开了另一个攻击媒介。
此外,简单地打开服务器的所有唯一端口是另一种攻击媒介。
-
可扩展性。打开数千个 SSH 隧道的成本(资源方面)有多贵?现实吗?
-
防火墙。云服务器端口不会是“80”或“8080”,而是一些随机数。对于某些可能会限制到标准端口的出站连接的防火墙来说,这是一个问题吗?
正如您所见,安全不是我的强项,所以请给我戴上小孩手套。如果您没有猜到,我对这种方法持极端保留意见,因此我正在寻找证据来寻找其他解决方案来解决一般问题。
【问题讨论】:
标签: security ssh scalability portforwarding ssh-tunnel