VyOS で WireGuardによるVPN接続

検証環境として構築した仮想ネットワークに対して、自身のローカル端末からアクセスするために、ゲートウェイとなるVyOSのルータとWireGuardによるVPN接続を構築した際のメモとなります。

設定

キーペアの生成

VyOS上でVPNサーバのキーペアを生成。今回はサーバ側、クライアント側双方のキーペアの生成をVyOS側で実施。

サーバ用キーペア

$ generate wireguard named-keypairs <KEY_NAME>

生成されたキーの確認。

$ show wireguard keypairs pubkey <KEY_NAME> 
RvTYdrnV+80IP/8uXDdWD/sXzv+1H+xurzy6ZrNXhAw=

クライアント用キーペア

$ generate wireguard named-keypairs client01

インタフェース設定

VyOS(サーバ)側

set interfaces wireguard wg0 address '172.23.255.1/24'
set interfaces wireguard wg0 peer client01 allowed-ips '172.23.255.0/24'
set interfaces wireguard wg0 peer client01 pubkey <CLIENT_PUBLIC_KEY>
set interfaces wireguard wg0 port 51820
set interfaces wireguard wg0 privatekey <KEY_NAME>
set protocols static interface-route 10.2.0.0/24 next-hop-interface wg0

クライアント側

今回はmacOSにてコマンドラインで設定。
/usr/local/etc/wireguard/wg0.conf

[Interface]
PrivateKey = <CLIENT_PRIVATE_KEY>
Address = 172.23.255.2

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
AllowedIPs = 172.23.0.0/16 #VPN経由とするネットワーク
EndPoint = <SERVER_ADDRESS>:51820

接続・確認

wg-quick でVPNのセッションを開始。

$ wg-quick up wg0

対向にping疎通が取れることを確認。

参考

docs.vyos.io