需要一种安全、加密的方式访问互联网吗?为什么不尝试在Windows服务器上使用OpenVPN呢?搭建第一个VPN可能会有点麻烦,但你来对地方了!
在这个教程中,你将学到如何设置一个免费的VPN,并将恶意实体拒之Windows服务器之外。
准备好保护你的网络了吗?那就开始吧!
先决条件
本教程将进行实际演示。如果你想跟着操作,请确保你具备以下条件:
- A Windows Server – This tutorial uses Window Server 2019 R2.
- A client machine to test the VPN server – This demo uses Windows 10 64 bit.
- 使用远程桌面(RDP)或你喜欢的桌面管理客户端连接到Windows服务器的桌面 – 本演示使用默认的RDP窗口客户端。
在Windows服务器上安装OpenVPN
OpenVPN适用于不同的操作系统,但它不随操作系统安装而附带。通过在服务器上安装OpenVPN开始本教程。
1. 打开您喜欢的浏览器,导航到OpenVPN 下载页面。下载Windows 64位MSI安装程序包到您的服务器并运行安装程序。

2. 接下来,在安装向导的初始页面上点击自定义,如下所示。 自定义选项允许您为VPN服务器安装额外的项目。

3. 在自定义安装页面上,点击OpenVPN服务下拉菜单 —> 将安装在本地硬盘上以将OpenVPN服务安装到您的系统。此选项还会在系统启动时启用OpenVPN服务。

4. 现在,向下滚动,并点击OpenSSL实用程序下拉菜单 —> 将安装在本地硬盘上选项。此选项使OpenSSL库和开发标头可用于OpenVPN服务,并为OpenVPN服务的某些加密功能所需。
点击立即安装以在您的服务器上安装OpenVPN。

5. 最后,在安装完成时点击关闭。

为服务器和客户端生成证书和密钥
您现在已经在服务器上安装了OpenVPN,但是您将如何保护服务器与客户端之间的连接呢?您将为服务器和客户端生成证书和密钥。
证书和密钥用于在您的服务器和客户端之间提供加密连接。生成证书时,您会获得一个独特的公钥和私钥。
1. 以管理员身份打开您的命令提示符。某些 OpenVPN 命令需要提升的特权才能运行。

2. 接下来,运行以下命令启动easy-rsa
shell。easy-rsa
shell 用于管理证书、密钥和配置。
EasyRSA 将是您在本教程中的主要命令行界面。

3. 运行下面的./easyrsa clean-all
命令以清除任何现有的密钥和配置。此命令确保您从干净的配置开始。

4. 现在,运行./easyrsa init-pki
命令来初始化公钥基础设施(PKI)并为您的证书和密钥创建一个新的目录结构。
公钥基础设施(PKI)是一个框架,允许您为服务器和客户端创建和管理公钥和私钥。
键入是的并按Enter确认您想销毁任何现有密钥并创建新的PKI,如下所示。

5. 运行以下命令以创建证书颁发机构(CA)(build-ca
)。 CA负责向服务器和客户端颁发证书,签署这些证书,撤销证书等。
使用nopass
选项,这样您就不必每次将证书和密钥复制到客户端时都输入密码。./easyrsa build-ca nopass
在配置VPN时,您需要为服务器和客户端生成由证书颁发机构(CA)签名的证书。

6. 运行以下命令以构建服务器证书和密钥(build-server-full
)。 此命令创建OpenVPN服务器证书和密钥,并使用您的CA进行签名,并将文件放置在keys子目录中。

7. 接下来,运行以下命令生成Diffie-Hellman参数(gen-dh
),然后关闭您的easyrsa
shell。
Diffie-Hellman是一种允许两个用户在不安全连接上交换加密密钥的协议。 即使您的加密密钥被窃取,Diffie-Hellman也将需要确保您的VPN保持安全。

