HOME > 技術ドキュメント > WireGuard VPN サーバー構築(Ubuntu 24.04 LTS)
WireGuard VPN サーバー構築(Ubuntu 24.04 LTS)
WireGuard は現代的な VPN プロトコルで、OpenVPN と比べてシンプルな設定・高速な通信・
少ないコードベース(セキュリティ監査しやすい)が特徴です。
Linux カーネル 5.6 以降(Ubuntu 20.04 以降)では標準搭載されています。
本記事では Ubuntu 24.04 LTS に WireGuard VPN サーバーを構築し、
PC・スマートフォンから接続する手順を解説します。
1. インストール
sudo apt update sudo apt install -y wireguard # バージョン確認 wg --version
2. 鍵ペアの生成
# 作業ディレクトリ(root で実行) sudo -i cd /etc/wireguard # サーバーの鍵ペアを生成 wg genkey | tee server_private.key | wg pubkey > server_public.key # クライアントの鍵ペアを生成 wg genkey | tee client1_private.key | wg pubkey > client1_public.key # 生成された鍵を確認 cat server_public.key cat client1_public.key # ファイルのパーミッションを設定 chmod 600 server_private.key client1_private.key
3. サーバー設定ファイル(wg0.conf)
SERVER_PRIVATE_KEY を cat server_private.key の出力で、
CLIENT1_PUBLIC_KEY を cat client1_public.key の出力で置き換えてください。
eth0 は WAN インターフェース名(ip link show で確認)に合わせます。
# /etc/wireguard/wg0.conf [Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE [Peer] # client1 PublicKey = CLIENT1_PUBLIC_KEY AllowedIPs = 10.0.0.2/32
chmod 600 /etc/wireguard/wg0.conf
4. IP フォワーディングの有効化
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p
5. UFW でポートを開放
sudo ufw allow 51820/udp sudo ufw reload
6. WireGuard の起動と自動起動設定
# WireGuard を起動 sudo wg-quick up wg0 # 状態確認 sudo wg show # OS 起動時に自動起動 sudo systemctl enable wg-quick@wg0 # 停止する場合 sudo wg-quick down wg0
7. クライアント設定ファイル
以下の設定ファイルを作成し、クライアント PC に転送します(安全な方法:SCP や直接入力)。
CLIENT1_PRIVATE_KEY を cat client1_private.key の出力で、
SERVER_PUBLIC_KEY を cat server_public.key の出力で置き換えてください。
# client1.conf(クライアント PC に保存) [Interface] Address = 10.0.0.2/24 PrivateKey = CLIENT1_PRIVATE_KEY DNS = 8.8.8.8 [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = YOUR_SERVER_IP:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25
AllowedIPs = 0.0.0.0/0 はすべての通信を VPN 経由にする設定です。
社内ネットワークのみ VPN 経由にする場合は AllowedIPs = 10.0.0.0/24 のように指定します。
8. クライアント別の接続ピアを追加する
# 稼働中のサーバーにクライアントを追加(wg0.conf を再編集して wg syncconf で反映) sudo wg set wg0 peer CLIENT2_PUBLIC_KEY allowed-ips 10.0.0.3/32 # またはサーバーを再起動せずに設定を反映 sudo wg syncconf wg0 <(wg-quick strip wg0)
9. 接続確認
# サーバー側でピアの接続状態を確認 sudo wg show # interface: wg0 # public key: ... # private key: (hidden) # listening port: 51820 # # peer: CLIENT1_PUBLIC_KEY # allowed ips: 10.0.0.2/32 # latest handshake: 5 seconds ago # transfer: 1.23 MiB received, 456 KiB sent
関連ドキュメント
OpenVPN サーバー構築(Ubuntu 24.04 LTS) — PKI ベースの VPN、TCP 対応
UFW・Fail2ban 設定(Ubuntu 24.04) — ファイアウォール設定
Nginx SSL/TLS 設定(Ubuntu 24.04 LTS) — 公開 Web サーバーの HTTPS 設定
VPN で守るサーバーの HTTPS も忘れずに
WireGuard で管理アクセスやリモートワーク通信を保護しつつ、
公開 Web サーバーには SSL証明書で HTTPS 化することで、
ネットワーク層とアプリ層の両方でセキュリティが確保できます。
エスロジカルではデジサート・サイバートラストの正規取扱代理店として、
2009年から16年以上、RapidSSL 3,960円/1年(税込)〜でSSL証明書を販売しています。審査サポート・インストール代行も対応しています。
SSL証明書の購入はこちら / SSL証明書とは? / インストール代行サービス
