管理防火墙后面的Linux计算机集群
我公司的产品本质上是一个
Linux机箱(Ubuntu),位于运行我们软件的其他人的网络中.到目前为止,我们只有不到25个盒子,并使用TeamViewer来管理它们.
我们现在要运送1000个这样的盒子,TeamViewer不再是一个选项.我的工作是找出一种方法来访问这些盒子并更新它们的软件.这个解决方案应该能够穿透防火墙以及你拥有什么. 我考虑过: 1.本地解决方案(例如Linux服务),其建立到云中的服务器的SSH反向隧道,以及云中的另一服务,其跟踪那些&让你连接到它们. 这显然是劳动密集型的,坦率地讲,就像重新发明轮子一样,因为许多其他公司必须已经遇到过这个问题.即便如此,我也不确定我们会做得很好. 2.木偶,厨师或OpenVPN等工具 我试图尽可能多地阅读,但我似乎无法透过营销说话,以了解明显的选择. 除了我们以外没有其他人需要连接到这些盒子.有没有相关经验的人可以给我一些指示? 解决方法
拉更新,不要推
随着您的扩展,对所有产品进行推送更新将变得不可行. >您必须跟踪每个客户,每个客户可能都有不同的防火墙配置. 相反,让您的产品定期“拉”他们的更新,然后随着您的成长,您可以在服务器端添加额外的容量. 怎么样? 正如您所建议的那样,此问题已得到解决.这是我能想到的几种方法. > using apt:使用带有自定义PPA和源列表的内置apt系统. How do I setup a PPA? > Con:除非您使用像启动板这样的公共托管服务,否则设置自己的apt PPA打包系统并不适合胆小者. >使用ssh:为每个产品生成SSH公钥,然后将该设备的密钥添加到更新服务器.然后,只需让您的软件rsync / scp所需的文件. > Con:必须跟踪(并备份!)您发送的每个产品的所有公钥. >原始下载签名检查: >在某处发布已签名的更新文件(Amazon S3,FTP服务器等) > ansible:Ansible是管理系统配置的绝佳工具.它在木偶/厨师的领域,但是无代理(使用python)并且被设计为幂等的.如果部署您的软件需要复杂的bash脚本,我会使用这样的工具来降低执行更新的难度. 当然,还有其他方法可以做到这一点..但它带给我一个重要的观点. 签名/验证您的更新! 无论您做什么,都必须有一个机制来确保您的更新没有被篡改.恶意用户可以在上述任何配置中模拟您的更新服务器.如果您没有验证更新,那么您的框更容易入侵并进入. 执行此操作的一种好方法是签署更新文件.您必须维护证书(或向某人付费),但您可以在发送之前在每台设备上安装指纹,以便他们可以拒绝已经被篡改的更新. 物理安全 当然,如果有人可以物理访问客户的部署,他们可以轻松接管服务器.但至少他们无法攻击其他部署!物理安全可能是您客户的责任.
安全 无论你做什么,安全性都需要从一开始就建立起来.不要在这里偷工减料 – 如果你这样做,你最后会后悔的. 完全保护此更新系统超出了本文的范围,如果您或您团队中的某个人不熟悉该领域,我强烈建议您聘请顾问.值得每一分钱. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |