Chuyển đến nội dung chính

第11課:VPN - WireGuard 與 OpenVPN

在 VyOS 上以 WireGuard 與 OpenVPN 建置 VPN,包含效能與安全比較、site-to-site 與 remote access 實作,以及 VPN 路由與防火牆設定。

VPN - WireGuard 與 OpenVPN

VyOS VPN 介紹:WireGuard 與 OpenVPN

VPN(Virtual Private Network)可用於站點間安全連線與遠端存取。VyOS 支援多種現代 VPN 類型,如 WireGuard、OpenVPN 與 IPsec。本課重點放在 WireGuard 與 OpenVPN,這兩者在效能、安全與設定彈性上都很常用。

WireGuard:Site-to-Site VPN

WireGuard 是現代化且高效能的 VPN 協定。以下是兩台 VyOS 之間 site-to-site 的設定方式:

# Tạo key pair trên mỗi VyOS
run generate wireguard key
# Lấy public key: run generate wireguard pubkey key <private-key>

Cấu hình WireGuard interface

set interfaces wireguard wg0 address '10.10.10.1/24' set interfaces wireguard wg0 port '51820' set interfaces wireguard wg0 private-key '<private-key>'

Thêm peer

set interfaces wireguard wg0 peer <peer-public-key> allowed-ips '10.10.10.2/32' set interfaces wireguard wg0 peer <peer-public-key> endpoint 'WAN_IP_PEER:51820'

對端站點同樣設定,並替換 IP 與金鑰。

WireGuard:Remote Access VPN

可讓用戶端(筆電、手機)透過 WireGuard 連入內部網路:

set interfaces wireguard wg0 address '10.10.20.1/24'
set interfaces wireguard wg0 port '51820'
set interfaces wireguard wg0 private-key '<server-private-key>'
set interfaces wireguard wg0 peer <client-public-key> allowed-ips '10.10.20.2/32'

用戶端需依伺服器 public key 進行對應設定。

OpenVPN:Pre-Shared Key Site-to-Site

set interfaces openvpn vtun0 mode site-to-site
set interfaces openvpn vtun0 local-address '10.20.20.1'
set interfaces openvpn vtun0 remote-address '10.20.20.2'
set interfaces openvpn vtun0 shared-secret-key-file '/config/auth/ovpn.key'
set interfaces openvpn vtun0 local-port '1194'
set interfaces openvpn vtun0 remote-host '<peer-wan-ip>'

OpenVPN:憑證式 Remote Access

set interfaces openvpn vtun1 mode server
set interfaces openvpn vtun1 server subnet '10.30.30.0/24'
set interfaces openvpn vtun1 tls ca-cert-file '/config/auth/ca.crt'
set interfaces openvpn vtun1 tls cert-file '/config/auth/server.crt'
set interfaces openvpn vtun1 tls key-file '/config/auth/server.key'
set interfaces openvpn vtun1 client-cert-required

WireGuard、OpenVPN 與 IPsec 比較

  • WireGuard:效能高、設定簡潔、程式碼量小,在 VyOS 1.4/1.5 支援良好。
  • OpenVPN:彈性高、模式多、支援憑證,但效能通常低於 WireGuard。
  • IPsec:業界標準、整合度高,但設定相對複雜。

VPN 的路由與防火牆

完成 tunnel 後,需設定路由並開放必要防火牆規則:

set protocols static route 192.168.2.0/24 next-hop 10.10.10.2
set firewall name VPN-IN default-action accept
set interfaces wireguard wg0 firewall in name VPN-IN

實作實驗:2 台 VyOS 的 WireGuard Site-to-Site

  1. 在每台 VyOS 產生金鑰對並交換 public key。
  2. 設定 wg0 介面位址、port 與 private key。
  3. 加入 peer,指定對端 public key 與 endpoint。
  4. 將內部網段路由經由 tunnel。
  5. 以 show interfaces wireguard 與 ping 驗證連線。
# Kiểm tra trạng thái WireGuard
show interfaces wireguard
# Kiểm tra routing
show ip route

總結

本課協助你掌握 VyOS 上 WireGuard 與 OpenVPN 的 VPN 建置、優缺點比較,以及 site-to-site、remote access、路由與防火牆的實務操作。