如何在Windows Server上使用OpenVPN創建VPN

需要一種安全、加密的方式來訪問互聯網嗎?為什麼不在Windows Server上使用OpenVPN呢?設置您的第一個VPN可能會很困難,但您來對地方了!

在本教程中,您將學習如何設置免費VPN,並阻止惡意實體進入您的Windows Server。

準備好保護您的網絡了嗎?那就馬上開始吧!

先決條件

本教程將進行實際演示。如果您想跟著操作,請確保您擁有以下內容:

  • 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 Server的桌面 – 本演示使用默認的RDP窗口客戶端。

在Windows Server上安裝OpenVPN

OpenVPN可以在不同的操作系統上運行,但它並不隨著您的操作系統安裝而附帶。通過在您的服務器上安裝OpenVPN來開始這個教程。

1. 打開您喜歡的瀏覽器,並導航至 OpenVPN 下載 頁面。將 Windows 64位元MSI安裝程式 套件下載到您的伺服器並執行安裝程式。

Downloading the Windows 64-bit MSI installer package

2. 接著,在安裝精靈的初始頁面上點擊 自定義,如下所示。 自定義 選項可讓您為您的VPN伺服器安裝額外的項目。

Customizing the OpenVPN installer

3. 在 自定義安裝 頁面上,點擊 OpenVPN服務 下拉選單 —> 將安裝在本地硬碟上,將OpenVPN服務安裝到您的系統上。此選項還會在系統啟動時啟用OpenVPN服務。

Enabling the OpenVPN Service

4. 現在,向下滾動,並點擊 OpenSSL實用工具 下拉選單 —> 選擇 將安裝在本地硬碟上 選項。此選項使OpenSSL庫和開發標頭可供OpenVPN服務使用,並且OpenVPN服務需要這些功能執行某些加密函數。

點擊 立即安裝 以在您的伺服器上安裝OpenVPN。

Enabling the OpenSSL Utilities and installing OpenVPN

5. 最後,當安裝完成時,點擊 關閉

Closing the Customization Installation Wizard

生成伺服器和客戶端的證書和金鑰

現在您的伺服器上已安裝了OpenVPN,但您將如何保護伺服器與客戶端的連線?您將為伺服器和客戶端生成證書和金鑰。

證書和金鑰用於在您的伺服器和客戶端之間提供加密連接。生成證書後,您會獲得一個唯一的公鑰和私鑰。

1. 以系統管理員身份打開命令提示符。某些 OpenVPN 命令需要提升的權限才能運行。

Opening your Command Prompt as an administrator

2. 接下來,運行以下命令以啟動 easy-rsa shell。easy-rsa shell 用於管理證書、金鑰和配置。

easy-rsa 將成為本教程中您的主要命令行界面。

cd C:\Program Files\OpenVPN\easy-rsa
EasyRSA-Start.bat
Accessing the EasyRSA shell

3. 運行下面的命令 ./easyrsa clean-all 以清除任何現有的金鑰和配置。此命令確保您以乾淨的配置開始。

./easyrsa clean-all 
Clearing Existing Keys and Configurations

4. 現在,運行 ./easyrsa init-pki 命令以初始化公鑰基礎設施(PKI)並為您的證書和金鑰創建新的目錄結構。

公鑰基礎設施(PKI)是一個框架,允許您為伺服器和客戶端創建和管理公鑰和私鑰。

./easyrsa init-pki 

Type 並按 Enter 確認您要銷毀任何現有的密鑰並創建新的 PKI,如下所示。

Initializing the Public Key Infrastructure (PKI)

5. 執行以下命令以創建證書機構(CA)(build-ca)。 CA 負責向伺服器和客戶端發放證書,簽署這些證書,撤銷證書等等。

使用nopass選項,這樣每次將證書和密鑰複製到客戶端時就無需輸入密碼。./easyrsa build-ca nopass

./easyrsa build-ca nopass

在配置 VPN 時,您需要為您的伺服器和客戶端生成一個由證書機構(CA)簽署的證書。

Creating the Certificate Authority (CA)

6. 執行以下命令以構建伺服器證書和密鑰(build-server-full)。此命令創建 OpenVPN 伺服器證書和密鑰,用您的 CA 簽署,並將文件放在 keys 子目錄中。

./easyrsa build-server-full server nopass
Building the Server Certificate and Key

7. 接下來,執行以下命令以生成Diffie-Hellman 參數gen-dh),然後關閉您的easyrsa shell。

