Debian 12 に WireGuard VPN をインストールする
このチュートリアルはこれらの OS バージョン用に存在します
- Debian 12 (本の虫)
- Debian 11 (ブルズアイ)
このページでは
- 前提条件
システムの準備中
- ポート転送を有効にする
- UFWのインストール
Wireguard サーバーのインストール
Wireguard は、IPSec、IKEv2、OpenVPN に代わるオープンソースの VPN プロトコルです。 Wiruguard は Linux および Unix オペレーティング システム用に設計されており、Linux カーネル スペースで実行されるため、Wiruguard はより高速で信頼性が高くなります。 Wireguard は、2 台以上のコンピュータ間に安全なトンネル接続を作成するために使用されます。
Wireguard は、IPSec、IKEv2、OpenVPN などの VPN プロトコルを置き換えることを目的としています。 Wireguard は軽量、高速、セットアップが簡単で、より効率的です。同時に、Wiregurad は 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のインストールと設定
さあ始めましょう。
ポート転送を有効にする
ポート転送を有効にするには、カーネル モジュール net.ipv4 を有効にする必要があります。 IPv4 またはネットの場合は ip_forward。 ipv6.conf。全て。 IPv6 の転送。これらのカーネル モジュールは、/etc/sysctl.conf ファイルを介して有効にすることができます。
次の nano エディター コマンドを使用して、/etc/sysctl.conf ファイルを開きます。
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 をインストールします。 Wirguard サーバーには UFW と iptables の両方を使用します。
以下の apt コマンドを実行してリポジトリを更新し、UFW を Debian システムにインストールします。
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 インターフェイス用の NAT の設定
これをやってみましょう。
ワイヤーガードの取り付け
まず、次のコマンドを実行して、Wireguard パッケージを Debian サーバーにインストールします。
sudo apt install wireguard
y を入力してインストールを続行します。
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
これで、秘密キーを /etc/wireguard/server.key に生成し、公開キーを /etc/wireguard に生成しました。ワイヤーガード サーバーの /server.pub。以下の cat コマンドを実行すると、秘密キーと公開キーの両方の内容を表示できます。
cat /etc/wireguard/server.key
cat /etc/wireguard/server.pub
出力は異なる場合がありますが、生成されたキーは次のようになります。
Wireguard クライアント キーの生成
ワイヤーガード サーバー キーが生成されたら、次のタスクはクライアント用のキーを生成することです。ユーザーごとにクライアント キーを生成できますが、複数のユーザーに対して 1 つのキーを使用することもできます。
この例では、特定のユーザー alice のクライアント キーを生成します。
まず、次のコマンドを実行して、クライアント キーを保存するための新しいディレクトリを作成します。この場合、ユーザー alice の公開キーと秘密キーは /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
最後に、以下のコマンドを実行して、ユーザー alice の秘密キーと公開キーの内容を表示します。
cat /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.pub
次のような同様の出力が表示されます。
ワイヤーガードインターフェイスの構成
サーバーとクライアントの両方の秘密キーと公開キーを生成したので、次のタスクは Wireguard インターフェイスとピアを構成することです。 Wireguard ネットワーク VPN のインターフェイスと、クライアントとサーバーの間に確立されるピアを構成します。
次の nano editor コマンドを使用して、新しい 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
以下に、[インターフェイス] セクション内で使用されるパラメータの詳細を示します。
- PrivateKey: コンテンツ ワイヤーガード サーバーの秘密キー server.key を入力します。
- アドレス: Wireguard インターフェイスに割り当てられる IP アドレス。この場合、ワイヤーガード インターフェイスの IP アドレスは 10.10.0.1 になります。
- ListenPort: これは、クライアントがワイヤーガード サーバーに接続するために使用するポートです。この場合、ポート 51820 が使用されます。
- SaveConfig: 値 true は、インターフェイスの現在の状態からシャットダウンまでの変更が保存されることを意味します。
次に、ワイヤーガード クライアント用に次の [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] セクション内で使用されるパラメータです。
PublicKey: ワイヤーガード クライアントの公開キーをこのパラメータに入力します。この場合、公開キーの内容 alice.pub.
AllowedIPs: クライアントの IP アドレスを定義し、トラフィックをワイヤーガード インターフェイスにルーティングします。
完了したら、ファイルを保存して閉じます。
最後に、次のコマンドを実行して、クライアント接続用にポート 51820/udp を開きます。
sudo ufw allow 51820/udp
Wireguard インターフェイス用の NAT の設定
まず、次のコマンドを実行して、インターネットへの接続に使用されるデフォルト ゲートウェイ インターフェイスを表示します。
sudo ip route list default
この場合、デフォルトのネットワーク インターネット ゲートウェイはインターフェイス eth0 です。
次の nano editor コマンドを使用して、wireguard 設定 /etc/wireguard/wg0.conf を開きます。
sudo nano /etc/wireguard/wg0.conf
次の設定を [インターフェイス] セクションに追加し、インターフェイス 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 サーバーのインストールと構成が完了したので、Debian システムで Wireguard サービスを開始する準備が整いました。これは、systemctl コマンドまたは wg-quick ユーティリティを使用して実行できます。
Wireguard サーバーを起動して有効にするには、次の systemctl コマンドを実行します。サービス名 wg-quick@wg0 を使用して、設定 /etc/wireguard/wg0 に基づく wg0 インターフェイス内で Wireguard を開始します。カンファレンスです。
sudo systemctl start [email
sudo systemctl enable [email
次に、次のコマンドを使用して wirguard@wg0 サービスを確認します。
sudo systemctl status [email
サービスが実行されている場合は、次の出力が表示されます。
次に、以下の ip コマンドを実行して、ワイヤーガード インターフェイス wg0 の詳細を表示します。また、ワイヤーガード インターフェイス wg0 の IP アドレスが 10.10.0.1 であることがわかります。
sudo ip a show wg0
以下の wg-quick コマンドを使用して、ワイヤーガードを手動で開始または停止することもできます。
sudo wg-quick up /etc/wireguard/wg0.conf
sudo wg-quick down /etc/wireguard/wg0.conf
これで、wireguard サーバーが設定され、systemctl コマンドを使用してバックグラウンドで起動されました。これで、クライアントはワイヤガード サーバーに接続する準備ができました。
Debian ベースのディストリビューションでの Wireguard クライアントのセットアップ
次のセクションでは、Debian ベースのディストリビューション用にワイヤーガード クライアントを構成します。ワイヤーガード ツールをインストールし、ワイヤーガード クライアント構成を作成し、ワイヤーガード サーバーに接続し、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
完了したら、ファイルを保存して閉じます。
以下は、ワイヤーガード クライアントの [インターフェイス] セクション内のパラメータの一部です。
- アドレス: クライアント マシン上のワイヤーガード インターフェイスの内部 IP アドレスを指定します。
- DNS: クライアントのデフォルトの DNS サーバーを設定します。
- PrivateKey: ワイヤーガード クライアントの秘密キーは、この場合は alice.key です。
ワイヤーガード クライアント設定の [Peer] セクション内:
- PublicKey: これは、ワイヤーガード サーバー (server.pub) の公開キーです。
- AllowedIPs: ワイヤーガード インターフェイス経由でルーティングされるアクセスを許可します。
- エンドポイント: ワイヤーガード サーバーの IP アドレスとポート。
- PersistentKeepalive: 接続を維持するために、x 秒ごとにキープアライブを送信します。
次に、以下の wg-quick コマンドを実行して、インターフェイス wg-alice でワイヤーガードを開始します。
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
以下に同様の出力が表示されます。
最後に、クライアント マシン上のワイヤーガード接続を停止するには、以下の wg-quick コマンドを実行します。
sudo wg-quick down wg-alice
結論
最後に、これで Debian 12 サーバーへの Wireguard VPN のインストールが段階的に完了しました。また、Wireguard を使用して Debian ベースのクライアント マシンを構成し、Wireguard サーバーに接続しました。これを念頭に置いて、Wireguard キーとピア構成を追加することで、さらにクライアントを追加できるようになりました。