Debian 12でWireGuardポイントツーサイトVPNを設定する方法

具体例:マヤはカフェで仕事をする際、Debian 12 VPSを個人用VPNエンドポイントとして使用します。彼女のノートパソコンは、暗号化されたWireGuardトンネル経由でVPSに接続し、そのサーバーを経由してIPv4インターネットトラフィックを送信する必要があります。この例は実際のテスト結果ではありません。以下に示すパブリックIPアドレス、鍵、およびターミナル出力は、プレースホルダーまたは代表的なモックアップです。

この設定はポイントツーサイトVPNです。つまり、1つのクライアントが1つのサーバーに接続します。Debianに付属のWireGuardツール、単一のピア、IPv4フォワーディング、およびIPv4 NATを使用します。VPSにはパブリックまたはポートフォワーディングされたIPv4アドレスがあり、sudoで管理でき、UDPポート51820でアクセスできることを前提としています。このチュートリアルでは、ルーティングされたIPv6やVPSの背後にあるプライベートネットワークの設定は行いません。

まず住所とアクセスを計画する

この例では10.8.0.0/24、VPN に を使用し、10.8.0.1サーバー側と10.8.0.2Maya の最初のクライアント側で を使用します。クライアントの Wi-Fi、オフィス、またはクラウド ネットワークと重複しないサブネットを使用してください。ハンドシェイクが成功しても、衝突が発生するとトラフィックが誤った経路に送られる可能性があります。

WireGuardは公開鍵認証を使用します。サーバーはクライアントの公開鍵を必要とし、クライアントはサーバーの公開鍵を必要とします。各秘密鍵は、それを所有するデバイス上に保持されます。DebianのWireGuardドキュメントにはパッケージとピアの設定方法が記載されており、WireGuardクイックスタートには鍵生成とキープアライブ動作について説明されています。詳しくは、Debian WireGuardドキュメントとWireGuardクイックスタートを参照してください。

Debian 12サーバーの設定

1. ツールをインストールする

パッケージインデックスを更新し、WireGuardとnftablesをインストールします。これにより、IPv4マスカレードルールの例が提供されます。VPS上で以下のコマンドを実行してください。

sudo apt update
sudo apt install wireguard nftables

Debianでは、wireguardメタパッケージとそのツールを通じてWireGuardが提供されています。サーバーが既にUFW、firewalld、またはプロバイダ管理ルールなどのファイアウォールマネージャを使用している場合は、追加する前にアクティブなルールセットを特定してください。この例を使用して既存のファイアウォール設定を置き換えないでください。

Debianのターミナルに、apt updateコマンドによるWireGuardおよびnftablesパッケージのインストール結果が表示されます。
端末にはパッケージのインストール手順が表示されます。パッケージの出力は、ミラーサイトやシステムの状態によって異なる場合があります。

2. 公開インターフェースを見つけて転送を有効にする

Debianが外部IPv4アドレスに到達するためにどのインターフェースを使用するかをルーティングテーブルに問い合わせます。

ip route get 1.1.1.1

サンプルでは、​​ルートに を使用しています。お使いの VPS では、や など、eth0異なる名前が表示される場合があります。その場合は、後で NAT ルールでご自身の出力から名前を使用してください。また、サーバーのパブリック IPv4 アドレスまたは DNS 名もメモしておいてください。サーバーがルーターの背後にある場合は、そのルーターから Debian ホストに UDP 51820 を転送してください。ens3enp1s0

完全なトンネル接続にはIPv4フォワーディングが必要です。今すぐ有効にして、再起動後も設定が維持されるようにしてください。

echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system
sysctl net.ipv4.ip_forward

最後のコマンドは、 と報告するはずですnet.ipv4.ip_forward = 1。この設定はパケット転送を許可しますが、それ自体ではファイアウォールを開いたり、NATを提供したりするものではありません。

Debianのターミナルには、eth0を経由する経路とIPv4転送が有効になっていることが表示されます。
ルート検索では、送信IPv4に使用されるインターフェースが特定され、sysctlは転送が有効になっていることを確認します。

3. サーバーキーとクライアントキーのペアを作成する

Debianホスト上に、ファイル権限を制限したサーバーキーを作成します。

sudo install -d -m 700 /etc/wireguard
sudo sh -c 'umask 077; wg genkey > /etc/wireguard/server.key; wg pubkey < /etc/wireguard/server.key > /etc/wireguard/server.pub'

可能であれば、クライアントデバイス上でクライアントキーペアを生成します。Linuxクライアントに以下のものがwireguard-toolsインストールされている場合:

umask 077
wg genkey | tee client.key | wg pubkey > client.pub