Diffie-Hellman 是一種允許兩個用戶在不安全的連接上交換加密金鑰的協議。即使加密金鑰被盜,Diffie-Hellman 也將需要確保您的 VPN 保持安全。

./easyrsa gen-dh
Generating the Diffie-Hellman Parameters

現在,您已經擁有所需的 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-autoC:\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 防火牆:

  • 通過添加一個名為 OpenVPN 的規則(add rule name="OpenVPN")到 Windows 防火牆,配置(advfirewall)Windows 防火牆(firewall)。
  • 允許所有本地 IP 地址(localip=any)和外部設備(remoteip=any)通過此規則進行通信(action=allow)。
  • 告訴服務器打開哪個端口(localport=1194 remoteport=0-65535)以及使用哪種類型的協議(protocol=UDP)。
netsh advfirewall firewall add rule name="OpenVPN" dir=in localport=1194 remoteport=0-65535 protocol=UDP action=allow remoteip=any localip=any
Configuring your Windows Firewall Rules

2. 在您偏好的文本編輯器中打開您的 C:\Program Files\OpenVPN\config-auto\server.ovpn 文件,預覽其內容,如下所示。

一個 .ovpn 文件是一個OpenVPN配置文件。它包含了OpenVPN連接到VPN所需的所有信息,如加密和驗證密鑰。在本教程中,您需要一個 .ovpn 文件來配置您與VPN服務器的連接。

Edit your C:\Program Files\OpenVPN\config-auto\server.ovpn file.

最後,運行以下命令來重新啟動OpenVPN服務以應用更改。

net stop openvpnservice
net start openvpnservice
Restarting your OpenVPN service

配置客戶端

除了配置服務器以允許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地址。

# 用戶端是您的帳戶名稱,但您可以選擇您偏好的名稱
client
# dev tun 是您需要的 VPN 連接類型,使用以太網連接。
dev tun
# 此 VPN 連接使用的協議(UDP)
proto udp
# 設置您的 OpenVPN 服務器的 IP 地址。
# 1194 是您的 OpenVPN 服務器的端口。
remote YOUR_OPENVPN_IP 1194
# 當您找不到域名時,解析您的域名,
# 這樣您就不會看到“域名未找到”的錯誤。
resolv-retry infinite
# 將值從“nobind”更改為“sea”,以在 VPN ID 斷開時斷開您的互聯網
# 連接時。
nobind
# 您的加密密鑰將保存供下次
# 您連接到 OpenVPN 服務器時使用。
persist-key
# 您的 VPN 連接將保存供下次使用。
persist-tun
# 您的 VPN 服務器用於識別自身的證書(客戶端)。
# 您可以從您的 VPN 服務器下載它。
ca ca.crt
# 您的證書名稱。
cert client01.crt
# 您的加密密鑰的名稱。
key client01.key
# LZO 數據壓縮將壓縮您的數據塊
# 發送之前,使數據變得更小更快。
comp-lzo
# 您的輸出的詳細級別將設置為最大。
# 這樣您將從您的連接中獲得最多的信息。
# 當嘗試調試您的連接時,此功能非常方便。
verb 3

測試您客戶端的VPN連接

現在您已經安裝並配置了伺服器和客戶端,是時候測試它們之間的連接是否正常工作了。

在您的Windows 10客戶端上運行OpenVPN GUI。

Running the OpenVPN GUI

右鍵點擊通知區域中的OpenVPN狀態圖標(帶有一個鎖定圖標),然後選擇連接將客戶端連接到您的VPN。

一旦客戶端連接成功,OpenVPN狀態圖標將變為綠色,並且您將收到一個VPN現在已連接的通知,如下所示。

Connecting to your VPN

為了進行二次檢查,您可以ping您的VPN服務器,使用指定的IP地址(10.8.0.2)。

ping [10.8.0.2](<http://10.8.0.2/>)

下面的輸出確認了您的VPN正如預期地工作。

pinging to your VPN server

結論

在本教程中,您已經學會了在Windows Server上安裝OpenVPN的正確步驟。您還學會了通過一個OpenVPN配置文件(.ovpn)配置OpenVPN服務器和客戶端。此時,您現在擁有一個完全功能的VPN服務,可以用來安全地瀏覽網絡。

現在,為什麼不利用這個新知識將你的VPN連接擴展到Amazon AWS VPC,並使用AWS VPC VPN Gateway服務呢?

Source:
https://adamtheautomator.com/openvpn-on-window/