我是一名嵌入式工程师(不是网络大师),正在构建一个基于 Linux 的设备(一种便携式测量仪器),通常不连接到互联网,但我们需要让设备能够“打电话回家”以既不损害产品安全、也不损害客户网络安全或我们自己公司网络的方式获得支持,包括更新和故障排除。
在设备连接到客户选择使用的任何网络后,“回拨”功能将完全由用户控制,可能通过按下物理按钮来激活它。对于原型和演示系统,该网络可以在某人的家中或办公室,甚至可以通过电话连接(该设备将仅包含一个有线以太网端口,如果需要 WiFi 访问,客户将需要提供有线 AP)。
建立连接不需要在用户端进行每次呼叫配置,也不需要在我们的盒子内进行,所以我认为我们可以要求客户提供 DHCP,而不是其他。我们还可以要求客户在按下“呼叫主页”按钮之前先与我们联系,这样我们就可以仅在需要时启动我们的支持界面。
当一个单位确实“打电话回家”时,它只是与公司系统建立连接,直到工程师(嗯,我)直接连接到它之前什么都不做。除了存在连接之外,我们应该没有(或很少)关于客户正在使用的网络的信息。所以我正在考虑某种 SSH 连接,但这就是我所得到的。
如果可能的话,它应该“感觉”就像我在本地连接一样,就好像设备在我的桌子上一样(可能有更多的延迟、损失和最小的带宽)。
但我不知道如何将 SSH 连接(如果这是用于此的正确工具)作为两个独立的部分进行:远程单元“呼叫”某处,大概在我们公司的一个系统上,然后该系统通知工程师(我)已经启动了“回拨”,然后等待工程师连接,形成连接的另一半。
连接不需要识别远程系统(品牌、型号、序列号、版本等):我会在安全登录后手动完成。
如果需要,我可以在我们端创建一个新系统(Linux、BSD、Windows,无论是物理的还是虚拟机),它可以专门用于这个功能。如果需要,我可以将至少一个静态端口映射到我们的公司 WAN(但如果可能的话,我希望避免这种情况)。
理想情况下,我还希望设备本身包含最少的信息,以便对手(或竞争对手)拥有设备不会危及客户或公司网络、其他单位或回拨技术本身。据我所知,我猜需要一个主机名或 IP 地址、一个端口号和一个密钥,但越少越好!
我还希望系统在两端都需要手动干预,而自动化程度最低,可能会出现错误或受到损害。一旦我们实施并测试了初始系统,随着我们对它的经验和对它的信心的增长,可以添加自动化。
这就是我的想法。除此之外,我几乎一无所知。我在正确的轨道上吗?我错过了什么?这已经是流行的事情了,我根本不知道它叫什么?对于几个原型系统来说,这种能力有多简单和愚蠢?
编辑:如果还不是很明显,请假设我是一个网络白痴,只能相信遵循明确的食谱,仅此而已。吻适用!