自社VPNをOpenVPNからWireGuardへ移行しました
2026/11/4
そのほか私たちは、自社で利用するVPNをOpenVPN接続からWireGuardへ移行しました。従来はSoftEther VPN ServerのOpenVPN互換機能を使っていましたが、今回、サーバーとクライアントの接続方式をWireGuardに切り替えています。
法人で使うVPNには、通信の暗号化に加えて、利用端末の管理や障害時の調査も必要です。今回の移行では、VPNの構成と、端末管理やログ収集の運用を合わせて整備しました。
WireGuardのシンプルな構成
WireGuardは、公開鍵と通信を許可するIPアドレスを対応付けて接続相手を設定します。今回の構成では、端末ごとの公開鍵とVPN内のIPアドレスをTerraformで管理しています。Terraformは、インフラの設定をコードとして記述するためのツールです。
従来は、VPNのユーザーとパスワードを登録し、OpenVPNの接続設定を配布していました。移行後は、登録された端末の公開鍵をサーバーへ反映する構成になりました。端末の追加や鍵の変更を、設定の差分として追えるようにしています。

暗号方式の選択肢を絞っていることもWireGuardの特徴です。通信の暗号化にはChaCha20-Poly1305、鍵交換にはCurve25519などを採用しています。方式の組み合わせを管理者が細かく選ぶ必要が少ない点は、設定を簡潔に保つうえで利点になります。
通信処理の効率と移動中の接続
WireGuardのLinux実装は、OSのカーネル内で通信を処理します。コンパクトな実装と合わせて、効率的な通信を目指した設計です。また、認証された通信に応じて接続先のアドレスを更新できるため、端末のネットワークが変わる場面も考慮されています。
ただし、これだけで「OpenVPNより必ず速い」とは言えません。現在のOpenVPNにも、データの処理をカーネルへ移すDCOという仕組みがあります。DCOはOpenVPN本体の機能で、旧環境で利用していたSoftEtherのOpenVPN互換機能とは別のものです。比較する実装や設定、端末、回線によって結果は変わります。
今回、移行前後で同じ条件の速度測定は行っていないため、速度やCPU使用率の改善値は掲載していません。
法人利用では鍵管理とログを補う
WireGuardの公開鍵は、接続する端末を識別するためのものです。それだけで社員の在籍状況や利用権限まで管理できるわけではありません。端末と利用者の対応を管理し、端末の交換や利用終了に合わせて登録を更新する運用が必要です。
今回の構成では、サーバーの秘密鍵をサーバー内で生成し、Terraformの設定や状態ファイルに渡さないようにしています。
ログについても、VPNを導入するだけで必要な記録がそろうとは考えていません。接続相手との最後のハンドシェイク時刻や転送量を定期的に収集し、OSの認証ログなどと合わせてクラウド側へ送る仕組みを追加しました。ハンドシェイクは暗号通信を成立させるためのやり取りであり、社員のログイン・ログアウト時刻と同じ意味ではありません。
収集したログはCloud Loggingを経由して、サーバー外の保存先へ転送します。保存先への書き込みはログ転送用の権限で行い、VPNサーバー自身にはその保存先への直接の書き込み権限を与えない構成にしています。
既存の接続先を引き継いで切り替える
移行では、新しいWireGuardサーバーに既存の固定IPアドレスを付け替え、旧サーバーを撤去しました。固定IPアドレスは引き継いでいますが、接続方式が変わるため、端末側のアプリと接続設定は切り替えが必要です。旧VPNのログは、サーバーの撤去後も残しました。
WireGuardは、暗号化された通信路を簡潔に構成できる点に強みがあります。一方で、UDPを利用するため、利用するネットワークでUDP通信が許可されているかを確認する必要があります。
自社VPNの見直しでは、通信性能だけでなく、端末をどう登録し、利用終了時にどう接続を止め、問題が起きたときに何を調べられるかまで含めて設計することが大切です。
