設定 - VPNサーバ

提供:MochiuWiki - SUSE, Electronic Circuit, PCB
2023年8月21日 (月) 11:34時点におけるWiki (トーク | 投稿記録)による版 (→‎VPNサーバの構築 (BPHの使用))
ナビゲーションに移動 検索に移動

概要



WireGuard

WireGuardは、IPv4およびIPv6接続をサポートする軽量のVPNである。

VPNは、信頼されていないネットワークをプライベートネットワークであるかのように通過することができる。
また、Tailscaleの仕組みと同様に、SSHや他の機密ポートをオープンにしておく必要がないように、自社のインフラにアクセスするためにVPNを導入したいと思うかもしれない。

WireGuardの暗号化は、ピア同士が暗号化されたトンネルを確立するための公開鍵と秘密鍵に依存している。
WireGuardの各バージョンでは、シンプルさ、セキュリティ、ピアとの互換性を確保するために、特定の暗号スイートが使用されている。

それに比べて、OpenVPNやIPSec等の他のVPNソフトウェアは、TLS(Transport Layer Security)と証明書を使用して、システム間の認証と暗号化トンネルの確立を行う。
TLSのバージョンが異なると、何百種類もの暗号スイートやアルゴリズムがサポートされるため、様々なクライアントに柔軟に対応できる反面、TLSを使用したVPNの設定に時間がかかり、複雑で、エラーが起こりやすくなる。


VPNサーバの構築 (BPHの使用)

BPHの概要

しかし、Netflixやその他のストリーミングサービスのブロックを解除する場合、VPSを使用してもVPNの使用が検出される可能性が高いため、うまくいかない場合がある。
また、Torrentの利用にはセキュリティの強化が必要なため、VPSの利用は推奨しない。

VPSとOutlineというソフトウェアを使用して、Shadowsocksプロトコルをセットアップした方がよい。

BPHサービス企業

BPH(防弾ホスティング)のVPS


構築 ステップ1 : WireGuardのインストールとキーペアの生成

Debian 11上でWireGuardをセットアップして、IPv4とIPv6の両方の接続(一般にデュアルスタック接続と呼ばれる)を使用して、ピアとして接続するように別のデバイスを設定する。
また、暗号化されたP2PトンネルにVPNを使用するだけでなく、ゲートウェイ構成でピアのインターネットトラフィックをWireGuardサーバー経由でルーティングする方法も記載する。

ここでは、Debian 11をWireGuardサーバのピア(クライアントとも呼ばれる)として設定する。

まず、WireGuardをサーバにインストールする。

sudo apt update
sudo apt install wireguard


次に、WireGuardサーバ用の秘密鍵と公開鍵のペアを生成する。
組み込みのwg genkeyおよびwg pubkeyコマンドを使用して鍵を作成して、秘密鍵をWireGuardの設定ファイルに追加する。
<bt> また、chmodコマンドを使用して、作成した鍵のパーミッションを変更する必要がある。
(chmod go=コマンドは、ルートユーザだけが秘密鍵にアクセスできるように、ルートユーザ以外のユーザやグループのファイルのパーミッションを削除している。)

wg genkey | sudo tee /etc/wireguard/private.key
sudo chmod go= /etc/wireguard/private.key


base64エンコードされた1行を出力する。これが秘密鍵である。
この出力は、/etc/wireguard/private.keyファイルにも保存されている。
出力された秘密鍵は、WireGuardの設定ファイルに追加する必要があるため、覚えておく必要がある。

次に、秘密鍵から派生する対応する公開鍵を作成する。

  1. 最初のコマンドは、秘密鍵ファイルを読み込み、標準出力ストリームに出力する。
  2. 2番目のコマンドは、最初のコマンドの出力を標準入力として受け取り、それを処理して公開鍵を生成する。
  3. 最後のコマンドは、公開鍵生成コマンドの出力を受け取り、/etc/wireguard/public.keyファイルにリダイレクトする。
sudo cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key


上記のコマンドを実行すると、Base64エンコードされた出力が1行表示される。
この公開鍵は、WireGuardサーバに接続するピアに配布する必要があるため、参照用にどこかにコピーする必要がある。

構築 ステップ2 : IPv4 および IPv6 アドレスの選択

上記のセクションでは、WireGuardをインストールし、サーバとの間のトラフィックを暗号化するために使用するキーペアを生成した。

このセクションでは、WireGuardサーバ用の設定ファイルを作成して、WireGuardサーバの再起動時にWireGuardが自動的に起動するように設定する。
また、WireGuardサーバとピアで使用するプライベートIPv4アドレスとIPv6アドレスを定義する。

IPv4アドレスとIPv6アドレスの両方を使用する場合は、このセクションの両方に従う必要がある。

IPv4を使用する

WireGuardサーバをIPv4ピアで使用する場合、サーバには、クライアントおよびトンネルインターフェースに使用するプライベートIPv4アドレスの範囲が必要である。
以下の予約済みアドレスブロックから、任意の範囲のIPアドレスを選択できる。

  • 10.0.0.0 ~ 10.255.255.255 (10/8 プレフィックス)
  • 172.16.0.0~172.31.255.255 (172.16/12プレフィックス)
  • 192.168.0.0〜192.168.255.255 (192.168/16プレフィックス)


ここでは、予約IPの最初の範囲からIPアドレスのブロックとして、10.8.0.0/24を使用する。
この範囲は最大255の異なるピア接続を許可して、一般的に他のプライベートIP範囲と重複または競合するアドレスを持つべきではない。
この例の範囲がユーザのネットワークに適合しない場合は、ユーザのネットワーク構成に適合するアドレス範囲を自由に選択する。

WireGuardサーバは、プライベートトンネルIPv4アドレスとして、この範囲から1つのIPアドレスを使用する。
ここでは、10.8.0.1/24を使用するが、10.8.0.1~10.8.0.255の範囲であればどのアドレスでも使用できる。
10.8.0.1/24と異なるものを使用する場合は、選択したIPアドレスを覚えておくこと。

このIPv4アドレスは、次のセクションで定義する設定ファイルに追加する。

IPv6を使用する