LinuxでWireguard VPNを設定する方法

LinuxでWireguard VPNを設定する方法
ノートパソコンとその横に置かれたデスクトップ モニターの写真。

Wireguard は、デスクトップとモバイル デバイスの両方で実行できる強力なオープン ソースの仮想プライベート ネットワーク (VPN) デーモンです。IPsec や OpenVPN などの従来の VPN ソリューションに代わる高速で軽量なソリューションを提供します。ここでは、Wireguard をインストールし、3 台​​の Linux マシンを使用してシンプルな VPN セットアップを作成する方法を説明します。

Wireguard を VPN ソリューションとして使用する理由

Wireguard の最大のセールスポイントの 1 つは、高速で軽量な VPN デーモンであることです。従来のソリューションとは異なり、Wireguard はネットワークに多くのオーバーヘッドを追加しません。これにより、レイテンシが低減し、ノード全体のスループット レートが高くなります。

高いスループットを示す 2 つの Wireguard ノード間の iperf3 テストを示す端末。

Wireguard のもう 1 つの重要な機能は、Linux カーネル内のモジュールであることです。これにより、コンピューターから追加のシステム リソースを消費することなく実行できるため、ローエンド デバイスや SOC デバイスに導入するのに最適です。

Linux カーネルにロードされた Wireguard を表示する端末。

最後に、Wireguard は最新の暗号化標準と開発手法も活用しています。また、複数の正式な検証も実施されており、Wireguard のコードの正確性、セキュリティの保証、攻撃への耐性が確認されています。

Wireguardの入手

Linux で Wireguard をセットアップする最初のステップは、ディストリビューションのリポジトリからコア ツールをダウンロードすることです。これにより、ユーザー空間コマンドを使用して組み込みの Wireguard カーネル モジュールを制御できるようになります。

Ubuntu および Debian にコア ツールをインストールするには、次のコマンドを実行します。

Fedora では、パッケージ マネージャーを使用できますdnf

Arch Linux の場合、次のコマンドを実行pacmanして Wireguard コア ツールを取得できます。

ヘルプ画面を読み込んで、Wireguard ツールが適切にインストールされていることを確認します。

Wireguard ユーザースペース ツールのヘルプ メニューを表示するターミナル。

Wireguardサーバーの設定

前提:この記事では、パブリックにアクセス可能な IPv4 アドレスを持つ Linux システムに Wireguard サーバーをインストールすることを前提としています。手順は NAT の背後にあるサーバーでも機能しますが、サブネット外のノードは見つかりません。

Linux マシンに Wireguard コア ツールキットをインストールすると、VPN のサーバー ノードを設定できます。これは、ネットワーク内のクライアント ノードのインターネット ゲートウェイとして機能します。

まず、Wireguard の設定ディレクトリに移動し、デフォルトの権限を「root のみ」に設定します。

Wireguard サーバーの公開キーと秘密キーを生成します。

お気に入りのテキスト エディターを使用して、サーバーの構成ファイルを作成します。

次のコード ブロックをサーバー構成ファイル内に貼り付けます。

新しいターミナル セッションを開き、サーバーの Wireguard 秘密キーを印刷します。

サーバーの秘密鍵をクリップボードにコピーします。

Ubuntu 上でサーバーの秘密鍵をコピーするプロセスを示すターミナル。

変数の値をPrivateKeyクリップボード上のキーに置き換えます。

サーバーの Wireguard 構成内のサーバー秘密鍵を表示する端末。

次のコマンドを使用して、インターネットにアクセスできるネットワーク インターフェイスを見つけますip

インターネットにアクセスできるネットワーク インターフェイスの名前を強調表示する端末。

-o両方のフラグPostUpと変数の値をPostDownインターネット アクセスのあるインターフェイスに設定し、構成ファイルを保存します。

Wireguard サーバーの設定ファイル内の適切なデバイス名を表示する端末。

お好みのテキスト エディターを使用して、サーバーの「/etc/sysctl.conf」ファイルを開きます。

