P1.5Pオーバーレイネットワーク構築システム「Nebula 2」リリース

Nebula 1.5 プロジェクトのリリースが利用可能になり、安全なオーバーレイ ネットワークを構築するためのツールが提供されます。 このネットワークは、さまざまなプロバイダーがホストする地理的に離れた数から数万のホストを統合し、グローバル ネットワーク上に別個の隔離されたネットワークを形成できます。 このプロジェクトは Go で書かれており、MIT ライセンスに基づいて配布されています。 このプロジェクトは、同名の企業メッセンジャーを開発する Slack によって設立されました。 Linux、FreeBSD、macOS、Windows、iOS、Android をサポートします。

Nebula ネットワーク上のノードは P2P モードで相互に直接通信します。ノード間でデータを転送する必要があると、直接 VPN 接続が動的に作成されます。 ネットワーク上の各ホストの身元はデジタル証明書によって確認され、ネットワークへの接続には認証が必要です。各ユーザーは、Nebula ネットワーク内の IP アドレス、名前、ホスト グループのメンバーシップを確認する証明書を受け取ります。 証明書は内部認証局によって署名され、ネットワーク作成者によってその施設に展開され、オーバーレイ ネットワークに接続する権利を持つホストの認証局を認証するために使用されます。

認証された安全な通信チャネルを作成するために、Nebula は Diffie-Hellman 鍵交換プロトコルと AES-256-GCM 暗号に基づく独自のトンネル プロトコルを使用します。 プロトコルの実装は、WireGuard、Lightning、I2P などのプロジェクトでも使用される、Noise フレームワークによって提供される既製の実績のあるプリミティブに基づいています。 このプロジェクトは独立したセキュリティ監査を受けていると言われています。

他のノードを検出し、ネットワークへの接続を調整するために、特別な「灯台」ノードが作成されます。そのグローバル IP アドレスは固定されており、ネットワーク参加者に知られています。 参加ノードは外部 IP アドレスにバインドされておらず、証明書によって識別されます。 ホスト所有者は署名付き証明書を自分で変更することはできず、従来の IP ネットワークとは異なり、IP アドレスを変更するだけで別のホストになりすますこともできません。 トンネルが作成されると、ホストの ID が個々の秘密キーで検証されます。

作成されたネットワークには、一定範囲のイントラネット アドレス (たとえば、192.168.10.0/24) が割り当てられ、内部アドレスはホスト証明書に関連付けられます。 グループは、オーバーレイ ネットワーク内の参加者から、たとえば個別のサーバーとワークステーションに形成され、個別のトラフィック フィルタリング ルールが適用されます。 アドレス変換器 (NAT) とファイアウォールをバイパスするためのさまざまなメカニズムが提供されています。 Nebula ネットワークの一部ではないサードパーティ ホストからのトラフィックのオーバーレイ ネットワークを介したルーティングを組織することができます (安全でないルート)。

Nebula オーバーレイ ネットワーク内のノード間のアクセスを分離し、トラフィックをフィルタリングするファイアウォールの作成をサポートします。 タグ バインディングを持つ ACL はフィルタリングに使用されます。 ネットワーク上の各ホストは、ホスト、グループ、プロトコル、およびネットワーク ポートに基づいて独自のフィルタリング ルールを定義できます。 この場合、ホストは IP アドレスではなく、デジタル署名されたホスト識別子によってフィルタリングされます。この識別子は、ネットワークを調整する認証センターを侵害することなく偽造することはできません。

新しいリリースでは:

  • 証明書の PEM 表現を印刷するために、print-cert コマンドに「-raw」フラグが追加されました。
  • 新しい Linux アーキテクチャ riscv64 のサポートが追加されました。
  • 許可されたホストのリストを特定のサブネットにバインドするための実験的なremote_allow_ranges設定を追加しました。
  • 信頼の終了または証明書の有効期限が切れた後にトンネルをリセットするための pki.disconnect_invalid オプションを追加しました。
  • unsafe_routes オプションを追加しました。 .metric を使用して、特定の外部ルートに重みを割り当てます。

出所: オープンネット.ru

コメントを追加します