電話の場合は、公式のWireGuardアプリで新しいトンネルを作成し、プロファイルキーを生成させてください。クライアントの公開鍵のみをサーバーにコピーしてください。公開鍵はclient.key秘密に保管し、サーバーの設定に貼り付けたり、チャットで送信したりしないでください。キーコマンドとインターフェースフィールドについては、Debian Bookwormのwg(8)マニュアルを参照してください。

4. サーバーインターフェースを作成し、ピアを追加します。

以下の構造で作成します/etc/wireguard/wg0.conf。各大文字のプレースホルダーを対応する実際のキーに置き換えます。サーバーの秘密鍵をローカルで読み込みsudo cat /etc/wireguard/server.key、クライアントの公開鍵をピアセクションに配置します。

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

秘密鍵が含まれているため、ファイルを保護してください。

sudo chown root:root /etc/wireguard/wg0.conf
sudo chmod 600 /etc/wireguard/wg0.conf

AllowedIPs = 10.8.0.2/32このピアに 1 つの VPN アドレスを割り当て、他のピアがそれを使用できないようにします。追加のデバイスごとに、独自のキー ペアと、 などの固有のアドレスを割り当ててください10.8.0.3/32。個別の失効または ID が必要な場合は、1 つのクライアント プロファイルを複数のデバイスで再利用しないでください。

Debianのターミナルには、WireGuardの鍵生成と、クライアントピアとのwg0インターフェースが表示されます。
サーバーインターフェースには、専用のトンネルアドレスを持つピアが1つ表示されます。表示されているキー情報はあくまで例示です。

5. IPv4 NATを追加し、WireGuardポートを許可する

サンプルとなる完全な IPv4 トンネルの場合、送信パケットは10.8.0.0/24送信元 NAT を備えたパブリックインターフェースを経由して送信されなければなりません。サーバーの既存の nftables 設定またはファイアウォールマネージャに同等のルールを追加します。このスタンドアロンの nftables テーブルはルールを示しています。eth0ステップ 2 で検出されたインターフェースに置き換えてください。

table ip wg_nat {
  chain postrouting {
    type nat hook postrouting priority srcnat; policy accept;
    ip saddr 10.8.0.0/24 oifname "eth0" masquerade
  }
}

Debian の nftables を使用する場合はnftables.service、テーブルをサービスが起動時にロードする設定にマージし、sudo nft -c -f /etc/nftables.conf再ロードする前に完全なファイルを検証してください。現在の設定が既存のルールをフラッシュまたは置き換えるかどうかを確認してから適用してください。NAT だけでは、トラフィックをドロップするフォワードチェーン ポリシーを上書きすることはできません。wg0アクティブなファイアウォールで、WAN インターフェイスへの転送と戻りトラフィックを許可してください。Debian のnft(8)マニュアルには、nftables ルールのロードと NAT ステートメントについて記載されています。

VPSプロバイダのファイアウォールとホストのファイアウォールの両方で、受信UDPポート51820を許可してください。このWireGuardトンネルではTCPポート51820を開放しないでください。ファイアウォールポリシーを変更する際は、SSHアクセスルールはそのまま維持し、ファイアウォールの再起動によって接続が切断される可能性がある場合は、プロバイダのコンソールなどの復旧手段を使用してください。

nftablesの設定ビューには、eth0を介したVPNサブネット10.8.0.0/24のIPv4マスカレードが表示されます。
このルールは、選択されたWANインターフェースを経由して送信されるVPN IPv4トラフィックに一致し、マスカレードを適用します。

クライアントの設定と接続

6. クライアントプロファイルを作成する

WireGuardクライアントアプリで新しいトンネルを作成するか、Linuxクライアントで以下のような設定を保存してください。秘密鍵、サーバー公開鍵、エンドポイントは実際の値に置き換えてください。下記のTEST-NETアドレスは単なる例であり、実際のサーバーには接続されません。

[Interface]
Address = 10.8.0.2/32
PrivateKey = CLIENT_PRIVATE_KEY
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = 203.0.113.10:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

AllowedIPs = 0.0.0.0/0IPv4 宛先をトンネル経由でルーティングするため、完全な IPv4 トンネルの選択肢となります。WireGuard サーバーのアドレスのみに到達する狭いスプリット トンネルの場合は、10.8.0.0/24代わりに を使用してください。サーバーの背後にある LAN にアクセスするには、クライアントの にその LAN の実際のサブネットを含めAllowedIPs、戻りルートまたは適切な NAT を追加し、サーバー ファイアウォールを介してトラフィックを許可します。これらの手順は LAN ルーターに依存するため、この例には含まれません。

