ウェブサイト検索

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


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

このチュートリアルはこれらのOSバージョンのために存在します

  • Debian 12 (ブックワーム)
  • Debian 11 (バルセイヤ)

このページで

  1. 前提条件
  2. システムの準備

    1. ポートフォワーディングを有効にする
    2. UFWをインストールする
  3. Wireguardサーバーのインストール

    1. Wireguardのインストール
    2. Wireguardサーバーキーの生成
    3. Wireguardクライアントキーの生成
    4. Wireguardインターフェースの設定
    5. WireguardインターフェースのNAT設定
  4. Wireguardサービスの管理
  5. Debian系ディストリビューションでのWireguardクライアントの設定
  6. 結論

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権限を持つ非ルートユーザー。
  • クライアントマシン - この場合、Debianベースのディストリビューションを使用しています。

システムの準備

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

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

さあ、始めましょう。

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

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

/etc/sysctl.conf ファイルを次の nano エディタコマンドを使用して開いてください。

sudo nano /etc/sysctl.conf

次の設定を挿入して、IPv4および必要に応じてIPv6のポートフォワーディングを有効にします。

Port Forwarding for IPv4
net.ipv4.ip_forward=1
Port forwarding for 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

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

sudo ufw allow OpenSSH
sudo ufw enable

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

sudo ufw status

実行中の場合は、出力に「ステータス: アクティブ。」と表示されるはずです。また、OpenSSH アプリケーションプロファイルが UFW に追加されたことがわかります。

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

Debianサーバーの設定が完了したら、Debianマシン上にWireguard VPNサーバーを作成する準備が整いました。これを達成するために、次のタスクを完了してください:

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

これをやりましょう。

Wireguardのインストール

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

sudo apt install wireguard

インストールを続行するにはyを入力してください。

Wireguardサーバーキーの生成

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

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

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

次に、次のコマンドを実行して、/etc/wireguard/server.pubにWireGuardサーバーの公開鍵を生成します。

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

ワイヤーガードサーバーのために/etc/wireguard/server.keyへの秘密鍵と/etc/wireguard/server.pubへの公開鍵を生成したので、以下のcatコマンドを実行して、秘密鍵と公開鍵の両方の内容を表示できます。

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

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

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

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

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

始めに、クライアントキーを保存するための新しいディレクトリを作成するには、次のコマンドを実行します。この場合、ユーザーアリスの公開鍵と秘密鍵は/etc/wireguard/clients/aliceディレクトリに生成されます。

mkdir -p /etc/wireguard/clients/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

最後に、次のコマンドを実行してユーザーアリスの秘密鍵と公開鍵の内容を表示します。

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 private key - server.key
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=
Wireguard interface will be run at 10.10.0.1
Address = 10.10.0.1/24
Clients will connect to UDP port 51820
ListenPort = 51820
Ensure any changes will be saved to the Wireguard config file
SaveConfig = true

以下は、[インターフェース]セクション内で使用されるパラメーターの詳細です。

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

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

[Peer]
Wireguard client public key - alice.pub
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=
clients' VPN IP addresses you allow to connect
possible to specify subnet ⇒ [10.10.0.0/24]
AllowedIPs = 10.10.0.2/24

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

公開鍵:このパラメータにWireGuardクライアントの公開鍵を入力してください。この場合、公開鍵alice.pubの内容です。
許可されたIP:クライアントのIPアドレスを定義し、トラフィックをWireGuardインターフェースにルーティングします。

作業が完了したら、ファイルを保存して閉じてください。

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

sudo ufw allow 51820/udp

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

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

sudo ip route list default

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

次に、以下のnanoエディタコマンドを使用してワイヤーガードの設定/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に基づいてwg0インターフェース内でWireguardを開始します。

sudo systemctl start [email 
sudo systemctl enable [email 

次のコマンドを使用して、wirguard@wg0 サービスを確認してください。

sudo systemctl status [email 

サービスが実行中の場合、次の出力が表示されます。

次に、以下のipコマンドを実行して、wireguardインターフェースwg0の詳細を表示します。そして、wireguardインターフェースwg0にはIPアドレス10.10.0.1があることがわかるはずです。

sudo ip a show wg0

以下の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ユーティリティを介して接続を確認し、インターネットにアクセスします。

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

sudo apt install wireguard-tools resolvconf

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

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

次の設定をファイルに挿入してください。

[Interface]
Define the IP address for the client - must be matched with wg0 on the Wireguard Server
Address = 10.10.0.2/24
specific DNS Server
DNS = 1.1.1.1
Private key for the client - alice.key
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=
[Peer]
Public key of the Wireguard server - server.pub
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=
Allow all traffic to be routed via Wireguard VPN
AllowedIPs = 0.0.0.0/0
Public IP address of the Wireguard Server
Endpoint = 192.168.128.15:51820
Sending Keepalive every 25 sec
PersistentKeepalive = 25

作業が完了したら、ファイルを保存して閉じてください。

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

  • アドレス:クライアントマシン上のWireGuardインターフェースの内部IPアドレスを指定してください。
  • DNS: クライアントのためにデフォルトのDNSサーバーを設定します。
  • プライベートキー:この場合、WireGuardクライアントのプライベートキーはalice.keyです。

そして、WireGuardクライアント設定の[Peer]セクション内で:

  • PublicKey: これはWireGuardサーバーの公開鍵であり、server.pubです。
  • AllowedIPs: Wireguardインターフェイスを介してルーティングされるアクセスを許可します。
  • エンドポイント: WireGuardサーバーのIPアドレスとポート。
  • PersistentKeepalive: 接続を維持するために、x秒ごとにキープアライブを送信します。

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

sudo wg-quick up wg-alice

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

その後、以下のipコマンドを実行して、wg-aliceインターフェースの詳細を確認してください。そして、ローカルIPアドレス10.10.0.2を持つwg-aliceインターフェースが表示されるはずです。

sudo ip a show wg-alice

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

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

もしあなたのWireGuardサーバーのインストールが成功すれば、次のように各ターゲットサーバーからの応答を受け取ることになります:

さらに、次のコマンドをWireGuardサーバーまたはクライアントマシンで実行することで、WireGuardサーバーとクライアントの間の接続を詳述することもできます。

wg show

下記のような似た出力が表示されます。

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

sudo wg-quick down wg-alice

結論

最後に、これでDebian 12サーバーにWireguard VPNを段階的にインストールし終えました。また、WireguardでDebianベースのクライアントマシンを設定し、Wireguardサーバーに接続しました。これを念頭に置いて、追加のWireguardキーとピア設定を追加することで、さらに多くのクライアントを追加することができます。

関連記事: