VPN設定 · 2 min read · Sep 09, 2025

Debian 12にWireGuard VPNをインストールする

Wireguardは、IPSec、IKEv2、およびOpenVPNのオープンソースVPNプロトコルの代替です。WireguardはLinuxおよびUnixオペレーティングシステム向けに設計されており、Linuxカーネル空間で動作するため、Wireguardはより高速で信頼性があります。Wireguardは、2台以上のコンピュータ間で安全なトンネル接続を作成するために使用されます。

Wireguardは、IPSec、IKEv2、およびOpenVPNなどのVPNプロトコルを置き換えることを目指しています。Wireguardは軽量で、高速で、設定が簡単で、より効率的です。同時に、WireguardはVPNプロトコルのセキュリティ面を犠牲にしていません。Wireguardは、Noiseプロトコルフレームワーク、Curve25519、ChaCha20、Poly1305、BLAKE2、SipHash24、HKDF、および安全な信頼できる構造などの現代の暗号技術をサポートしています。

このガイドでは、Debian 12サーバーにWireguard VPNをインストールし、LinuxマシンでWireguardクライアントを構成する方法を示します。

前提条件

始める前に、以下の要件を満たしていることを確認してください:

  • Debian 12を実行しているLinuxサーバー。
  • sudo権限を持つ非rootユーザー。
  • クライアントマシン - この場合、Debianベースのディストリビューションを使用します。

システムの準備

Wireguardをインストールする前に、以下の変更を行ってDebianサーバーを準備する必要があります:

  • /etc/sysctl.confを介してポートフォワーディングを有効にする
  • UFWをインストールして構成する

さあ、始めましょう。

ポートフォワーディングを有効にする

ポートフォワーディングを有効にするには、IPv4用のカーネルモジュールnet.ipv4.ip_forwardまたはIPv6用のnet.ipv6.conf.all.forwardingを有効にする必要があります。これらのカーネルモジュールは、/etc/sysctl.confファイルを介して有効にできます。

以下のnanoエディタコマンドを使用して、/etc/sysctl.confファイルを開きます。

sudo nano /etc/sysctl.conf

ポートフォワーディングをIPv4およびIPv6の両方に対して有効にするために、以下の設定を挿入します(必要に応じて)。

# IPv4用ポートフォワーディング  
net.ipv4.ip_forward=1  
  
# IPv6用ポートフォワーディング  
net.ipv6.conf.all.forwarding=1

ファイルを保存し、終了したらエディタを閉じます。

次に、以下のsysctlコマンドを使用して変更を適用します。

sudo sysctl -p

UFWのインストール

Debianのデフォルトファイアウォールはiptablesであり、これからUFWをインストールします。Wireguardサーバーには、UFWとiptablesの両方を使用します。

以下のaptコマンドを実行して、リポジトリを更新し、DebianシステムにUFWをインストールします。

sudo apt update && sudo apt install ufw -y

install ufw

次に、以下のufwコマンドを実行してOpenSSHアプリケーションプロファイルを追加し、UFWを有効にします。yと入力してENTERを押して確認し、メッセージ「ファイアウォールはアクティブで、システム起動時に有効です」が表示されるはずです。

sudo ufw allow OpenSSH  
sudo ufw enable

enable ufw

最後に、以下のコマンドを使用してUFWのステータスを確認します。

sudo ufw status

実行中であれば、「ステータス:アクティブ」という出力が表示されます。また、OpenSSHアプリケーションプロファイルがUFWに追加されていることも確認できます。

verify ufw

Wireguardサーバーのインストール

Debianサーバーの構成が完了したら、DebianマシンにWireguard VPNサーバーを作成する準備が整いました。以下のタスクを完了して実現します:

  • Wireguardのインストール
  • Wireguardサーバーキーの生成
  • Wireguardクライアントキーの生成
  • Wireguardインターフェースの構成
  • WireguardインターフェースのNAT設定

さあ、やりましょう。

Wireguardのインストール

まず、以下のコマンドを実行して、Debianサーバーにwireguardパッケージをインストールします。

sudo apt install wireguard

yと入力してインストールを続行します。

install wireguard

Wireguardサーバーキーの生成

wireguardパッケージがインストールされたら、次のタスクはサーバー証明書を生成することです。これはwgコマンドラインツールを使用して行うことができます。

以下のコマンドを実行して、wireguardサーバーのプライベートキーを/etc/wireguard/server.keyに生成します。次に、サーバープライベートキーの権限を0400に変更します。これは、ファイルへの書き込みアクセスを無効にすることを意味します。

wg genkey | sudo tee /etc/wireguard/server.key  
sudo chmod 0400 /etc/wireguard/server.key

次に、以下のコマンドを実行して、wireguardサーバーのパブリックキーを/etc/wireguard/server.pubに生成します。

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

generate server key

これで、wireguardサーバーのプライベートキー/etc/wireguard/server.keyに、パブリックキー/etc/wireguard/server.pubに生成されました。以下のcatコマンドを実行して、プライベートキーとパブリックキーの両方の内容を表示できます。

