我正在读《数字海洋》在 Ubuntu 上设置 OpenVPN 服务器的指南正准备这么做,然后看到了这个小道消息:
此外,您还需要一台单独的机器作为证书颁发机构 (CA)。虽然从技术上讲可以使用您的 OpenVPN 服务器或本地机器作为 CA,但不建议这样做,因为这会使您的 VPN 面临一些安全漏洞。根据官方 OpenVPN 文档,您应该将 CA 放在专门用于导入和签署证书请求的独立机器上。
我以前从未见过这种警告,并且见过许多其他(例如 StrongSwan IKEv2)VPN 解决方案在单个服务器上设置,在 SMB 环境中它既是 VPN 侦听器又是 CA。这些环境没有其他 CA,VPN 服务器 CA 的唯一目的是进行 VPN 身份验证。
除了一般经验法则(您通常不希望 CA 服务器位于网络/互联网可访问的边缘)之外,OpenVPN 盒充当自己的 CA 还存在其他安全问题吗?谢谢!
答案1
我认为你的想法是正确的,它基本上可以归结为一个总体思想,即 CA 应该尽可能地难以访问。
当然,如果 VPN 服务器被攻破,这本身可能就很糟糕。
但将 CA 放在其他地方至少会为入侵者消除一些选择(例如,如果他们偷偷摸摸地复制 CA,然后有能力随时离线创建自己的证书以获取访问权限),并且恢复不需要从头开始整个 CA 设置,只需设置一个干净的 VPN 服务器即可。
另外,当然如果您将同一个 CA 用于其他目的(包括其他 VPN 服务器),影响显然更直接,因为其他一切都不会因为该 VPN 服务器而受到损害。
您引用的文本中的“根据官方 OpenVPN 文档”引用可能指的是OpenVPN 操作指南的安全部分:
将根密钥(ca.key)保存在没有网络连接的独立机器上
使用 X509 PKI(如 OpenVPN 所用)的安全优势之一是根 CA 密钥 (ca.key) 不需要存在于 OpenVPN 服务器计算机上。在高度安全的环境中,您可能希望专门指定一台机器用于密钥签名,在物理上保护好这台机器,并将其与所有网络断开连接。软盘可用于根据需要来回移动密钥文件。这些措施使得攻击者很难窃取根密钥,除非物理窃取密钥签名机器。