如何在 Windows Server 2019 上设置 OpenVPN

什么是 OpenVPN?

如之前在我们的 OpenVPN 文章中所述,这是一个开源 Windows 软件包,用于创建安全的站点到站点隧道 VPN 连接,提供两个位置之间的远程访问。 在本教程中,我们将在 Windows 服务器上设置 OpenVPN 服务器。

OpenVPN由三部分组成:

  • OpenVPN-AS 服务器
  • 管理 Web 界面/管理 GUI
  • 连接客户端

OpenVPN 服务器

OpenVPN 服务器是 OpenVPN-AS 服务器的主要元素,管理后端的主要功能。 在 admin 接口包括隧道、路由、加密、用户管理、身份验证和许多其他功能。 OpenVPN 服务器还包含一个 WebGUI,它有助于控制软件的几个基本组件。

主 WebGUI 管理界面

主要的基于 Web 的 GUI 允许对 OpenVPN 服务器元素进行简单的处理。 在 WebGUI 中,一个 admin 可以检查路由选项、权限、网络配置、用户验证和其他参数。 默认情况下,管理员可以通过浏览 https://serverip:943/ 连接到 GUIWeb 网关admin

OpenVPN 连接客户端

OpenVPN客户端也是OpenVPN软件的重要组成部分。 此应用程序允许用户以三种方式之一直接链接到 VPN 服务器。 VPN 客户端还提供下载用户配置文件的功能,该文件可以复制到其他 OpenVPN 客户端。 这三个选项是:

  • Browser Connect Client – 这是基于浏览器的 openvpn 连接工具。 用户的网址是 https://serverip:943
  • OpenVPN 连接客户端 (苹果电脑) – 简单的单连接客户端
  • OpenVPN 连接客户端 (Linux/视窗) – 这是 OpenVPN 客户端(与主要的 openvpn-as 程序不同)。 该软件需要配置文件才能正常工作。

部分 1. 安装 OpenVPN

下载并安装 OpenVPN

在 Windows 服务器上,我们首先下载 Windows 安装程序 然后在我们的 Windows 服务器上运行它。 完成后,我们开始设置的配置部分。

配置、证书和密钥

第 1 步:更改目录

  1. 打开开始菜单并转到“Windows系统”>>然后右键单击“命令提示符”然后“更多”并选择“以管理员身份运行”。
  2. 然后,右键单击菜单项“命令提示符”。
  3. 在“用户帐户控制”弹出窗口中,单击“是”接受程序对服务器进行更改。
  4. 使用管理命令提示符中的 cd 命令浏览到以下文件夹位置。
    cd C:Program FilesOpenVPNeasy-rsa

第 2 步:配置 OpenVPN 服务器

注意:在安装过程中只运行一次 init-config。

  1. 现在,我们可以开始配置 OpenVPN。 键入以下命令。
    init-config
  2. 接下来,我们在记事本文本编辑器中打开“vars.bat”文件。
    notepad vars.bat
  3. 然后,我们将编辑后续行,切换与您的业务位置一致的“US”、“CA”设置。
    set KEY_COUNTRY=US
    set KEY_PROVINCE=CA
    set KEY_CITY=SanFrancisco
    set KEY_ORG=OpenVPN
    set [email protected]
  4. 现在,保存文件并退出记事本。
  5. 接下来,我们将运行以下命令。
    vars
    
    clean-all

注意:KEY_CN 和 KEY_NAME 字段对于每个构建请求都是唯一的。 KEY_CN 和 KEY_NAME 设置指的是公用名字段和证书的名称。 KEY_OU 设置是指“组织单位”,如果没有要求,可以设置为任何内容。 PKCS11_ 值是指用于硬件安全模块和智能卡的设置(如果您使用它们)。

步骤 3. 创建证书和密钥

  1. 要创建证书颁发机构 (CA) 证书和密钥,我们需要运行以下命令。
    build-ca
  2. 这将提示您输入您的国家、州和城市。 这些选项也将有默认值,出现在括号内。 对于“Common Name”,最有利的选择是选择一个唯一的名称来区分您的公司。
    Certificate Authority "OpenVPN-CA":
    Country Name (2 letter code) [US]:
    State or Province Name (full name) [CA]:
    Locality Name (eg, city) [SanFrancisco]:
    Organization Name (eg, company) [OpenVPN]:
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
    Email Address [[email protected]]:
  3. 接下来,我们使用以下命令启动服务器的证书和密钥:
    build-key-server server
    

    – 出现提示时,输入“通用名称”作为“服务器”
    – 当提示签署证书时,输入“y”
    – 当提示提交时,输入“y”

