MENU
「安心のセキュリティをお得な価格」でご提供!
Fortinet商品など
ENGAGE fotinet

VPNの自作の方法について

本記事では、VPN(Virtual Private Network)を自分で構築する方法について、技術的な誤りがないかを精査したうえで、実際に動作する構成・設定手順・注意点まで含めて詳しく解説します。

単なるコマンド手順の紹介ではなく、

  • VPNの仕組み
  • なぜその設定が必要なのか
  • 初心者がつまずきやすいポイント

を理解できるよう構成していますので、初めてVPNを自作する方でも失敗しにくい内容になっています。

VPNを自作するとはどういうことか

VPNを自作するとは、自分で用意したサーバー(VPSなど)上にVPNサーバーを構築し、そこへ安全に接続する仕組みを作ることを指します。

市販のVPNサービスと比較すると、以下のような特徴があります。

  • IPアドレスは自分専用になります
  • 通信ログの管理を自分で完全にコントロールできます
  • 月額コストを低く抑えられます
  • その代わり、サーバー管理の責任が発生します

匿名性を最大限に高める用途には向きませんが、セキュリティ・安定性・通信速度を重視する用途では非常に有効です。

VPNの基本的な仕組み

VPNは次のような流れで動作します。

  1. クライアント(PCやスマートフォン)
  2. 暗号化された通信トンネル
  3. VPNサーバー
  4. インターネット

この「暗号化されたトンネル」を通じて通信することで、

  • 公衆Wi-Fi利用時の盗聴防止
  • 接続元IPアドレスの切り替え
  • 外部からの不正な通信の遮断

といった効果が得られます。

自作VPNに必要なもの

サーバー(VPS)

最低限、以下の条件を満たすサーバーが必要です。

  • OS:Ubuntu 20.04 または 22.04
  • CPU:1コア以上
  • メモリ:1GB以上(WireGuardであれば512MBでも可)
  • グローバルIPアドレス

国内・海外いずれのVPSでも、構築方法は基本的に同じです。

VPNプロトコルの選択

現在、自作VPNで最も推奨されるプロトコルは WireGuard です。

理由は以下の通りです。

  • 設定がシンプルで分かりやすい
  • 通信速度が非常に高速
  • 実装コードが少なく、安全性が高い
  • モダンな暗号設計が採用されている

OpenVPNやL2TP/IPsecも利用可能ですが、新規に構築する場合はWireGuardを選ぶのが最も合理的です。

WireGuardでVPNを自作する手順

以下は、実際に通信が成立することを前提とした手順です。

WireGuardをインストールします

apt update
apt install wireguard -y

サーバー用の鍵ペアを作成します

wg genkey | tee server_private.key | wg pubkey > server_public.key

  • 秘密鍵は絶対に外部へ漏らさないでください
  • 公開鍵はクライアント設定で使用します

IPフォワーディングを有効化します

nano /etc/sysctl.conf

以下の設定を追記、またはコメントアウトを解除します。

net.ipv4.ip_forward=1

設定を反映します。

sysctl -p

WireGuardの設定ファイルを作成します

nano /etc/wireguard/wg0.conf

サーバー設定例

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = サーバーの秘密鍵

PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <WAN_IF> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <WAN_IF> -j MASQUERADE

[Peer]
PublicKey = クライアントの公開鍵
AllowedIPs = 10.0.0.2/32

注意点

  • <WAN_IF>ip route コマンドで確認した 実際の外向きインターフェイス名に置き換えてください
    (eth0とは限りません)
  • [Peer] セクションは必須です
    これがない場合、クライアントとの通信は成立しません

クライアント用の鍵ペアを作成します

wg genkey | tee client_private.key | wg pubkey > client_public.key

クライアント側の設定例

[Interface]
PrivateKey = クライアントの秘密鍵
Address = 10.0.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = サーバーの公開鍵
Endpoint = サーバーIP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

各設定の意味

  • AllowedIPs = 0.0.0.0/0
    すべての通信をVPN経由にします
  • PersistentKeepalive = 25
    NAT環境下でも接続が維持されやすくなります

WireGuardを起動します

wg-quick up wg0
systemctl enable wg-quick@wg0

ファイアウォール設定時の注意点

UFWを使用する場合は、必ずSSHを許可してから有効化してください。

ufw allow OpenSSH
ufw allow 51820/udp
ufw enable

この手順を守らないと、サーバーに再接続できなくなる恐れがあります。

よくあるトラブルと原因

VPNには接続できるが通信できない場合

  • NAT設定のインターフェイス名が誤っている
  • IPフォワーディングが有効になっていない
  • サーバー側に [Peer] 設定がない

Webサイトの名前解決ができない場合

  • DNS設定がOSの仕様に合っていない
  • systemd-resolved 環境でDNSが正しく反映されていない

接続がすぐ切れてしまう場合

  • PersistentKeepaliveが未設定
  • VPS側のファイアウォールでUDP通信が遮断されている

自作VPNのメリットとデメリット

メリット

  • 月数百円程度で運用可能です
  • 自分専用のIPアドレスを利用できます
  • 通信速度が速く安定しています
  • 通信ログを自分で管理できます

デメリット

  • 完全な匿名性は確保できません
  • サーバーのセキュリティ管理責任が発生します
  • 初期設定には一定の知識が必要です

まとめ

WireGuardを利用した自作VPNは、

  • 構成がシンプル
  • 高速かつ安全
  • 実用性が非常に高い

という特徴があります。

一方で、

  • サーバー側のPeer定義
  • NATおよびIPフォワーディング設定
  • ファイアウォールの手順

といった 細かいが致命的になりやすいポイントを誤ると、簡単につまずいてしまいます。

本記事の手順に沿って構築すれば、「接続できない」「通信が流れない」といった初歩的なトラブルは回避できる構成になります。

以上、VPNの自作の方法についてでした。

最後までお読みいただき、ありがとうございました。

カテゴリ一覧

ページトップへ