我们的数据中心有许多 CentOS/RHEL5 服务器,这些服务器都通过边界防火墙进行保护(基本上,只允许 http/https 和 ssh)。有时我(作为系统管理员)和选定的开发人员需要连接到一些本地服务。
目前,我们通过 ssh 代理或将一些外部 ip:port 映射到内部 ip:port(映射到支持加密的协议)来实现此目的。但使用 ssh 并不总是很方便,我想删除所有自定义防火墙规则(出于安全原因)。所以我需要使用一些 vpn 解决方案。OpenVPN 似乎不错,我想我会坚持使用它。但我想知道是否有一些(可能更好?)替代方案。要求是:
- 允许 2-5 个用户的模拟连接。
- 用户应该有单独的帐户(用户名/密码和/或证书)
- 用户总数:我认为不会超过 10
- 它应该在 Windows XP/Vista/7 和任何 Linux 下完美运行
- 服务器应该在我们的一台 CentOS 服务器上完美运行
- 我需要有删除用户帐户/使证书无效的能力
- 它应该是开源的或者至少是免费的
- (可选)用户应该能够在无需我注意的情况下重新颁发证书和/或更改密码。
答案1
最好的解决方案是使用 radius 服务器,该服务器具有一些用于证书生成、密码恢复、密码更改、添加/删除用户的 Web 界面。并且 OvenVPN 服务器可以使用外部 radius 服务器验证。
答案2
OpenVPN 是一种非常灵活的 VPN 解决方案,完全满足了我们的需求。我建议你使用它。
答案3
openvpn 非常适合这种情况。您只需为每个用户生成一个证书(使用提供的 shell 脚本)。您可以执行不需要密码即可连接的 pem 证书,也可以执行需要密码的证书。
如果只有 10 个人,那么 Radius 服务器就太夸张了。
任何现代机器都足够了。
编辑:不 100% 确定他们如何自行更改密码。
答案4
将一些外部 ip:port 映射到内部 ip:port
这不是一个好主意 - 你不应该对你的防火墙进行临时更改 - 这太容易犯错误了。
但使用 ssh 并不总是很方便
为什么不?
当然,基于证书的解决方案(在我看来)比 ssh 更容易实现分布式管理框架(有一个补丁可以将 ssl 证书与 openssh 一起使用)。
它应该在 Windows XP/Vista/7 下完美运行
这使得事情变得更加困难。
我们这里讨论的服务到底有多少?如果是我,我可能会选择对想要使用自己的 CA 和客户端证书验证的服务进行隧道包装。