cat /etc/wireguard/server.key  
cat /etc/wireguard/server.pub

出力は異なる場合がありますが、生成されたキーは以下のようになります。

Wireguardクライアントキーの生成

wireguardサーバーキーが生成されたので、次のタスクはクライアント用のキーを生成することです。各ユーザーのためにクライアントキーを生成できますが、複数のユーザーに対して単一のキーを使用することもできます。

この例では、特定のユーザーaliceのためにクライアントキーを生成します。

まず、以下のコマンドを実行して、クライアントキーを保存するための新しいディレクトリを作成します。この場合、ユーザーaliceのパブリックキーとプライベートキーは/etc/wireguard/clients/aliceディレクトリに生成されます。

mkdir -p /etc/wireguard/clients/alice

次に、以下のコマンドを実行して、ユーザーaliceのプライベートキー/etc/wireguard/clients/alice/alice.keyとパブリックキー/etc/wireguard/clients/alice/alice.pubを生成します。

wg genkey | tee /etc/wireguard/clients/alice/alice.key  
cat /etc/wireguard/clients/alice/alice.key | wg pubkey | tee /etc/wireguard/clients/alice/alice.pub

最後に、以下のコマンドを実行して、ユーザーaliceのプライベートキーとパブリックキーの内容を表示します。

cat /etc/wireguard/clients/alice/alice.key  
cat /etc/wireguard/clients/alice/alice.pub

以下のような出力が表示されます。

Wireguardインターフェースの構成

サーバーとクライアントの両方のプライベートキーとパブリックキーが生成されたので、次のタスクはWireguardインターフェースとピアを構成することです。WireguardネットワークVPN用のインターフェースと、クライアントとサーバー間で確立されるピアを構成します。

以下のnanoエディタコマンドを使用して、新しいWireguard構成/etc/wireguard/wg0.confを作成します。

sudo nano /etc/wireguard/wg0.conf

ファイルに以下の構成を挿入します。

[Interface]  
# Wireguardサーバーのプライベートキー - server.key  
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=  
  
# Wireguardインターフェースは10.10.0.1で実行されます  
Address = 10.10.0.1/24  
  
# クライアントはUDPポート51820に接続します  
ListenPort = 51820  
  
# 変更がWireguard構成ファイルに保存されることを確認します  
SaveConfig = true

以下の詳細パラメータが[Interface]セクション内で使用されます:

  • PrivateKey: wireguardサーバーのプライベートキーserver.keyの内容を入力します。
  • Address: Wireguardインターフェースに割り当てられるIPアドレスです。この場合、wireguardインターフェースはIPアドレス10.10.0.1を持ちます。
  • ListenPort: これは、クライアントがwireguardサーバーに接続するために使用されるポートです。この場合、ポート51820が使用されます。
  • SaveConfig: 値trueは、インターフェースの現在の状態からの変更がシャットダウン時に保存されることを意味します。

次に、wireguardクライアント用の以下の[Peer]セクションを追加します。

[Peer]  
# Wireguardクライアントのパブリックキー - alice.pub  
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=  
  
# 接続を許可するクライアントのVPN IPアドレス  
# サブネットを指定することも可能 ⇒ [10.10.0.0/24]  
AllowedIPs = 10.10.0.2/24

以下は、[Peer]セクション内で使用されるパラメータです:

PublicKey: このパラメータにwireguardクライアントのパブリックキーを入力します。この場合、パブリックキーalice.pubの内容です。
AllowedIPs: クライアントのIPアドレスを定義し、トラフィックをwireguardインターフェースにルーティングします。

完了したら、ファイルを保存して閉じます。

最後に、以下のコマンドを実行して、クライアント接続のためにポート51820/udpを開きます。

sudo ufw allow 51820/udp

WireguardインターフェースのNAT設定

まず、以下のコマンドを実行して、インターネットに接続するために使用されるデフォルトゲートウェイインターフェースを表示します。

sudo ip route list default

この場合、デフォルトのネットワークインターネットゲートウェイはインターフェースeth0です。

次に、以下のnanoエディタコマンドを使用して、wireguard構成/etc/wireguard/wg0.confを開きます。

sudo nano /etc/wireguard/wg0.conf

以下の構成を[Interface]セクションの下に追加し、インターフェースeth0をデフォルトのインターネットゲートウェイインターフェースに変更してください。

[Interface]  
...  

PostUp = ufw route allow in on wg0 out on eth0  
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE  
  
PreDown = ufw route delete allow in on wg0 out on eth0  
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE  
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

完了したら、ファイルを保存して閉じます。

これで、Wireguardサーバーの構成が完了しました。

Wireguardサービスの管理

Wireguardサーバーのインストールと構成が完了したので、DebianシステムでWireguardサービスを開始する準備が整いました。これはsystemctlコマンドまたはwg-quickユーティリティを使用して行うことができます。

