仮想マシンをインターネットに接続する通常のアプローチは、他のデバイスをネットワークに接続することに似ており、仮想またはprobrosの実際のネットワークインターフェイスを接続すること、およびネットワーク接続、サービス、ルーティングルール、フィルタリングトラフィックなどを設定および確認することで構成されます。
仮想マシンがサーバーまたは仮想デスクトップで特定のユーザーに割り当てられている場合、このアプローチは完全に正当化されますが、仮想マシンがパブリック仮想デスクトップであり、誰でも無料で接続できる場合はどうでしょうか?
仮想マシンのインターネットがホスト側からではなく、クライアント側から起動することを確認する必要があります。
仮想マシンをクライアントのインターネットチャネルに接続すると、次のことが可能になります。
- ネットワークエミュレーションとネットワークインターフェイスの計算負荷を軽減します。
- インターネットおよび仮想ネットワークから仮想マシンに対するハッカー攻撃の可能性を排除します。
- 次の場合に、仮想マシンユーザーのアクションに対するホスト管理者の責任を軽減します。
- スパム
- 違法/禁止コンテンツのダウンロード/公開、
- ホスティング管理者、第三者のインターネットリソースに対するハッキングまたはハッキング攻撃、
- マイニング
- などなど...
- インターネット仮想マシンへのアクセスを確認および構成する時間を短縮します
クライアントからインターネットを取得する最も簡単な方法は、USBネットワークアダプターまたはモデムを転送することです。 しかし、この方法ではネットワークの品質が非常に要求されます。 仮想マシンが海外にある場合、遅延やハングが発生する可能性があります。
USBデバイスを転送する代わりに、SSHのポートトンネリングに似た、SPICEチャネルを介したクライアントと仮想マシン間のポートトンネリングが可能です。
QEMU仮想マシンには、クライアントから仮想マシンにデータを送信するためのチャネル、いわゆるSPICEチャネルがあります。 このチャネルは、入力デバイスのデータ、クリップボードのコンテンツなどを転送します。
理論的には、ローカルクライアントポート(IPアドレス127.0.0.1)を仮想マシンに転送し、ローカルとして配置できます。
ポートトンネリングを介してクライアントのインターネットチャネルに接続するためのアルゴリズムの例:
- クライアント側では、ネットワークへのアクセスを提供するプロキシサーバーまたはVPNサーバーを上げることができます。
- 仮想マシン内のプロキシサーバーまたはVPNサーバーのポートがローカルポートのように見えるように、ポートトンネリングはSPICEクライアントで構成されます。
- オペレーティングシステムおよびブラウザーでは、ローカルポートを介してプロキシサーバーに接続するようにローカルプロキシサブシステムが構成されているか、ローカルホスト上のVPNサーバーに接続して仮想ネットワークデバイスをエミュレートするVPNクライアントが構成されています(OpenVPNの場合は調整またはタップ)。
実装
ポートトンネリングを実現するためにやるべきことは、SPICEクライアントとSPICEゲストアドオンのソースコードを調整し、パッチを作成して開発者に送信することだけです。 SPICEのソースコードが開いているため、これはすべて可能です。
さらに、SPICE開発者との交渉中に、そのような機能がSPICEのFlexVDIフォークに実装されていることが判明しました。 フォークのソースコードは、リポジトリ[ https://github.com/flexvdi ]で部分的に公開されており、トンネリングの原因となるフラグメントがあると彼らは言います。
会話の記録は、 Spice-develメーリングチャネルで利用できますトピックは、 機能の提案:spice-channelを介したVMとクライアント間のポートトンネリングです。
応用分野
このテクノロジーは、デモおよびパブリック仮想マシン、および通常のVDIホスティングで広く使用できます。
誰かがこの機能の実装を支援したい場合は、この機能を実装してパッチを作成できます。コメントや提案がある場合は、コメントを残すことができます。