步骤 4. 创建客户端/服务器证书和密钥

  1. 首先,我们应该使用以下命令创建我们的密钥。
    C:Program FilesOpenVPNeasy-rsa>build-key-server.bat
  2. 对于将连接到服务器的每个客户端,我们必须选择一个唯一的名称来标识该用户的计算机,例如“david-laptop”在 example 以下。
    build-key david-laptop

  3. 接下来,当出现提示时,我们输入“通用名称”作为您为客户端证书/密钥选择的名称。 我们将为要连接到 VPN 的每台客户端计算机重复此步骤。
    C:Program FilesOpenVPNeasy-rsa>build-key david-laptop
  4. 现在,我们需要使用 build-dh 命令生成“Diffie Hellman”参数。 此步骤是设置加密模型所必需的。
    C:Program FilesOpenVPNeasy-rsa>build-dh.bat

  5. 接下来,我们将生成一个共享密钥(使用 tls-auth 时需要)
    "C:Program FilesOpenVPNbinopenvpn.exe" --genkey --secret "C:Program FilesOpenVPNeasy-rsakeysta.key"

部分 2. 配置 OpenVPN

OpenVPN 提供了可以使用开始菜单轻松找到的示例配置数据: 开始菜单 -> 所有程序 -> OpenVPN -> OpenVPN 示例配置文件

配置服务器

步骤 1. 复制/编辑文件

  1. 让我们首先将示例“服务器配置”文件复制到 easy-rsa 文件夹。 这是命令及其输出:
     copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNeasy-rsakeysserver.ovpn"

    copy "C:Program FilesOpenVPNeasy-rsa" "C:Program filesOpenVPNbinopenvpn.exe" --genkey --secret

    copy "C:Program FilesOpenVPNeasy-rsakeysta.key" "C:Program FilesOpenVPNeasy-rsa"

    copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNeasy-rsakeysserver.ovpn" 1 file(s) copied.
  2. 接下来,我们需要编辑 server.ovpn 文件。
    notepad "C:Program FilesOpenVPNeasy-rsakeysserver.ovpn
  3. 现在,在文件中找到以下行:
    ca - ca.crt
    cert - server.crt
    key - server.key
    dh - dh2048.pem

    并按如下方式编辑它们:

    ca "C:Program FilesOpenVPNconfigca.crt"
    cert "C:Program FilesOpenVPNconfigserver.crt"
    key "C:Program FilesOpenVPNconfigserver.key"
    dh "C:Program FilesOpenVPNconfigdh2048.pem"
  4. 最后,保存并 close 文件。

步骤 2. 客户端配置文件

  1. 让我们首先将示例“服务器配置”文件复制到 easy-rsa 文件夹。 这是命令及其输出:
    copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNeasy-rsakeysserver.ovpn"
    C:Program FilesOpenVPNeasy-rsa "C:Program filesOpenVPNbinopenvpn.exe" --genkey --secret "C:Program FilesOpenVPNeasy-rsakeysta.key"
    C:Program FilesOpenVPNeasy-rsa copy "C:Program FilesOpenVPNsample-configserver.ovpn" "C:Program FilesOpenVPNeasy-rsakeysserver.ovpn"
    1 file(s) copied.
    C:Program FilesOpenVPNeasy-rsa
  2. 接下来,我们需要编辑 server.ovpn 文件。
    notepad "C:Program FilesOpenVPNeasy-rsakeysserver.ovpn" 
  3. 现在,在文件中找到以下行:
    ca ca.crt
    cert server.crt
    key server.key
    dh dh2048.pem

    并按如下方式编辑它们:

    ca "C:Program FilesOpenVPNconfigca.crt"
    cert "C:Program FilesOpenVPNconfigserver.crt"
    key "C:Program FilesOpenVPNconfigserver.key"
    dh "C:Program FilesOpenVPNconfigdh2048.pem"
  4. 最后,保存并 close 文件。

配置客户端

