- chalblog - https://blog.is-a-geek.org -

Virtualbox 3 mit Webinterface und RDP auf Ubuntu Server 10.04

Virtualbox 3 mit Webinterface und RDP auf Ubuntu Server 10.04 [1]Da das Wort “Servervirtualisierung” zur jetzigen Zeit in aller Munde zu sein scheint, habe ich mich ebenfalls einmal darauf gestürzt. Neben vielen Profilösungen gibt es auch eine große Bandbreite kostenloser Virtualisierungssoftware, welche den professionellen Virtualisierungsumgebungen in puncto Stabilität und Möglichkeiten um nichts nachstehen. Ich befasse mich in diesem Artikel mit der Installation von Virtualbox und der Einrichtung des Web-Interface dazu.

Installiert man ein Betriebssystem in einer virtuellen Hardwareumgebung bietet dies den Vorteil, dass man dieses ohne Anpassung der z.B. Treiber einfach auf die neue Hardware übertragen kann und sofort einsatzbereit ist. Weiters lassen sich dadurch in einem hohen Maß Kosten sparen, da nur eine Serverhardware benötigt wird und dessen Resourcen optimal genutzt werden können.

Nach langer Ausprobierphase verschiedenster Lösungen (Hyper-V, VMWare, Virtual PC …) habe ich mich nun für Virtualbox entschieden, da dies im Bereich halbprofessioneller Server die beste Alternative zu sein scheint und ein nettes Webinterface-Projekt dafür existiert.

Screenshots gibts am Ende des Artikels. Dieser Artikel beschreibt die Installation der Virtualbox Version 3. Für das Tutorial mit Virtualbox 4 klickt bitte hier [2].

Virtualbox Installation

Da wir RDP, also Fernzugriff ohne installierten Server auf dem Gastsystem nutzen wollen reicht Virtualbox OSE, welches in den Standardpaketquellen von Ubuntu vorhanden ist nicht aus.

Um die nicht Opensource-Version zu installieren fügen wir zusätzliche Paketquellen hinzu. Kopiert einfach den kompletten Befehl in die Konsole und bestätigt. Dadurch wird die Virtualbox-Source am Ende der “source.list” hinzugefügt.

sudo sh -c 'echo "# VirtualBox repository Lucid
deb http://download.virtualbox.org/virtualbox/debian lucid contrib" \
>> /etc/apt/sources.list'

Damit nicht jedes mal den GPG Error angezeigt wird fügen wir noch den Schlüssel hinzu.

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 98AB5139

Wir updaten die Paketliste und installieren Virtualbox 3.2.

sudo apt-get update && sudo apt-get install virtualbox-3.2

Da anders als bei VMWare die Guests nicht global sind, sondern dem Benutzer zugeordnet werden, der diese erstellt, legt man noch einen User “vbox” der Gruppe “vboxusers” für diesen Zweck an.

sudo groupadd -g vboxusers
sudo useradd -m vbox -g vboxusers

Und erstellen ein Passwort für diesen.

sudo passwd vbox

Will man die Maschinen nicht standardmässig im “home” Verzeichniss des Users “vbox” speichern kann man irgendwo einen Ordner erstellen, darf dann aber nicht vergessen für diesen User und die Gruppe volle Berechtigungen zu setzen.

“vboxwebsrv” als Service automatisch starten

Der “vboxwebsrv” wird bei der Installation mitgeliefert und dient zur Kommunikation vom Webinterface mit Virtualbox, daher muss dieser gestartet sein um ein funktionsfähiges phpVirtualbox zu erhalten.

Per Hand ist dies folgendermaßen möglich. Hier wird der Server mit dem User “vbox” und mit “-b” im Hintergrund gestartet.

su vbox -c '/usr/bin/vboxwebsrv -b –-host 127.0.0.1 –-port 18083'

Natürlich ist diese Methode immer etwas mühsam, deshalb lassen wir den Dienst beim Boot automatisch starten.

Als erstes wechseln wir in das Verzeichnis mit den Startscripts und laden dort das veränderte Vboxwebsrv-Script herunter, welches uns ermöglicht den Dienst mit einem bestimmten User zu starten.

cd /etc/init.d
sudo wget http://phpvirtualbox.googlecode.com/files/vboxwebsrv

Dann machen wir es ausführbar:

sudo chmod +x vboxwebsrv

Wir öffnen die Datei mit nano …

sudo nano vboxwebsrv

… und da wir es mit dem vorher erstellten User “vbox” starten wollen überprüfen wir ob folgende Informationen stimmen.

.
.
USER=vbox
.
.

Jetzt nur noch beim Boot starten lassen und man kann nach einem Neustart mit der Installation von phpVirtualbox fortfahren.

sudo update-rc.d vboxwebsrv defaults

phpVirtualbox Installation (Webinterface)

Voraussetzung für das Webinterface ist natürlich ein installierter Apache2 mit php. Solltet ihr diesen noch nicht installiert haben kann man das mit folgendem Befehl machen:

sudo apt-get install apache2-doc apache2-suexec php-pear \
php5-suhosin apache2-mpm-prefork apache2-utils apache2.2-bin \
apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 \
libaprutil1-ldap php5-common apache2 apache2-mpm-prefork \
apache2-utils apache2.2-bin apache2.2-common \
libapache2-mod-php5 libapr1 libaprutil1 \
libaprutil1-dbd-sqlite3 libaprutil1-ldap php5-common php5-mysql

Dann wechselt man in das Web-Verzeichnis des Ampache und lädt “phpVirtualbox” herunter.

