OpenVPN 在两点之间创建加密隧道,防止第三方访问您的网络流量。 通过设置您的虚拟专用网络 (VPN) 服务器,您可以成为自己的 VPN 提供商。 许多流行的 VPN 服务已经使用 OpenVPN,所以当您可以完全控制时,为什么要将您的连接绑定到特定的提供商呢?
本系列的第一篇文章设置了 VPN 服务器,第二篇文章演示了如何安装和配置 OpenVPN 服务器软件,而第三篇文章解释了如何配置防火墙并启动 OpenVPN 服务器软件。 第四篇也是最后一篇文章演示了如何从客户端计算机使用 OpenVPN 服务器。 这就是您完成前三篇文章中所有工作的原因!
创建客户端证书
请记住,OpenVPN 的身份验证方法要求服务器和客户端都拥有某些东西(证书)并且知道某些东西(密码)。 现在是进行设置的时候了。
首先,为您的客户端计算机创建一个客户端证书和一个私钥。 在 OpenVPN 服务器上,生成一个证书请求。 它会要求输入密码; 确保你记住它
$ cd /etc/openvpn/ca
$ sudo /etc/openvpn/easy-rsa/easyrsa \
gen-req greglaptop
在本例中,greglaptop
是要为其创建此证书的客户端计算机。
无需将请求导入到证书颁发机构 (CA),因为它已经在那里了。 检查它以确保
$ cd /etc/openvpn/ca
$ /etc/openvpn/easy-rsa/easyrsa \
show-req greglaptop
您也可以作为客户端签名
$ /etc/openvpn/easy-rsa/easyrsa \
sign-req client greglaptop
安装 OpenVPN 客户端软件
在 Linux 上,Network Manager 可能已经包含 OpenVPN 客户端。 如果没有,您可以安装插件
$ sudo dnf install NetworkManager-openvpn
在 Windows 上,您必须从 OpenVPN 下载站点下载并安装 OpenVPN 客户端。 启动安装程序并按照提示操作。
将证书和私钥复制到客户端
现在,您的客户端需要您为其生成的身份验证凭据。 您在服务器上生成了这些凭据,因此您必须将它们传输到您的客户端。 我倾向于使用 SSH 来做到这一点。 在 Linux 上,这是 scp
命令。 在 Windows 上,您可以使用 WinSCP 作为管理员来提取证书和密钥。
假设客户端名为 greglaptop
,以下是文件名和服务器位置
/etc/openvpn/ca/pki/issued/greglaptop.crt
/etc/openvpn/ca/pki/private/greglaptop.key
/etc/openvpn/ca/pki/issued/ca.crt
在 Linux 上,将它们复制到 /etc/pki/tls/certs/
目录。 在 Windows 上,将它们复制到 C:\Program Files\OpenVPN\config
目录。
复制并自定义客户端配置文件
在 Linux 上,您可以将服务器上的 /etc/openvpn/client/OVPNclient2020.ovpn
文件复制到 /etc/NetworkManager/system-connections/
,或者您可以导航到系统设置中的 Network Manager 并添加 VPN 连接。
对于连接类型,选择 证书。 将 Network Manager 指向您从服务器复制的证书和密钥。

(Seth Kenlon, CC BY-SA 4.0)
在 Windows 上,以管理员身份运行 WinSCP,将服务器上的客户端配置模板 /etc/openvpn/client/OVPNclient2020.ovpn
复制到客户端上的 C:\Program Files\OpenVPN\config
。 然后
- 重命名它以匹配上面的证书。
- 更改 CA 证书、客户端证书和密钥的名称,以匹配上面从服务器复制的名称。
- 编辑 IP 信息以匹配您的网络。
您需要超级管理员权限才能编辑客户端配置文件。 获得此权限的最简单方法可能是以管理员身份启动 CMD 窗口,然后从管理员 CMD 窗口启动记事本以编辑文件。
将您的客户端连接到服务器
在 Linux 上,Network Manager 显示您的 VPN。 选择它进行连接。

(Seth Kenlon, CC BY-SA 4.0)
在 Windows 上,启动 OpenVPN 图形用户界面 (GUI)。 它会在任务栏右侧的 Windows 系统托盘中生成一个图形,通常位于 Windows 桌面的右下角。 右键单击该图形以连接、断开连接或查看状态。
对于第一次连接,编辑客户端配置文件的“remote”行,以使用 OpenVPN 服务器的内部 IP 地址。 通过在 Windows 系统托盘中右键单击 OpenVPN GUI 并单击连接,从您的办公室网络内部连接到服务器。 调试此连接。 这应该可以找到并修复问题,而不会出现任何防火墙问题,因为客户端和服务器都位于防火墙的同一侧。
接下来,编辑客户端配置文件的“remote”行,以使用 OpenVPN 服务器的公共 IP 地址。 将 Windows 客户端带到外部网络并连接。 调试任何问题。
安全连接
恭喜! 您拥有一个已准备好用于其他客户端系统的 OpenVPN 网络。 为其余客户端重复设置步骤。 您甚至可以使用 Ansible 来分发证书和密钥并使其保持最新。
本文基于 D. Greg Scott 的 博客,并经许可重复使用。
评论已关闭。