步骤 1. 复制文件

  1. 现在我们可以使用 robocopy 命令从服务器上的 C:Program FilesOpenVPNeasy-rsakeys 到服务器上的 C:Program FilesOpenVPNconfig 复制以下文件:

    -ca.crt
    -ta.key
    -dh2048.pem
    -server.crt
    -server.key
    -server.ovpn

    robocopy "C:Program FilesOpenVPNeasy-rsakeys " "C:Program FilesOpenVPNconfig"
    ca.crt
    ta.key
    dh2048.pem
    server.crt
    server.key
    server.ovpn
    -----------------------------------------------------
    ROBOCOPY     :: Robust File Copy for Windows
    -----------------------------------------------------
    Started : Friday, December 27, 2019 12:16:02 PM
    Source : C:Program FilesOpenVPNeasy-rsakeys
    Dest : C:Program FilesOpenVPNconfig
    Files :
    ca.crt
    dh2048.pem
    server.crt
    server.ovpn
    Options : /DCOPY:DA /COPY:DAT /R:1000000 /W:30
    --------------------------------------------------------------------
    C:Program FilesOpenVPNeasy-rsakeys
    100% New File 2482 ca.crt
    100% 432 dh2048.pem
    100% New File 10901 server.ovpn
    100% New File 657 ta.key
    --------------------------------------------------------------------
    Total Copied Skipped Mismatch FAILED Extras
    Dirs: 1 0 1 0 0 0
    Files : 0 0 0 0
    Bytes : 14.1 k 14.1 k 0 0 0 0
    Times : 0:00:00 0:00:00 0:00:00 0:00:00
    Speed : 452250 Bytes/sec.
    Speed : 25.877 MegaBytes/min.
    Ended : Friday, December 27, 2019 12:16:02 PM
    C:Program FilesOpenVPNeasy-rsa
  2. 现在,我们可以为每个将使用 VPN 的客户端(例如,david -笔记本电脑在这 example)
    -ca.crt
    -ta.key
    -david-laptop.crt
    -david-laptop.key
    -david-laptop.ovpn
    robocopy "C:Program FilesOpenVPNeasy-rsakeys " "C:Program FilesOpenVPNconfig " ca.crt ta.key dh2048.pem server.crt server.key server.ovpn
    -----------------------------------------------------------------------
    ROBOCOPY     :: Robust File Copy for Windows
    -----------------------------------------------------------------------
    Started : Friday, December 27, 2019 12:16:02 PM
    Source : C:Program FilesOpenVPNeasy-rsakeys
    Dest : C:Program FilesOpenVPNconfig
    Files : ca.crt
    ta.key
    dh2048.pem
    server.crt
    server.key
    server.ovpn
    Options : /DCOPY:DA /COPY:DAT /R:1000000 /W:30
    -----------------------------------------------------------------------
    C:Program FilesOpenVPNeasy-rsakeys
    100% New File 2482 ca.crt
    100% New File 432 dh2048.pem
    100% New File 10901 server.ovpn
    100% New File 657 ta.key
    -----------------------------------------------------------------------
    Total Copied Skipped Mismatch FAILED Extras
    Dirs : 1 0 1 0 0 0
    Files : 4 4 0 0 0 0
    Bytes :14.1 k 14.1 k 0 0 0
    Times : 0:00:00 0:00:00 0:00:00 0:00:00
    Speed :452250 Bytes/sec.
    Speed :25.877 MegaBytes/min.
    Ended : Friday, December 27, 2019 12:16:02 PM
    C:Program FilesOpenVPNeasy-rsa

注意:每个字符串中路径末尾的空格很重要。

启动 OpenVPN

接下来,在服务器和客户端上,我们需要从以下位置运行 OpenVPN:
开始菜单 -> 所有程序 -> OpenVPN -> OpenVPN GUI

最后,双击系统托盘中出现的图标开始连接。 随后的对话框将 close 在一个有效的开始。

最后的想法

防火墙设置

如果您有任何连接困难,请确保在服务器的防火墙上设置规则,允许端口 1194 上的传入 UDP 流量。(Win+R “wf.msc”)

将 OpenVPN 作为服务运行

我们还可以将 OpenVPN 作为服务运行,这将允许:

  • 从非管理帐户运行 OpenVPN。
  • OpenVPN 在系统启动时自动启动。 这是在服务器以及将持续连接到服务器的任何客户端上使用的首选方法。
  • 要运行 Windows 服务管理工具:
    (按 Windows 键+R)
    输入“services.msc”并按’Enter’ 启动 services.msc 工具。 接下来,找到 OpenVPN 服务,并将其启动类型重置为“自动”。 如果需要,您可以选择现在启动该服务。

安全提示

我们还可以将 OpenVPN 作为服务运行,这将允许:

  • 从非管理帐户运行 OpenVPN。
  • OpenVPN 在系统启动时自动启动。 这是在服务器以及将持续连接到服务器的任何客户端上使用的首选方法。

我们很想听到您的声音!

我们以成为 Hosting™ 中最乐于助人的人而自豪!

我们的支持团队由经验丰富的 Linux 技术人员和才华横溢的系统管理员组成,他们精通多种网络托管技术,尤其是本文中讨论的技术。

如果您对此信息有任何疑问,我们将随时为您解答任何与本文相关的问题,每天 24 小时、每周 7 天、每年 365 天。

如果您是完全托管的 VPS 服务器, Cloud 专用,VMWare 私有 Cloud私有父服务器, 托管 Cloud 服务器或专用服务器所有者并且您对执行概述的任何步骤感到不舒服,可以通过电话@800.580.4985 联系我们, 聊天 或支持票以帮助您完成此过程。