を含む行までスクロールしnet.ipv4.ip_forward=1、その前のポンド記号 (#) を削除します。

sysctl.conf 内の IPv4 転送オプションの場所を強調表示する端末。

次のコマンドを実行して、新しい sysctl 構成を再ロードしますsudo sysctl -p

sysctl.conf ファイルを再ロードするプロセスを示す端末。

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

この時点で、ピアのない適切に構成された Wireguard サーバーができました。これを使用するには、最初の Wireguard クライアントをセットアップして接続する必要があります。

クライアント システムの Wireguard 構成ディレクトリに移動し、デフォルトの権限を設定します。

次のコマンドを使用して、クライアントの Wireguard キーペアを生成します。

お気に入りのテキスト エディターを使用して、クライアントの Wireguard 構成ファイルを作成します。

次のコード ブロックをクライアント構成ファイル内に貼り付けます。

PrivateKey変数をクライアントの秘密鍵に置き換えます。

最初の Wireguard クライアントの秘密鍵を強調表示する端末。

Wireguard サーバーのターミナル セッションを開き、公開キーを印刷します。

変数の値をPublicKeyサーバーの公開鍵に設定します。

2 番目のクライアントの設定ファイル内の Wireguard サーバーの公開キーを強調表示する端末。

Endpoint変数を Wireguard サーバーの IP アドレスに変更します。

Wireguard サーバーの IP アドレスを強調表示する端末。

設定ファイルを保存し、次のwg-quickコマンドを使用して Wireguard クライアントを起動します。

Wireguard クライアント デーモンの起動プロセスを示す端末。

Wireguardサーバーをクライアントにリンクする

Wireguard サーバーのターミナル セッションに移動し、その構成ファイルを開きます。

セクションの後に次のコード ブロックを貼り付けます[Interface]

PublicKey変数を Wireguard クライアントの公開キーに設定します。

[Peer] ブロックの場所を表示し、クライアントの公開鍵を強調表示している端末。

設定ファイルを保存し、次のコマンドを実行してサーバー上で Wireguard サービスを開始します。

サーバーに2番目のクライアントを追加する

すべての VPN サービスに共通する重要な機能の 1 つは、異なるネットワークの複数のマシンをリンクできることです。これは、複数の場所にコンピューターがある場合や、友人のためにプライベート ゲーム サーバーをホストする場合に便利です。

Wireguard でこれを行うには、サーバー上に新しい VPN インターフェイス用の設定ファイルを作成する必要があります。これを行う最も簡単な方法は、現在のサーバー設定をコピーし、そのコピーに新しい名前を付けることです。

お気に入りのテキスト エディターを使用して新しい構成ファイルを開きます。

変数を 60102 に設定しますListenPort。これにより、wg0 と wg1 VPN インターフェイス間のポート衝突が防止されます。

2 番目の Wireguard インターフェイスの変更された ListenPort 変数を強調表示する端末。

セクションに移動し[Peer]AllowedIPs変数を「10.0.0.2/32」から「10.0.0.3/32」に変更して、設定ファイルを保存します。

2 番目の Wireguard クライアントの変更された AllowedIPs 変数を強調表示するターミナル。

2番目のWireguardクライアントの設定

2 台目のマシンにログインし、Wireguard 構成ディレクトリを準備します。

次のコマンドを使用して、新しい Wireguard キーペアを生成します。

お気に入りのテキスト エディターを使用して新しい構成ファイルを作成します。

新しい設定ファイル内に次のコード ブロックを貼り付けます。

PrivateKey変数を 2 番目のマシンの秘密キーに設定し、PublicKey変数をサーバーの公開キーに変更します。

2 番目のクライアントの秘密鍵と Wireguard サーバーの公開鍵を強調表示した端末。

Endpoint 変数を、サーバーの IP アドレスに置き換え、その後に「:60102」を付けます。

2 番目のクライアントの設定で Wireguard サーバーの IP アドレスを強調表示する端末。

設定ファイルを保存し、2 台目のマシンの Wireguard クライアントを起動します。

2番目のクライアントをWireguardサーバーにリンクする

Wireguard サーバーに再度ログインし、2 番目のクライアントの VPN インターフェイス設定を開きます。

セクションまで下にスクロールし[Peer]PublicKey変数を 2 番目のクライアントの公開キーに置き換えます。

サーバーの wg1 構成ファイル内の 2 番目のクライアントの公開キーを強調表示する端末。

設定ファイルを保存し、wg-quick コマンドを使用して 2 番目の VPN インターフェイスを起動します。

を実行して、最初の Wireguard クライアントと 2 番目の Wireguard クライアントがサーバー上に正しく表示されていることを確認しますwg

Wireguard サーバーと通信している 2 つのクライアント ノードを表示する端末。

Wireguardネットワークのテスト

サーバーとクライアントの両方が Wireguard ネットワーク上にあるため、ノード間の接続性と遅延をテストできます。これを行うには、システムにネットワーク診断ツールがインストールされていることを確認してください。

curlFedora では、ネットワーク ツールがすでに付属しているため、インストールするだけで済みます。

pacmanArch Linux の場合、ネットワーク ツールをインストールするために以下を使用できますcurl

まず、2 つのクライアント間のパケットのルートを追跡します。次の図は、IP パケットが「10.0.0.2」から「10.0.0.3」に移動する様子を示しています。

2 つの Wireguard ノード間の traceroute コマンドが成功したことを示す端末。

共通 IP アドレスに ping を実行して、いずれかのノードがパブリック インターネットにアクセスできるかどうかを確認します。

Wireguard ネットワークから外部サイトまでの遅延を示す端末。

最後に、ノードが Wireguard サーバーと同じパブリック IP アドレスを共有していることを確認します。

3 つの Wireguard ノード間で類似する外部 IP アドレスを強調表示する端末。

Linux で Wireguard ネットワークを設定する方法を学ぶことは、魅力的な VPN の世界を探索するための第一歩です。詳しく調べて、現在入手できるセキュリティ重視の最高の VPN プロバイダーのおすすめをご覧ください。

画像クレジット: Kari Shea、UnsplashおよびWikimedia Commons経由。すべての変更とスクリーンショットは Ramces Red によるものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です