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
- 在每台 VyOS 產生金鑰對並交換 public key。
- 設定 wg0 介面位址、port 與 private key。
- 加入 peer,指定對端 public key 與 endpoint。
- 將內部網段路由經由 tunnel。
- 以
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、路由與防火牆的實務操作。