Client-Internet in einer QEMU-isolierten virtuellen Maschine mithilfe von Port-Tunneling über einen SPICE-Kanal

Der übliche Ansatz zum Verbinden einer virtuellen Maschine mit dem Internet ähnelt dem Verbinden eines anderen Geräts mit dem Netzwerk und besteht darin, eine virtuelle oder reale reale Netzwerkschnittstelle zu verbinden sowie Netzwerkverbindungen, Dienste, Routingregeln und das Filtern des Datenverkehrs usw. einzurichten und zu überprüfen.


Wenn die virtuelle Maschine ein Server oder ein virtueller Desktop ist und einem bestimmten Benutzer zugewiesen ist, ist dieser Ansatz völlig gerechtfertigt. Was ist jedoch, wenn die virtuelle Maschine ein öffentlicher virtueller Desktop ist und jeder kostenlos eine Verbindung dazu herstellen kann?


Es muss sichergestellt werden, dass das Internet in der virtuellen Maschine nicht von der Hostseite, sondern von der Clientseite aus gestartet wird.


Durch Verbinden einer virtuellen Maschine mit dem Internetkanal des Clients können Sie:


  • Reduzieren Sie den Rechenaufwand für Netzwerkemulation und Netzwerkschnittstelle.
  • Schließen Sie die Möglichkeit eines Hackerangriffs auf eine virtuelle Maschine aus dem Internet und dem virtuellen Netzwerk aus.
  • Entlasten Sie in den folgenden Fällen die Verantwortung des Hostadministrators für die Aktionen des Benutzers der virtuellen Maschine:
    • Spam
    • Illegale / verbotene Inhalte herunterladen / veröffentlichen,
    • Hacking oder Hacking-Angriff auf die Internet-Ressourcen des Hosting-Administrators, Dritter,
    • Bergbau
    • usw...
  • Reduzieren Sie die Zeit zum Überprüfen und Konfigurieren des Zugriffs auf die virtuelle Internetmaschine

Der einfachste Weg, um das Internet vom Client zu erhalten, besteht darin, den USB-Netzwerkadapter oder das USB-Modem weiterzuleiten. Diese Methode stellt jedoch hohe Anforderungen an die Qualität des Netzwerks. Wenn sich die virtuelle Maschine im Ausland befindet, ist es wahrscheinlich, dass es zu Verzögerungen und Einfrierungen kommt.


Eine Alternative zum Weiterleiten von USB-Geräten kann das Port-Tunneling zwischen dem Client und der virtuellen Maschine über den SPICE-Kanal sein, ähnlich wie das Port-Tunneling in SSH.


In virtuellen QEMU-Maschinen gibt es einen Kanal zum Übertragen von Daten vom Client zur virtuellen Maschine, den sogenannten SPICE-Kanal. Dieser Kanal überträgt Eingabegerätedaten, Inhalte der Zwischenablage und mehr.


Theoretisch können Sie die lokalen Client-Ports (IP-Adresse 127.0.0.1) an die virtuelle Maschine weiterleiten und als lokal anordnen.


Ein Beispielalgorithmus für die Verbindung zum Internetkanal eines Clients durch Port-Tunneling:


  • Auf der Clientseite können Sie einen Proxyserver oder einen VPN-Server einrichten, der den Zugriff auf das Netzwerk ermöglicht.
  • Im SPICE-Client ist das Port-Tunneling so konfiguriert, dass die Ports des Proxyservers oder VPN-Servers in der virtuellen Maschine wie lokale Ports aussehen.
  • Im Betriebssystem und im Browser ist ein lokales Proxy-Subsystem so konfiguriert, dass es über den lokalen Port eine Verbindung zum Proxyserver herstellt, oder es ist ein VPN-Client konfiguriert, der eine Verbindung zum VPN-Server auf dem lokalen Host herstellt und ein virtuelles Netzwerkgerät emuliert (bei OpenVPN optimieren oder tippen).

Implementierung


Alles, was getan werden muss, um das Port-Tunneling Wirklichkeit werden zu lassen, ist, den Quellcode des SPICE-Clients und der SPICE-Gast-Add-Ons zu optimieren, Patches zu erstellen und an die Entwickler zu senden. All dies ist möglich, weil der Quellcode für SPICE offen ist.


Darüber hinaus stellte sich bei Verhandlungen mit SPICE-Entwicklern heraus, dass diese Funktionalität in der FlexVDI- Gabel von SPICE implementiert wurde. Der Fork-Quellcode wird teilweise im Repository [ https://github.com/flexvdi ] veröffentlicht. Es heißt, es gibt ein Fragment, das für das Tunneln verantwortlich ist.


Die Aufzeichnung von Konversationen ist auf dem Mailing-Kanal von Spice-Devel verfügbar. Das Thema lautet " Funktionsvorschlag: Port-Tunneling zwischen VM und Client über Spice-Channel ".


Anwendungsgebiet


Diese Technologie kann häufig in Demonstrations- und öffentlichen virtuellen Maschinen sowie beim normalen VDI-Hosting eingesetzt werden.


Wenn jemand bei der Implementierung dieser Funktionalität helfen möchte, können Sie diese Funktionalität implementieren und Patches erstellen. Wenn Sie Kommentare und Vorschläge haben, können Sie Kommentare hinterlassen.

Source: https://habr.com/ru/post/de430592/


All Articles