到目前为止,您在下表中列出的所有必需的SSL/TLS密钥文件都已准备就绪,可用于您的OpenVPN服务。
Folder Path | Content |
C:\Program Files\OpenVPN\easy-rsa\pki | CA file, DH file, and other OpenSSL-related files like a config file. |
C:\Program Files\OpenVPN\easy-rsa\pki\private | Include the private key files of CA, Server, and Client certificates. |
C:\Program Files\OpenVPN\easy-rsa\pki\issued | Contains issued server and client certificates. |
最后,打开您的文件浏览器,并将以下列出的文件复制到C:\Program Files\OpenVPN\config-auto和C:\Program Files\OpenVPN\easy-rsa\pki\private文件夹中。
C:\Program Files\OpenVPN\easy-rsa\pki\ca.cert |
C:\Program Files\OpenVPN\easy-rsa\pki\dh.pem |
C:\Program Files\OpenVPN\easy-rsa\pki\issued\server.cert |
C:\Program Files\OpenVPN\easy-rsa\pki\private\server.key |
配置您的Windows防火墙规则
现在您已经配置了OpenVPN服务器,下一步是确保您可以访问该服务。您需要配置Windows防火墙以允许OpenVPN流量。
1. 运行下面的netsh
命令来允许流量通过您的Windows防火墙,如下所示:
- 通过在Windows防火墙中添加一个名为
OpenVPN
的规则(add rule name="OpenVPN"
)来配置(advfirewall
)Windows防火墙(firewall
)。 - 允许(
action=allow
)所有本地IP地址(localip=any
)和外部设备(remoteip=any
)通过此规则进行通信。 - 告诉服务器要打开哪个端口(
localport=1194 remoteport=0-65535
)以及要使用什么类型的协议(protocol=UDP
)。

2. 使用您喜欢的文本编辑器打开您的C:\Program Files\OpenVPN\config-auto\server.ovpn文件以预览其内容,如下所示。
一个.ovpn文件是一个OpenVPN配置文件。它包含了OpenVPN连接到VPN所需的所有信息,如加密和身份验证密钥。在本教程中,您将需要一个.ovpn文件来配置与您的VPN服务器的连接。

最后,请运行以下命令以重新启动您的OpenVPN服务以应用更改。

配置您的客户端
除了配置服务器以允许OpenVPN流量之外,您还需要配置客户端。在OpenVPN中,客户端是连接到VPN的任何计算机。此演示使用Windows 10连接到服务器。
1. 在您的客户端上安装OpenVPN,就像在“在服务器上安装OpenVPN”****部分中所做的那样。
2. 从服务器复制以下列出的文件到客户端的C:\Program Files\OpenVPN\config文件夹。
C:\Program Files\OpenVPN\easy-rsa\pki\ca.cert |
C:\Program Files\OpenVPN\easy-rsa\pki\issued\client.crt |
C:\Program Files\OpenVPN\easy-rsa\pki\issued\client.key |
3. 最后,打开C:\Program Files\OpenVPN\config\client.ovpn文件并使用下面的内容填充文件。将YOUR_OPENVPN_IP
替换为您的实际Windows Server IP地址。
测试客户端VPN连接
现在,您已经安装并配置了服务器和客户端,是时候测试它们之间的连接是否正常工作了。
在您的Windows 10客户端上,运行OpenVPN GUI。

右键单击通知区域中的OpenVPN状态图标(带有挂锁图标的监视器),然后选择Connect以连接客户端到您的VPN。
一旦客户端连接成功,OpenVPN状态图标变为绿色,您将收到vpn is now connected通知,如下所示。

为了双重检查,您可以使用分配的IP地址(10.8.0.2
)ping
您的VPN服务器。
下面的输出确认了您的VPN按预期工作。

结论
在本教程中,您已经学会了在Windows服务器上安装OpenVPN的正确步骤。您还学会了通过OpenVPN配置文件(.ovpn)配置OpenVPN服务器和客户端。此时,您现在拥有一个可以用于安全浏览网页的功能齐全的VPN服务。
现在,为什么不利用这些新发现的知识将您的 VPN连接扩展到Amazon AWS VPC,使用AWS VPC VPN网关服务呢?