我按照此处的说明在 ec2 上设置了一个 openvpn 服务器:http://alestic.com/2009/05/openvpn-ec2
一切都进行得很顺利。
我想将其更改为使用非对称密钥,并允许多个客户端连接,但我发现 openvpn 文档很难理解。有人知道一个好的教程可以帮我弥补这个差距吗?
是否可以设置 openvpn 来使用人们现有的 ssh 密钥?
答案1
我认为您不会找到在 OpenVPN 中使用现有 SSH 密钥的方法。OpenVPN 需要 X.509 证书才能运行,而且我认为 OpenSSH 不会在没有修补的情况下使用 x.509 证书(请参阅http://roumenpetrov.info/openssh/)。
理解 OpenVPN 和非对称加密的关键是理解 PKI 的工作原理。OpenVPN 服务器配置了自己的证书,并且仅当客户端证书由与其自己的证书签名相同的 CA 签名时,才会接受客户端证书。
在官方 HOWTO 中(http://www.openvpn.net/index.php/open-source/documentation/howto.html) 您将创建一个 CA 公钥/私钥对和证书(文档中称为“主 CA”),然后为服务器和 3 个客户端创建证书。您不必在 OpenVPN 服务器计算机上执行此操作(事实上,最好不要这样做)。
HOWTO 要求您使用 OpenVPN 发行版中的一些脚本来操作 OpenSSL 命令行工具(“easy-rsa”脚本)。如果您能花一些时间熟悉 OpenSSL 命令行工具,那么您的运气会更好。对于尝试,easy-rsa 脚本和 HOWTO 都很好。
为了获得最佳安全性,您将在离线计算机(即没有或最小网络连接)上创建 CA,并在 OpenVPN 服务器和每个客户端上创建证书请求(公钥/私钥对)。您将通过某种方式将证书请求发送给 CA,在 CA 处签署请求,然后将生成的证书发送回各个机器。这样可以防止私钥通过网络传输,并确保 CA 安全无虞。
答案2
看一下 ubuntu 上的操作方法:https://help.ubuntu.com/community/OpenVPN 它很容易理解,而且效果很好!对于多个客户端,只需为每个用户创建一个新的客户端配置和密钥,然后用用户名替换配置和密钥名称。
答案3
看一下这个 HOWTO:http://www.openvpn.net/index.php/open-source/documentation/howto.html#pki - 设置自己的证书颁发机构 (CA) 并为 OpenVPN 服务器和多个客户端生成证书和密钥
这可能就是您想要的...当您完成它时,您的服务器配置中必须有类似这样的内容(其中包括):
ca ca.crt cert server.crt 密钥 server.key