从客户端计算机访问 OpenVPN

在 Linux 上构建了自己的 VPN 之后,现在终于可以使用它了。
42 位读者喜欢这篇文章。
Woman programming

WOCinTech Chat。由 Opensource.com 修改。CC BY-SA 4.0

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 指向您从服务器复制的证书和密钥。

在 Windows 上,以管理员身份运行 WinSCP,将服务器上的客户端配置模板 /etc/openvpn/client/OVPNclient2020.ovpn 复制到客户端上的 C:\Program Files\OpenVPN\config。 然后

  • 重命名它以匹配上面的证书。
  • 更改 CA 证书、客户端证书和密钥的名称,以匹配上面从服务器复制的名称。
  • 编辑 IP 信息以匹配您的网络。

您需要超级管理员权限才能编辑客户端配置文件。 获得此权限的最简单方法可能是以管理员身份启动 CMD 窗口,然后从管理员 CMD 窗口启动记事本以编辑文件。

将您的客户端连接到服务器

在 Linux 上,Network Manager 显示您的 VPN。 选择它进行连接。

 

在 Windows 上,启动 OpenVPN 图形用户界面 (GUI)。 它会在任务栏右侧的 Windows 系统托盘中生成一个图形,通常位于 Windows 桌面的右下角。 右键单击该图形以连接、断开连接或查看状态。

对于第一次连接,编辑客户端配置文件的“remote”行,以使用 OpenVPN 服务器的内部 IP 地址。 通过在 Windows 系统托盘中右键单击 OpenVPN GUI 并单击连接,从您的办公室网络内部连接到服务器。 调试此连接。 这应该可以找到并修复问题,而不会出现任何防火墙问题,因为客户端和服务器都位于防火墙的同一侧。

接下来,编辑客户端配置文件的“remote”行,以使用 OpenVPN 服务器的公共 IP 地址。 将 Windows 客户端带到外部网络并连接。 调试任何问题。

安全连接

恭喜! 您拥有一个已准备好用于其他客户端系统的 OpenVPN 网络。 为其余客户端重复设置步骤。 您甚至可以使用 Ansible 来分发证书和密钥并使其保持最新。


本文基于 D. Greg Scott 的 博客,并经许可重复使用。

接下来阅读什么
Greg Scott head shot
在 Digital Equipment Corporation (当时一家大型计算机公司) 经历了多轮裁员之后,我于 1994 年开始了 Scott Consulting。一家更大的公司于 1999 年收购了 Scott Consulting,当时正值互联网泡沫摧毁了 IT 服务行业。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.