WindowsパソコンをWireGuardのクライアントにする
WireGuardのWindows向けクライアントをセットアップしてみました。若干、Linuxとは設定方法が違いましたが、難しくはありませんでした。
やはり、クライアントの選択肢にWindowsがあるというのは安心感、利便性が上がります。
ちなみに、WireGuardサーバをWindowsで実装することもできるようですが、公式にはサポートされていないようです。
それでは、Windows10のクライアント端末で、WireGuadを設定していきます。
WireGuard をインストール
https://www.wireguard.com/install/#windows-7-8-81-10-2012-2016-2019


● WireGuard Windowsクライアントの暗号鍵のキーペアの生成(VPNサーバ側で実施)
ubuntu@ip-10-21-11-79:~$ sudo -s
root@ip-10-21-11-79:/home/ubuntu# cd /etc/wireguard/
root@ip-10-21-11-79:/etc/wireguard# umask 077
root@ip-10-21-11-79:/etc/wireguard# wg genkey > priv_win1
root@ip-10-21-11-79:/etc/wireguard# ls
phone1.conf priv_client1 priv_client2 priv_phone1 priv_win1 privatekey pub_client1 pub_client2 pub_phone1 publickey wg0.conf wg0.conf_backup
root@ip-10-21-11-79:/etc/wireguard# wg pubkey < priv_win1 > pub_win1
root@ip-10-21-11-79:/etc/wireguard# ls
phone1.conf priv_client1 priv_client2 priv_phone1 priv_win1 privatekey pub_client1 pub_client2 pub_phone1 pub_win1 publickey wg0.conf wg0.conf_backup
●VPNサーバのwg0.conf へLinuxクライアント用の設定を追加
root@ip-10-21-11-79:/etc/wireguard# vi /etc/wireguard/wg0.conf
[Peer]
PublicKey = (pub_win1ファイルの内容)
AllowedIPs = 10.0.0.50/32 → /32 でなければエラーになる ( Warning: AllowedIP has nonzero host part: 10.0.0.50/24 )
root@ip-10-21-11-79:/etc/wireguard# wg-quick down wg0 → WireGuardサーバを起動
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 8921 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT;iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
● WireGuard クライアントの設定ファイル生成
[Interface]
Address = 10.0.0.50
PrivateKey = (priv_win1ファイルの内容)
[Peer]
PublicKey = WireGuardサーバの公開鍵の値を記載
AllowedIPs = 0.0.0.0/0
Endpoint = telew.miko.services:51820
PersistentKeepalive = 25
●[トンネルをファイルからインポート] をクリックして、作成した WireGuard 設定ファイルをインポート




ステータスが、「有効」に変わった!!
※ この段階で、操作端末から、WireGuardのサーバに接続していたTeraTermが切断された。
おそらく所属ネットワークセグメントが変わったからでしょう。
WireGuard サーバのVPN上のIPアドレス「10.0.0.1」を指定して、
TeraTermから接続したら入れた。
ubuntu@ip-10-21-11-79:~$ sudo -s
root@ip-10-21-11-79:/home/ubuntu# ip addr show dev wg0 ※ WireGuardサーバが利用するwg0インターフェイスを確認
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 8921 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.0.0.1/24 scope global wg0
valid_lft forever preferred_lft forever
root@ip-10-21-11-79:/home/ubuntu# wg ※ WireGuardの稼働状態
interface: wg0
public key: FHFR3FIpUrh/+0fHNnhfBqiQOouKvmYs8V/MCuHhlHc=
private key: (hidden)
listening port: 51820
peer: ELpO+UulAP4olrosI3fSrffkb+iM5WXK5pdZB9/m6Qw= ※ Win端末だけ接続している
endpoint: 153.156.36.154:54928
allowed ips: 10.0.0.50/32
latest handshake: 1 minute, 17 seconds ago
transfer: 997.99 KiB received, 18.38 KiB sent
peer: eRaxN7qZFEukAnZpU82xdN+vXTlqBo9eRHbm0UcKqAQ=
allowed ips: 10.0.0.10/32
peer: qmcBH0wXxuwBfhRtJb3iXyZmFx2Q2Cwf64lKriq4lDI=
allowed ips: 10.0.0.20/32
peer: IZq00ycLTlRPldWkXDVLHFRPcevQvpUqNH2xtKABL3k=
allowed ips: 10.0.0.100/32

上記イメージのように、Windowsパソコンから、AWS上のWireGuardサーバに接続し、同じくクライアント接続しているラズパイ4のWebカメラ画面を表示できた。
WindowsパソコンをWireGuardクライアントとして設定する手間は、Linux、iPhone、Androidと比較しても特には難しくはありませんでした。
これで、AWS上のUbuntuサーバに対して、Win、Linux、iPhone、Androidをクライアントにして、マルっと通信できることが確認できました。
また、各システムでも設定、操作性ともにわりと簡単に実装することができました。
使用感もスムーズな感じを受けましたし、通信速度もライブ映像の画面表示の感じでは問題ない印象を受けました。
そして、SoftEtherVPNで作ったテレワークシステムをマルっと置き換えられるベースが確認できたので、これがLinuxの標準機能として利用できるのはポイントが高いと思いました。