cd /var/www

Downloaden des phpVirtualbox für Virtualbox 3.x:

sudo wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-0.5.zip

Das Archiv entpackt man nun und ändert den Ordnernamen auf etwas, das leichter zu merken und eingeben ist.

sudo unzip phpvirtualbox-*.zip
sudo rm phpvirtualbox-*.zip
sudo mv phpvirtualbox-* vbox

Als nächstes ändern wir die “config.php”.

sudo nano /var/www/vbox/config.php

In der Konfigurationsdatei geben wir den Benutzernamen und das Passwort des vorhin erstellten Users ein (vbox), speichern mit “Strg+O” und schließen nano mit “Strg+X”.

/* Username / Password for system user that runs VirutalBox */
var $username = 'vbox';
var $password = 'passwort';
var $location = 'http://localhost:18083/';

!Sicherheit!

Ist der Webserver von aussen erreichbar oder ist er in einem grösseren Netz integriert sollte man unbedingt darauf achten das Webinterface mit einem Passwort abzusichern.

Vorausgesetzt ihr habt die von mir vorgeschlagenen Verzeichnisse verwendet könnt ihr diese Befehle einfach kopieren und einfügen.

Als erstes erstellen wir uns das Verzeichniss für das Passwort-File ausserhalb des “www” Verzeichnisses:

sudo mkdir /etc/apache2/password/

Danach erstellen wir ein Passwortfile welches wir später verwenden wollen um uns anzumelden. Hier verwende ich “vbox” als User und -c bedeutet einfach dass wir dieses neu erstellen wollen. Drückt man “Enter” wird man noch zur Passworteingabe aufgefordert.

sudo htpasswd -c /etc/apache2/password/htpasswd.vbox vbox

Jetzt wollen wir diesen Benutzer und das Passwort über den gesamten Ordner “/var/www/vbox” verwenden. Dazu öffnen wir die Konfigurationsdatei von Apache

sudo nano /etc/apache2/apache2.conf

und fügen folgende Zeilen ganz am Ende ein.

<Directory /var/www/vbox>
AuthType Basic
AuthUserFile /etc/apache2/password/htpasswd.vbox
AuthName "Please Login"
Require valid-user
</Directory>

Dann starten wir Apache neu um die Einstellungen zu übernehmen.

sudo service apache2 restart

Man kann die Zugriffsbeschränkung auch auf viele andere Arten lösen aber dazu gibt es auf vielen anderen Seiten genug Infos.

Erstellen einer virtuellen Maschine und Screenshots

Endlich können wir das Webinterface mit “http://serverip/vbox” aufrufen (Bild 1) und schon eine Virtuelle Maschine erstellen. Dazu klicken wir auf neu und wählen den Namen und das Betriebsystem das wir installieren wollen (Bild 2).

Virtualbox Webinterface 1 [3]

Bild 1

Virtualbox Webinterface 2 [4]

Bild 2

Den Arbeitsspeicher sollte man etwas erhöhen, da 512MB etwas zu wenig sein könnten (Bild 3). Dann wählt man “Create new harddisk” oder ist schon ein Vdi file vorhanden kann man dieses hier auswählen (Bild 4).

Virtualbox Webinterface 3 [5]

Bild 3

Virtualbox Webinterface 4 [6]

Bild 4

Als Speichertyp ist es ratsam dynamisch zu wählen, da sonst der gesamte Speicher sofort besetzt wird (Bild 7). Bei der Plattengrösse sollte man darauf achten, dass der physische Speicher des Hostsystems nicht überschritten wird (Bild 8).

Virtualbox Webinterface 5 [7]

Bild 5

Virtualbox Webinterface 6 [8]

Bild 6

Virtualbox Webinterface 7 [9]

Bild 7

Virtualbox Webinterface 8 [10]

Bild 8

Der Standardspeicherort ist das Homeverzeichnis des Users “vbox”. Will man das Vdi-File in einem anderen Ordner speichern sollte man darauf achten, dass dort die richtigen Rechte gesetzt sind.

Virtualbox Webinterface 9 [11]

Bild 9

Virtualbox Webinterface 10 [12]

Bild 10

Bevor wir jetzt die Maschine starten nehmen wir noch restliche Einstellungen vor wie zum Beispiel ein Betriebssystem CD-Image oder das Aktivieren des RDP (also der Fernwatung), da dies bei einer laufenden Maschine nicht möglich ist.

In Virtualbox hat man die Möglichkeit den Bildschirm der VM direkt im Browser, im Reiter “Console” anzeigen zu lassen. RDP muss man dazu für diese Maschine aktivieren. Dazu klickt man auf diese, dann auf “Remote Console RDP” (Bild 11). Danach wählt man “Display” und in “Remote Display” aktiviert man den Server (Bild 12). Um die Console im Webinterface von ausserhalb benutzen zu können, muss man das hier angegebene Port am Router weiterleiten.

Virtualbox Webinterface 11 [13]

Bild 11

Virtualbox Webinterface 12 [14]

Bild 12

Als Passwort und Benutzernamen gibt man die Daten ein, welche man in in der Konfigurationsdatei von phpVirtualbox eingegeben hat.

Virtualbox Webinterface 13 [15]

Bild 13

Virtualbox Webinterface 14 [16]

Bild 14

Somit sollte ich so ziemlich alles behandelt haben. Findet ihr irgendwelche Fehler in der Anleitung hinterlasst bitte ein Kommentar

Viel Spaß mit Virtualbox und phpVirtualbox!