PersistentKeepalive = 25NAT の背後にあるクライアントがアイドル状態の後もアクセス可能な状態を維持できるようにするのに役立ちます。これはオプションです。WireGuard のドキュメントによると、ほとんどのユーザーはこれを必要としませんが、NAT マッピングを開いたままにしておく必要がある一般的な間隔として 25 秒が示されています。このDNSフィールドは、一部のクライアントおよび に基づくクライアントでサポートされていますwg-quick。アプリがこれを無視する場合は、そのアプリ独自のコントロールを使用して DNS を設定してください。

クライアント設定エディタには、WireGuardアドレス、エンドポイント、完全なIPv4ルート、およびキープアライブフィールドが表示されます。
クライアントプロファイルはIPv4をサーバー経由でルーティングします。TEST-NETエンドポイントはプレースホルダーであり、有効なアドレスではありません。

7. トンネルを開始し、ハンドシェイクを確認します。

Debianでは、起動時に以下のコマンドでインターフェースを起動します。

sudo systemctl enable --now wg-quick@wg0
sudo wg show

UDP 51820 に到達可能になったら、クライアント プロファイルをインポートまたはアクティブ化してください。 でwg show、期待されるピアが表示され、latest handshakeクライアントがトラフィックを送信した後に が更新されることを確認してください。Debian wg-quick(8)Bookworm のマニュアルには、 systemd ユニットで使用されるインターフェース設定ヘルパーについて説明されています。

ハンドシェイクが失敗する場合は、まず到達可能性またはキーの不一致が考えられます。エンドポイントのアドレスとポート、UDPファイアウォールルール、クライアントプロファイル内のサーバー公開鍵、クライアント公開鍵wg0.conf、および正しいシステム時刻を確認してください。トラフィックが機能しないハンドシェイクは、通常、転送、NAT、ルートの重複、またはファイアウォールの転送チェーンルールが原因です。

Debianのターミナルには、wg-quickサービスが有効になっていることと、トラフィックカウンター付きのピアハンドシェイクが表示されます。
サービスが有効になっており、ピア表示にはハンドシェイクと転送のフィールドが含まれています。値は例示です。

8. トラフィックを確認し、IPv6の制限を理解する

クライアントが接続されたら、まずサーバーのトンネルアドレスをテストし、次に外部のIPv4アドレスチェックサービスで確認できるパブリックIPv4アドレスを確認します。

ping -c 3 10.8.0.1
curl -4 https://ifconfig.me

ICMPが許可されていれば、pingはサーバーに到達するはずです。外部IPv4チェックでは、このフルトンネル設定におけるVPSのパブリック出力アドレスが表示されるはずです。パブリックアドレスが変更されない場合は、AllowedIPs転送、NATインターフェース名、およびファイアウォールの転送ポリシーを確認してください。

この例は IPv4 のみに対応しています。IPv6AllowedIPs = 0.0.0.0/0はルーティングされないため、IPv6 接続を持つクライアントはトンネル外に IPv6 トラフィックを送信する可能性があります。この構成を完全なデュアルスタックプライバシー トンネルとして説明しないでください。WireGuard を介して IPv6 を伝送するには、トンネルに IPv6 アドレスを割り当ててルーティングし、IPv6 転送を有効にし、適切なファイアウォールとルーティング ルールを設定し、::/0そのパスがエンドツーエンドで正常に動作した後にのみクライアントを追加してください。プロバイダのサポート状況は異なります。それ以外の場合は、スプリット トンネル ポリシーを慎重に選択し、クライアントの IPv6 動作を確認してください。

一般的なスマートフォンのVPN画面には、サーバーとトンネルアドレスの詳細が表示された、アクティブなラップトップVPNプロファイルが表示されます。
汎用VPNクライアントプロファイルが有効になっており、サーバーエンドポイントとトンネルIPアドレスが表示されます。設定はアプリによって異なります。
Debianのターミナルには、IPv4アドレスのチェックとWireGuardサーバーへのpingの成功が表示されます。
端末はIPv4の送信アドレスを確認し、サーバーのWireGuardアドレスにpingを実行します。出力例を以下に示します。

よくある問題と簡単な最終チェック

  • ハンドシェイクなし:プロバイダとホストのファイアウォールの両方で受信UDP 51820を確認し、エンドポイントのパブリックIPまたはDNS、および各側のピア公開鍵を確認します。
  • ハンドシェイクは成功しているが、ウェブサイトが読み込まれない:net.ipv4.ip_forward=1 NATルールが実際の送信インターフェースを使用しており、ファイアウォールが転送トラフィックを許可していることを確認してください。
  • ネットワークによっては障害が発生する場合があります。ローカルネットワークまたはリモートネットワークと重複していないか確認してください10.8.0.0/24。必要に応じてトンネルの番号を変更し、ピアとファイアウォールルールの両方を同時に更新してください。
  • 再起動するまでは正常に動作します。wg-quick@wg0ファイアウォールとsysctlの設定が有効になっており、システムの通常の構成を通じて設定が保持されることを確認してください。
  • IPv6 は依然としてローカル接続を使用します。これは、この IPv4 のみの例では想定されている動作です。完全なトンネルプライバシーの主張に頼る前に、IPv6 トンネルルートを設定してテストしてください。