Wireguardサーバーを開始して有効にするには、以下のsystemctlコマンドを実行します。サービス名wg-quick@wg0を使用して、/etc/wireguard/wg0.confに基づいてWireguardをwg0インターフェース内で開始します。

sudo systemctl start [email protected]  
sudo systemctl enable [email protected]

次に、以下のコマンドを使用してwirguard@wg0サービスを確認します。

sudo systemctl status [email protected]

サービスが実行中であれば、以下の出力が表示されます。

start verify wireguard service

次に、以下のipコマンドを実行してwireguardインターフェースwg0の詳細を表示します。wireguardインターフェースwg0がIPアドレス10.10.0.1を持っていることが確認できます。

sudo ip a show wg0

check wg0 interface

また、以下のwg-quickコマンドを使用して、wireguardを手動で開始または停止することもできます。

sudo wg-quick up /etc/wireguard/wg0.conf  
sudo wg-quick down /etc/wireguard/wg0.conf

これで、Wireguardサーバーが構成され、systemctlコマンドを介してバックグラウンドで開始されました。クライアントは、wireguardサーバーに接続する準備が整いました。

DebianベースのディストリビューションでのWireguardクライアントの設定

次のセクションでは、Debianベースのディストリビューション用のwireguardクライアントを構成します。wireguardツールをインストールし、wireguardクライアント構成を作成し、wireguardサーバーに接続し、wgユーティリティを介して接続を確認し、インターネットにアクセスします。

クライアントマシンにwireguard-toolsパッケージをAPTを介してインストールします。クライアントマシンはDebianベースのディストリビューションであるため、APTパッケージマネージャーが使用されます。

sudo apt install wireguard-tools resolvconf

install wireguard tools

wireguard-toolsをインストールした後、以下のnanoエディタを使用して新しいwireguardクライアント構成/etc/wireguard/wg-alice.confを作成します。

sudo nano /etc/wireguard/wg-alice.conf

ファイルに以下の構成を挿入します。

[Interface]  
# クライアントのIPアドレスを定義します - Wireguardサーバーのwg0と一致する必要があります  
Address = 10.10.0.2/24  
  
# 特定のDNSサーバー  
DNS = 1.1.1.1  
  
# クライアントのプライベートキー - alice.key  
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=  
  
[Peer]  
# Wireguardサーバーのパブリックキー - server.pub  
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=  
  
# Wireguard VPNを介してルーティングされるすべてのトラフィックを許可  
AllowedIPs = 0.0.0.0/0  
  
# WireguardサーバーのパブリックIPアドレス  
Endpoint = 192.168.128.15:51820  
  
# 25秒ごとにKeepaliveを送信  
PersistentKeepalive = 25

完了したら、ファイルを保存して閉じます。

以下は、wireguardクライアントの[Interface]セクション内のいくつかのパラメータです:

  • Address: クライアントマシンのwireguardインターフェースの内部IPアドレスを指定します。
  • DNS: クライアントのデフォルトDNSサーバーを設定します。
  • PrivateKey: wireguardクライアントのプライベートキーで、この場合はalice.keyです。

そして、wireguardクライアント構成の[Peer]セクション内では:

  • PublicKey: これはwireguardサーバーのパブリックキーで、server.pubです。
  • AllowedIPs: wireguardインターフェースを介してルーティングされるすべてのアクセスを許可します。
  • Endpoint: wireguardサーバーのIPアドレスとポートです。
  • PersistentKeepalive: 接続を維持するためにx秒ごとにkeepaliveを送信します。

次に、以下のwg-quickコマンドを実行して、インターフェースwg-aliceでwireguardを開始します。

sudo wg-quick up wg-alice

すべてがうまくいけば、以下のような出力が表示されます。

start wireguard on client

その後、以下のipコマンドを実行して、インターフェースwg-aliceの詳細を確認します。wg-aliceインターフェースがローカルIPアドレス10.10.0.2を持っていることが確認できます。

sudo ip a show wg-alice

check wireguard interface on client

次に、以下のコマンドを実行してクライアントマシンのインターネット接続を確認します。

ping -c3 10.10.0.1  
ping -c3 1.1.1.1  
ping -c3 duckduckgo.com

Wireguardサーバーのインストールが成功していれば、各ターゲットサーバーからの応答が表示されます。

check ping

さらに、以下のコマンドをwireguardサーバーまたはクライアントマシンで実行することで、wireguardサーバーとクライアント間の接続の詳細を確認できます。

wg show

以下のような出力が表示されます。

show wireguard connections

最後に、クライアントマシンでwireguard接続を停止するには、以下のwg-quickコマンドを実行します。

sudo wg-quick down wg-alice

stop wireguard on client

結論

まとめると、Debian 12サーバーにWireguard VPNをステップバイステップでインストールすることができました。また、Wireguardで構成されたDebianベースのクライアントマシンを設定し、Wireguardサーバーに接続しました。これを考慮に入れると、Wireguardキーとピア構成を追加することで、さらに多くのクライアントを追加できます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。