ssh反向端口转发到移动设备

时间:2011-02-15 16:39:36

标签: security ssh scalability portforwarding ssh-tunnel

我们要求能够访问移动设备上的资源。移动设备必须充当服务器。无论手机如何连接(wifi,3g,防火墙等),它都必须可用。我知道这可以通过从手机向云端访问服务器发起ssh反向端口来实现。希望访问电话资源的客户现在可以通过某个随机端口连接到云服务器,并将连接隧道连接到移动设备。细

我的问题涉及这个想法作为可扩展,强大,安全的解决方案的可行性。使用此方案部署到成千上万个设备的移动应用程序,以使设备本地资源可访问。设备本地资源不是超高安全性。建议使用ssh主要是因为它使得建立隧道变得更容易。

以下是我的一些担忧,

  1. 端口分配。每个隧道都需要云服务器上的唯一端口。我相信这将要求设备和云服务器在启动隧道之前协商IP。这当然是可能的,但这意味着某处有一些复杂的服务,不断探测端口以确定它们的可用性。

  2. 端口资源。服务器上有无限数量的端口。当事情在多个服务器上扩展时,可能不是问题。

  3. 隧道管理。隧道可能并不总是很好地下降,因此存在“清理”意外下降的隧道的问题(见#1)。

  4. 安全性。每个设备都需要公钥来匹配云服务器上的密钥。如果它在设备上,则可以从中获取。现在,只要帐户被锁定,就不会发生太多事情,但它会打开另一个攻击媒介。

  5. 另外,只需打开服务器的所有唯一端口就是另一个攻击媒介。

    1. 可扩展性。可能有数千个SSH隧道打开,这有多贵(资源方面)?这是现实的吗?

    2. 防火墙。云服务器端口不会是“80”或“8080”,而是一些随机数。对于某些可能限制到标准端口的出站连接的防火墙,这是一个问题吗?

    3. 因为你可以看到安全不是我的强项所以请用小孩手套对待我。如果你还没有猜到,我对这种方法有极大的保留,所以我正在寻找证据来寻找解决一般问题的其他解决方案。

      谢谢。

1 个答案:

答案 0 :(得分:1)

这里的一些自定义代码将按顺序排列,或者通过专用于该概念的协议进行隧道会话。 IPSEC over UDP可能是一个很好的提名。如果可能的话,让移动设备像普通服务器一样监听并在发生地址时发送ping可以免除你的大部分挑战。这取决于手机的行为以及运营商是否会像过滤传入的TCP连接那样令人讨厌。无论如何,要解决具体问题:

1)不,每个连接都需要一个唯一的套接字。这是端口号和IP地址的组合。即使在同一NAT后面有两部手机,NAT设备也会为连接分配不同的端口。您可以在服务器计算机的一个端口上运行一个服务。

2)见上文

3)这将作为规则发生而不是例外。他们超时并关闭。实际上这可能不是你期望的挑战。

4)您如何解决这个问题将取决于您的安全需求。您可以尝试识别手机上的底层ID以使事情更具挑战性,需要用户密码输入才能使其成为两个因素,等等。当然,这与易用性竞争,因此需要权衡考虑因素。


1a)毫无头绪......但这不应该是不可能的。

2a)你会在某些地方遇到这种情况,而且很难预测。也就是说,您也可以通过HTTPS执行这些功能。