第8章 WireGuard VPN の設定

WireGuard は、Linux カーネルで実行する高パフォーマンスの VPN ソリューションです。最新の暗号を使用し、他の多くの VPN ソリューションよりも簡単に設定できます。さらに、WireGuard のコードベースが小さくなり、攻撃の影響が減るため、セキュリティーが向上します。認証および暗号化には、WireGuard が SSH と同様の鍵を使用します。

重要

WireGuard はテクノロジープレビューとしてのみ提供されます。テクノロジープレビュー機能は、Red Hat 製品サポートのサービスレベルアグリーメント (SLA) ではサポートされておらず、機能的に完全ではない可能性があるため、Red Hat では実稼働環境での使用を推奨していません。テクノロジープレビュー機能では、最新の製品機能をいち早く提供します。これにより、お客様は開発段階で機能をテストし、フィードバックを提供できます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの テクノロジープレビュー機能のサポート範囲 を参照してください。

WireGuard VPN に参加するすべてのホストがピアであることに注意してください。このドキュメントでは、接続を確立するホストを説明する client という用語と、クライアントが接続する固定ホスト名または IP アドレスを使用してホストを説明する server という用語を使用し、必要に応じてすべてのトラフィックをこのサーバーにルーティングします。

WireGuard VPN を設定するには、次の手順を完了する必要があります。さまざまなオプションを使用して、ほとんどの手順を実行できます。

  1. VPN 内のすべてのホストに公開鍵と秘密鍵を作成します
  2. nmclinmtuinm-connection-editor、または、wg-quick サービスを使用して、WireGuard サーバーを設定します。
  3. コマンドライン または グラフィカルインターフェイス を使用して、WireGuard サーバーで firewalld を設定します。
  4. nmclinm-connection-editor、または wg-quick を使用して、WireGuard クライアントを設定します。

WireGuard は、ネットワーク層 (レイヤー 3) で動作します。そのため、DHCP を使用できず、静的 IP アドレスまたは IPv6 リンクローカルアドレスを、サーバーとクライアントの両方のトンネルデバイスに割り当てる必要があります。

重要

WireGuard は、RHEL の FIPS (Federal Information Processing Standard) モードが無効になっている場合にのみ使用できます。

8.1. WireGuard が使用するプロトコルおよびプリミティブ

WireGuard は、次のプロトコルおよびプリミティブを使用します。

  • RFC7539 で説明されているように Authenticated Encryption with Associated Data (AEAD) 構造を使用して、Poly1305 で認証された対称暗号化用の ChaCha20
  • Elliptic-curve Diffie–Hellman (ECDH) 鍵交換用の Curve25519
  • RFC7693 で説明されているように、ハッシュ用および鍵付きのハッシュ用の BLAKE2
  • ハッシュテーブルキーの SipHash24
  • RFC5869 で説明されているように、鍵の派生に使用される HKDF