OpenVPNサーバーは、クライアント間でデータを転送するときにデータを復号化して再暗号化しますか?

OpenVPNサーバーは、クライアント間でデータを転送するときにデータを復号化して再暗号化しますか?

私たちは12ノードで構成されたクラスタを作成し、100%のセキュリティを必要とする各コンピュータ間の多くの通信にOpenVPNを使用しようとしています(100%のセキュリティ/プライベート環境にアクセスできないため、OpenVPNを使用する必要があります)。

したがって、次の設定があります。

             +------------------+
             |                  |
             |  OpenVPN Server  |
             |                  |
             +------------------+
                      ^
                      |
                +-----+------+----------------+----------+
                |            |                .          |
                |            |                .          |
                v            v                .          v
+------------------+  +------------------+  .....  +------------------+
|                  |  |                  |  .   .  |                  |
|  OpenVPN Client  |  |  OpenVPN Client  |  .   .  |  OpenVPN Client  |
|               A  |  |               B  |  .   .  |               n  |
+------------------+  +------------------+  .....  +------------------+

OpenVPNサーバーは12台のコンピュータの1つであり、クライアントが他のクライアントと通信するたびに動作が停止することを発見しました。ファイアウォール情報を見ると、クライアントが互いに通信していないことが明らかになります。代わりに、すべてのデータはサーバーに送信され、別のクライアントに転送されます。つまり、クライアントAからクライアントBへの転送がAからサーバーへ、そしてサーバーからBに進むのがわかります。

私が知りたいことは:

AはBにデータを送信するたびにBの公開鍵を取得しますか? OpenVPNクライアントコードがデータがBに送信されていることを知る必要があるためではないようです。したがって、私が正しく理解した場合、何が起こっているのかは次のとおりです。

  1. クライアントAはサーバーの公開鍵を使用してデータを暗号化します。
  2. クライアントAは暗号化されたBLOBをサーバーに送信します。
  3. サーバーは秘密鍵を使用してBLOBを復号化します。
  4. サーバーは、BLOBを渡す場所を決定します。
  5. サーバは、クライアントBの公開鍵を使用してデータを再暗号化する。
  6. サーバーは、新しく暗号化されたBLOBをクライアントに送信します。
  7. クライアントBは秘密鍵を使用してBLOBを復号化します。

つまり、実際には次のようになります。

             +------------------+
             |                  |
             |  OpenVPN Server  |<-----------------------+
             |                  |                        |
             +------------------+                        |
                ^       ^    ^                           |
                |       |    .                           |
                |       |    .                           |
                |       |    ..................          |
                |       |                     .          |
                v       v                     v          v
+------------------+  +------------------+  .....  +------------------+
|                  |  |                  |  .   .  |                  |
|  OpenVPN Client  |  |  OpenVPN Client  |  .   .  |  OpenVPN Client  |
|               A  |  |               B  |  .   .  |               n  |
+------------------+  +------------------+  .....  +------------------+

そうですか?ドキュメントで似たようなものを見つけようとしましたが、OpenVPNをインストールする方法についてのみ見つけることができました。 (私たちはやったし、効果がありましたが、かなり遅いようです!予想よりはるかに遅かったです。)

ベストアンサー1

あなたは正しいです。設定には、クライアントとサーバーの間に「サイト間」VPNセットがあります。クライアント間の通信はサーバー上で行う必要があります。

実際、デフォルトでは、クライアントはサーバーが許可しない限りお互いを見ることはできません。マンページから:

   --client-to-client
          Because the OpenVPN server mode handles multiple clients through
          a  single tun or tap interface, it is effectively a router.  The
          --client-to-client  flag  tells  OpenVPN  to  internally   route
          client-to-client  traffic  rather than pushing all client-origi-
          nating traffic to the TUN/TAP interface.

          When this option is used,  each  client  will  "see"  the  other
          clients  which  are currently connected.  Otherwise, each client
          will only see the server.  Don't use this option if you want  to
          firewall tunnel traffic using custom, per-client rules.

おすすめ記事