我开发了一个JavaFx 桌面为公司的员工制定计划。现在,他们想使用他们在家里用自己的个人电脑运行该程序.该计划有MySQL 和 FTP 服务。
我需要使用SSH 隧道或者VPN以便程序可以连接外部到远程服务器在办公室(转发端口用于 FTP 和 MySQL)。
如果我想使用 SSH 隧道,我必须安装(或复制/粘贴)证书在自己的员工电脑里,我认为这个选择很危险,因为这些证书可能会被用来对付他们的计算机。
有时候我也会想为每个员工创建一张证书(100 人)以便更好地控制每次连接的人,但维护起来太费力。
我想使用 SSH 隧道,但是我不知道最好的选择在这个情况下。
什么其他选择我可以使用什么来安全地将我的程序连接到远程服务器?
答案1
没有太多的协议选择 - 无论你选择什么都需要:
- 可审计——无需共享凭证
- 安全——限制流量拦截/MitM 的风险
- 易于管理-如果您有100多名员工。
您可以使用 SSH,但设置 VPN 是大多数企业都会做的事情(以我的经验来看)。然后,您可以只允许 VPN 连接通过防火墙,其他任何事情都不需要更改。
最好的办法是研究小型企业 VPN 设备。在这里快速搜索一下,就会出现很多(非主题)寻求建议的帖子。
长话短说,无论你使用什么,你都必须创建并向每位员工颁发证书或密钥。唯一明智的方法是使用脚本或管理工具。
答案2
正如您所提到的,我将使用生成的公钥/私钥 rsa 密钥对中的私钥授权员工,以便通过 ssh 连接到办公室服务器。您可以将公钥存储在 ~/.ssh/authorized_keys 中,并使用密码保护私钥,以便员工可以连接到服务器。但您必须在防火墙中打开 ssh 端口以供外部使用。