[WireGuard]オープンソースのVPNをVPSにインストール


公式ドキュメント

Quick Start – WireGuard

Ubuntu公式(おまけ)

WireGuard VPN – Introduction | Ubuntu

知名度は高いようなので、設定例はググればたくさん見つかる。
VPSと記載しているけど、依存しているのはOSくらいなものなので、クラウドでも何でも好きな仮想マシンを使えばいい。
SSHなどで公開鍵・秘密鍵を作る手順と同じなので、目新しいことはない。

設定

VPS側のconfigはこんな感じ。

[Interface]
PrivateKey = <サーバー秘密鍵>
ListenPort = <待ち受けポート>
Address = <仮想サーバーIP>/32
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o <NIC> -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o <NIC> -j MASQUERADE

[Peer]
PublicKey = <クライアント公開鍵>
AllowedIPs = <仮想クライアントIP>/32

※NICはAWSならeth0。

[Interface]
PrivateKey = <クライアント秘密鍵>
Address = <仮想クライアントIP>/32
DNS = <VPS DNSサーバー>

[Peer]
PublicKey = <サーバー公開鍵>
AllowedIPs = <仮想サーバーIP>/32
Endpoint = <公開サーバーIPまたはドメイン名>:<待ち受けポート>

サービス起動

自動起動
systemctl enable wg-quick@wg0
起動
service wg-quick@wg0 start

wg-quickはWireGuardと一緒にインストールされる。
設定ファイルに基づいて、インターフェースのセットアップをしてくれる。

そもそも何のためにインストールしたのか

リモート作業は企業のVPNにクライアント証明書を発行してもらって、セキュアな通信で接続するのがベター。
…とはいえコスト面からそういうケースは割と少ないらしい。
大抵、IPアドレスをホワイトリストに追加して、アクセス許可する運用を採っている。

IPアドレス制限そのものも攻撃者にとってはあまり意味がなかったりする。
ないよりはマシと言ったレベル。

そんな固定IPだけのために、自宅などのLANを弄らないと駄目なのは影響が大きいので、NordVPNなどのサービスを利用したり、VPSを借りてそこを経由する方法が一般的らしい。

理想的なのは利用しているプロバイダが固定IPアドレスをオプションで用意してくれていることだけど、
IPv6以降、次々と受付をしない流れになっているので、このような回避は必要になる。

もちろん、不特定多数が自由に使える環境は論外。
後、VPSを使う場合、サーバー運用とセキュリティ知識はないと駄目。
ここをやられたら、IPアドレス制限の意味すらなくなる。

transix(DS Lite)でも使えたけど遅い。
DS LiteはNATで外に出て行くから、外に出る時点で共有されたIPのどれかのポートを使っている感じなので、VPNサービスでも遅かったり接続できない可能性は高い。