セットアップが完了したと判断する前に、サーバーサービスがアクティブであること、wg show最近のハンドシェイクが報告されていること、転送カウンタが増加していること、クライアントが に到達できること10.8.0.1、および IPv4 出力チェックでサーバーのパブリック アドレスが報告されていることを確認してください。永続的なファイアウォールと転送設定が正しく適用された後にのみ再起動し、これらのチェックを繰り返してください。追加のピアについては、個別のキー ペアと固有のトンネル IP を発行し、ピア エントリを削除してインターフェイスを再読み込みすることでデバイスを削除してください。

コメントを残す

Debian 12でWireGuardポイントツーサイトVPNを設定する方法

Debian 12でWireGuardポイントツーサイトVPNを設定する方法

リモートクライアント1台用に、Debian 12 WireGuard VPNサーバーをセットアップします。キー、IPv4フォワーディング、nftables NAT、ファイアウォールアクセス、接続チェックを設定します。

Step-by-Step Debian 12 Hardening Guide for CIS Compliance

Step-by-Step Debian 12 Hardening Guide for CIS Compliance

Harden a Debian 12 workstation with a careful CIS Benchmark workflow: select the right profile, patch safely, review services and access, configure nftables, and document evidence.

低RAM VPS上のDebian 12:MySQLのメモリ不足クラッシュを減らす方法

低RAM VPS上のDebian 12:MySQLのメモリ不足クラッシュを減らす方法

Debian 12 で発生する MySQL の OOM による強制終了を診断し、VPS のメモリ制限を確認し、スワップを設定し、データベースのメモリと同時実行性を調整します。ただし、万能な解決策を保証するものではありません。

How to Build a Debian Desktop as an OSTree-Based Immutable System

How to Build a Debian Desktop as an OSTree-Based Immutable System

Learn how to create and test a Debian-derived OSTree desktop in a VM, including system-tree preparation, boot integration, deployment checks, and rollback.

How to Mount a Remote SSHFS Directory Automatically at Boot in Debian

How to Mount a Remote SSHFS Directory Automatically at Boot in Debian

Configure an SSHFS boot mount in Debian with SSH keys, fstab, and systemd automount. Includes reboot checks, permissions, timeouts, and troubleshooting.

東京の10月にやることは?台風・秋雨・エアコン・冷え込みの住まい点検チェックリスト

東京の10月にやることは?台風・秋雨・エアコン・冷え込みの住まい点検チェックリスト

東京の2026年10月に確認したい住まいの手入れを解説。台風や秋雨に備えるベランダ排水・窓の点検、エアコンフィルター掃除、室内の湿気対策、賃貸と持ち家の連絡先をまとめました。平年値と最新予報の違いも紹介します。

東京都で2026年10月に植える野菜・ハーブ・花|週ごとの家庭菜園チェックリスト

東京都で2026年10月に植える野菜・ハーブ・花|週ごとの家庭菜園チェックリスト

東京都の2026年10月に種まき・植え付けできる小松菜、ホウレンソウ、春菊、ソラマメ、ハーブ、パンジーや球根を紹介。気象庁の平年値と最新予報の違い、霜や残暑への備え、週ごとの作業目安も確認できます。

2026年に知っておくべきポッドキャストのトレンド:初心者向けロードマップ

2026年に知っておくべきポッドキャストのトレンド:初心者向けロードマップ

ポッドキャスト初心者の方へ。動画、発見、文字起こし、AI、分析、収益化、そして実践的な立ち上げ計画など、2026年のトレンドについて学びましょう。

UGCマスタークラス:信頼を獲得し、行動を促すユーザー生成コンテンツの構築

UGCマスタークラス:信頼を獲得し、行動を促すユーザー生成コンテンツの構築

顧客コンテンツとクリエイターコンテンツの真正性を損なうことなく、コンテンツの調達、許可取得、ブリーフィング、公開、測定を行うための実践的なUGCマスタークラス。

コミュニティ構築が新たなマーケティング手法となる理由、そしてそうでない場合

コミュニティ構築が新たなマーケティング手法となる理由、そしてそうでない場合

コミュニティ構築は、信頼関係、顧客維持、フィードバック、そして支持を深めるのに役立ちますが、あらゆるマーケティングチャネルの代替となるものではありません。それぞれのメリット・デメリットを比較検討し、最適なモデルを選択しましょう。