Hallo,
ich habe mir mithilfe von VirtualBox eine virtuelle Maschine mit Ubuntu erstellt.
Dabei ist mir aufgefallen, dass ich einige grundsätzliche Verständnisfragen habe:
Aktivität: Ist eine virtuelle Maschine wirklich nur dann aktiv, wenn ich sie geöffnet habe? Kann ich mir das so vorstellen, dass eine deaktivierte Maschine wie ein ausgeschalteter Rechner ist. Also keine Daten abfließen oder auch keine Softwareangriffe möglich sind?
Sandbox-Charakter: Wie stark ist eine solche virtuelle Maschine vom Hauptsystem abgekoppelt bzw. inwieweit lässt sich das konfigurieren? Ist es möglich der Sandbox nur auf bestimmte Ordner oder bestimmte Dateitypen Zugriff zu gewähren? Wo und in welcher Form speichert die virtuelle Maschine eigentlich Ihre Daten? Kann ich darauf vom Hauptsystem aus normal zugreifen?
Netzwerkzugriff: Ist standardmäßig der Netzwerkzugriff verboten oder erlaubt? Brauche ich also für jede virtuelle Maschine eine seperate Firewall aufseiten des Endgeräts?
Ressourcenverbrauch: Bei der Konfiguration weißt man der Maschine gewisse Ressourcen wie Prozessorleistung zu. Gibt es Richtwerte wieviel für eine Linux-Distro/Windows nötig ist? Werden diese Ressourcen dauerhaft in Anspruch genommen oder nur während die Maschine läuft?
So wie ich das verstanden habe sind die Apps auf modernen Handy alle gesandboxt auf Android+iOs während auf Windows/Linux grundsätzlich jedes Programm auf alles Zugriff hat. Warum ist es so schwer, dass für Computersystem ebenfalls zu erreichen? Wieviel sicherer wären Computersystem wenn das gelänge? Kann man daraus dann schlussfolgern, dass z.B. GrapheneOS sicherer als jede Linux-Distro ist oder sind die Betriebssysteme für völlig verschiedene Nutzungen ausgelegt/optimiert?
Wenn ich diese Aspekte verstünde, dann erledigen sich damit auch viele meiner praktischen Fragen bezüglich der Einrichtung und Nutzung von virtuellen Maschinen. Es gibt schon das Tutorial Maximaler Datenschutz: Windows hinter einem Proxy betreiben, aber mit meinem aktuellen Verständnis kann ich überhaupt nicht einordnen was davon für mich relevant ist.
Danke für Eure Erklärungen und die großartige Community hier!
Da ich fast ausschließlich Hyper-V einsetze, musst Du selber die Doku wälzen, Anhaltspunkte trotzdem…
Nein, in der Regel musst Du die im Virtualisierer (aka Hypervisor) starten/stoppen oder in der VM gezielt herunterfahren.
Hängt vom Hypervisor ab. Virtualbox auf Windows hat zwei Modi, mit/ohne Hyper-V, und letztere ist m.W. besser in der Isolation.
VMs auf Hyper-V greifen nur per SMB auf das Dateisystem des Hosts zu. Wenn Virtualbox das auch anders macht halte ich das für problematisch, denn die Identitäten werden nur zufällig passen (z.B. wenn Host und VM beide Active Directory verwenden).
Da bieten alle Hypervisor mehrere Optionen an. Wenn Du eine Firewall willst, dann hilft meistens eine Einstellung NAT.
Hängt davon ab, was in der VM läuft. Mein Mailserver will so 10GB RAM, Active Directory 4GB RAM, der VPN Knoten läuft mit 0,5GB (alle Linux). Windowssysteme je nach Verwendung zwischen 1GB und 8GB.
Das war jetzt nur RAM, Disk ist selten ein Engpass. Die Anzahl der Kerne kannst Du auch zuordnen, ich verwende meist 2-4.
Weil viele APIs ältere Wurzeln haben als die Sandbox-Ideen. Aber wenn Du (kritische) Anwendungen auf mehrere VMs oder Container verteilst kommst Du in die gleiche Richtung.
Mach! Wenn Du es hinbekommst hast Du ein deutlich besseres Verständnis gewonnen..
Bei meinen Verständnisfragen hatte ich auch konkrete Anwendungsszenarien im Kopf:
Ein Programm läuft nicht, weil die Software scheinbar mitbekommt, dass mit Portmaster eine Firewall installiert ist. Bei Rethink-DNS hätte ich dann diesem Programm die universelle Umgehung der Firewall eingeräumt, kann ich sowas ähnliches mit einer VM erreichen?
Ist es möglich eine Linux-Distro in einer VM einzurichten und diese dann als iso-Datei abzuspeichern und auf einen anderen Rechner zu kopieren?
Macht es denn einen wesentlichen Unterschied welche VM-Software man einsetzt? Sind die kreuzkompatibel, sodass ich die VMs von einer Software zur nächsten transferieren kann? Virtualbox bietet einen Export als ‚Open Virtualisation Format‘ an.
Wo kann ich das denn einstellen? Was bedeutet es, wenn die VM mit/ohne Hyper-V läuft?
Das heißt ich kann mir im Prinzip auch 10 VMs einrichten, weil sie im ausgeschalteten Zustand nur Speicherplatz brauchen, oder?
Das Tutorial ist gut, hat aber eine etwas andere Zielsetzung und ist außerdem für mich recht kompliziert. Ich brauche eine VM, die Internetzugriff hat und dachte die Einrichtung ginge auch leichter. Ich habe jetzt ein NAT-Netzwerk in den Haupteinstellungen erzeugt. Was mache ich jetzt damit bzw. wo trage ich die IP-Adresse ein? Wird der Internetverkehr dann über den Host geleitet und unterliegt dessen Firewall/DNS-Einstellungen?
Es würde mir schon sehr helfen, wenn ich weiß, welcher Netzwerkmodus für meine Fälle nützlich sein könnte, sodass ich mich dann gezielt belesen kann.
Bei den Netzwerkmodi wird festgelelgt, wie das der VM bereitgestellte (virtuelle) Netzwerk ausgestaltet sein soll.
NAT bedeutet hier aus Sicht der VM das gleiche, wie für ein Gerat hinter einem normalen Router. VM hat dann also eine IP aus dem virtuellen Netzwerk (das von dem des Wirts verschieden ist). Das scheint mir das richtige für den angedeuteten Zweck zu sein.
Der zweite wichtige Modus ist Bridge. Hierbei erhält die VM eine IP aus dem Netz, in dem auch der Wirt ist. Die weiteren Modi dienen in erster Linie einer Beschränkung der Erreichbarkeit anderer Hosts im jeweiligen Netzwerk (kann VM a VM b im Netwerk sehen,…)
Aus Sicht des Wirts bzw. dessen Firewall, ist die VM ein Programm. Man kann deren Verbindungen von aussen beschränken.
Aus Sicht des Wirts ist die VM nur eine Datei und enthält das komplette Dateisystem. Daneben gibt es Konfigurationsdateien für die VM. Um die VM zu sichern, muss man lediglich die Image-Datei und nach jeder Änderung die Konfigurationsdateien sichern.
Ja, ich hatte auch gefunden, dass es verschiedene Netzwerkmodi gibt (https://www.virtualbox.org/manual/topics/networkingdetails.html#networkingdetails). Das ergibt soweit Sinn.
Auch, dass die VM für den Wirt nur ein Programm und fürs Dateiensystem eine Datei ist.
Aber kann ich einstellen, ob die VM an der Wirts-Firewall vorbei muss oder ist es nicht möglich das am Wirt komplett vorbeizuschleusen? Und das heißt auch, dass ich nur der VM im ganzen den Netzwerkzugriff erlauben/sperren kann, wenn ich einzelne Programme in der VM kontrollieren will muss ich dort eine Sub-Firewall installieren, korrekt?
Und noch eine Laienfrage zur Einrichtung: Als ich meine Ubuntu-VM gestartet habe, wurde ich gefragt die Distro zu installieren. Muss/sollte ich diese Installation vornehmen?
Ja, das meinte ich mit ein Programm (genauer wäre Anwendung gewesen). Wenn man Netzwerk in der VM filtern will, sollte man der VM einfach unbeschränkten Zugriff gewähren. Hat man NAT bei Konfiguration gewählt, gilt das ja nur für Zugriffe nach aussen.
Ja. Die Virtualisierungssoftware stellt einfach einen “nackten” Rechner anhand vorhergehender Definitionen bereit. Kann man beim Erzeugen z.B. Distribution angeben, so wird die Angabe lediglich dazu verwendet, geeignete Hardware für den genannten Zweck zu definieren. Installiert wird dabei noch nichts.