Open Source im professionellen Einsatz

© bruzzomont, photocase.com

Perl-Skript hält den PC mit virtuellen Maschinen spurenfrei sauber

Frischmacher

Eine Virtualbox-Installation fährt Schnappschüsse virtueller Maschinen in Sekundenschnelle von der Kommandozeile hoch und hilft dem vorsichtigen Nutzer, beim Browsen die Privatsphäre zu wahren und Perl-Module durch einen Smoketest zu schicken.

Wer ständig neue Linux-Distributionen ausprobiert, der bedient Virtualisierer wie VMware, KVM, Xen oder Virtualbox wahrscheinlich im Schlaf. Auch Programmierer, die Code für unterschiedliche Linux-Versionen oder – Gott bewahre! – Microsoft Windows entwickeln, schätzen lokal verfügbare virtuelle Maschinen für schnelle Tests. Das Virtualisierungspaket Virtualbox [2] ist einfach mittels eines ansprechenden GUI (Abbildung 1) zu bedienen und bequem als Ubuntu-Paket unter der GPLv2-Lizenz verfügbar.

Abbildung 1: Virtualbox mit einigen Ubuntu- und Windows-Versionen als Gastsysteme.

Abbildung 1: Virtualbox mit einigen Ubuntu- und Windows-Versionen als Gastsysteme.

Gästeliste

Mit Hilfe von Installations-CDs, DVDs oder ISO-Dateien legt der User im Virtualisierer schnell eine Handvoll Gastsysteme an, die auf Knopfdruck in eigenen Fenstern hochfahren.

Die Steuerung der Maus im Gastsystem bedarf einer kurzen Gewöhnungsphase, denn hat das Gastsystem einmal den Mausfokus, gibt es ihn nicht mehr her, der Mauszeiger eckt an den Grenzen des Gastsystemfensters an. Um den Fokus des virtuellen Systems zu verlassen, drückt der User eine bestimmte Taste (voreingestellt ist die rechte [Alt]-Taste), woraufhin der Mauszeiger wieder auf dem heimischen Desktop weilt.

Dank der effizienten Technik für Schnappschüsse frieren virtuelle Maschinen Zustände rasch ein und stellen sie später in wenigen Sekunden wieder her. So können Websurfer eine frisch erzeugte Ubuntu-Installation mit offenem Browser für peinliche Webrecherchen nutzen: Was Google über seine Nutzer weiß, kommt immer dann erschreckend zutage, wenn der User einen Suchbegriff eingibt und die Autocomplete-Funktion Vervollständigungen vornimmt (Abbildung 2). Niemand möchte daran erinnert werden, dass er vor einigen Tagen etwa nach "Fußpilz" gesucht hat, ganz zu schweigen vom Einfluss des Suchbegriffs auf das Langzeit-Targeting von Googles personalisierter Werbemaschine.

Abbildung 2: Diesen peinlichen Suchbegriff vergisst der Browser beim nächsten Hochfahren der VM.

Der paranoide Pinguinfreund möchte weder die ausgestellten Cookies länger als nötig behalten noch irgendwelche Spuren in der Browserhistory hinterlassen. Da er nicht genau weiß, was der Browser hinter seinem Rücken alles an Caching und sonstiger Datenspeicherei betreibt, liegt es nahe, für sensitive Suchanfragen blitzschnell eine virtuelle Maschine mit eingabebereitem Browser hochzufahren, die Suche durchzuführen und gleich darauf die VM wieder in ihren Ausgangszustand zurückzuversetzen.

Das Verfahren ist zwar nicht hundertprozentig wasserdicht, James Bond könnte auf meiner virtuellen Festplatte wohl noch Datenschnipsel finden und auch die IP-Adresse des verwendeten Routers taucht in den Google-Logs auf, aber es legt die Latte merklich höher. Wer mehr Privatsphäre wünscht, sollte Tor bemühen und die VM-Festplatte nach Gebrauch mit »shred« zerstören.

Kurz nach der Linux-Installation von der DVD öffnet der auf seine Privatsphäre bedachte User also im nagelneuen Gastsystem den Firefox-Browser und zieht vom aktuellen Zustand der VM einen Snapshot (Abbildung 3). Nach Abschluss der geheimen Mission fährt er die VM mit »stop« im »poweroff« -Modus herunter und stellt via Restore-Funktion des Virtualbox-Snapshot-Menüs den ursprünglichen Zustand wieder her. Beim nächsten Hochfahren steht wieder ein offener Browser bereit, der sich an nichts mehr erinnert, ganz so, als wäre ein Zeitsprung in die Vergangenheit erfolgt.

Abbildung 3: Im neuen Gastsystem zieht der User einen Schnappschuss per Klick ins Menü.

Automatisch als Kommando

Statt für jede Recherche das Virtualbox-GUI hochzufahren und in dessen Menüs herumzuklicken, bietet sich ein Perl-Skript an, das selbstständig die VM auswählt und hochfährt. Nach getaner Arbeit drückt der User im Skript die [Enter]-Taste, die VM fährt herunter und der Startzustand ist wiederhergestellt. Mit dem Programm »VBoxManage« liefert Virtualbox eine Komplettsteuerung von der Kommandozeile.

Listing 1 zeigt das Perl-Skript, das die VM namens »Ubuntu 10.04« und deren vorher manuell angelegten Snapshot »Browse« auswählt. Mit Hilfe des »tap« -Kommandos aus dem CPAN-Modul Sysadm::Install setzt es die Shellbefehle ab.

Listing 1

browse

01 #!/usr/local/bin/perl -w
02 use strict;
03 use Sysadm::Install qw(:all);
04 use Log::Log4perl qw(:easy);
05
06 Log::Log4perl->easy_init($DEBUG);
07
08 my $vbm = "VBoxManage";
09 my $vm  = "Ubuntu 10.04";
10
11 tap $vbm, "snapshot", $vm, "restore", "Browse";
12 tap $vbm, "startvm", $vm;
13
14 print "Press Enter for shutdown";
15 <STDIN>;
16
17 tap $vbm, "controlvm", $vm, "poweroff";
18 tap $vbm, "snapshot", $vm, "restore", "Browse";

Das Skript ließe sich wohl noch einfacher als Shellskript implementieren, aber erfahrene Perl-Programmierer wissen, dass es nur eine Frage der Zeit ist, bis ein Shellskript im Funktionsumfang so unüberschaubar anwächst, dass man es doch in Perl reimplementiert, weil es sonst nicht mehr zu warten ist.

Das Skript nutzt die beiden Unterkommandos »startvm« und »ctrlvm poweroff« von »VBoxManage« , um die VM herauf- und später auch wieder herunter zu fahren. Den Snapshot restauriert es sowohl am Anfang als auch am Ende des Skripts, um sicherzustellen, dass die virtuelle Maschine auch dann verlässlich im Initialzustand hochfährt, wenn jemand inzwischen in dem Snapshot-Menü des Virtualbox-GUI herumgefuhrwerkt hat.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook