Letzte Posts
Artikel Archiv
Maverick Counter
Meta Links
Blogroll
Kategorien
Tags

HomeServer Teil 5: WebGUI

Oft kommt es vor, dass man von einem anderen Ort auf bestimmte Dienste des eigenen Servers zugreifen möchte.

Eine Möglichkeit dazu ist ein VPN-Dienst wie z.B. OpenVPN. Das hat allerdings den Nachteil, dass auf dem Rechner von dem aus man sich verbinden möchte auch der entsprechende Client installiert sein muss.

Die andere Möglichkeit ist es eine Website, die die entsprechenden Dienste per Weboberfläche zur Verfügung stellt.
Um das zu realisieren benötigt man einen Webserver wie z.B: Apache.

Diesen Installiert man ganz einfach über
sudo apt-get install apache2

Anscheinend werden die Rechte des Rootverzeichnis des Webservers in der aktuellen Ubuntuversion nicht richtig gesetzt, daher sollte man noch folgenden Befehl ausführen:
chown -r www-data:www-data /var/www

Gegebenenfalls muss man noch das entsprechende PHP-Plugin aktivieren (hier PHP4)
sudo a2enmod php4

Nun muss man noch das Verzeichnis von phpVirtualBox in die Apache Konfiguration aufgenommen werden, dazu erstellt man folgenden Eintrag in der Datei /etc/apache2/sites-available/default:
Alias /virtualbox"/var/www/virtualbox"
<directory var/virtualbox/www>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride none
   Order allow,deny
   allow from all
   #authentification
   AuthType Digest
   AuthName "virtualbox"
   AuthUserFile /var/www/virtualbox/.htpasswd
   require valid-user
</directory>

Dieser Eintrag bewirkt unter anderem, dass ein Passwort beim betreten der Seite abgefragt wird. Dies ist empfehlenswert, da phpVirtualBox noch über keine eigene Benutzerauthentifizierung verfügt. Das Passwort kann man folgendermaßen vergeben:
htdigest -c .digest virtualbox Benutzername

Anschließend kann man die Zip-Datei von hier nach /var/www/virtualbox entpacken und ebenfalls die nötigen Benutzerrechte setzen:
chown -r www-data:www-data /var/www

Um via phpVirtualBox auf VirtualBox zugeifen zu können muss folgender Dienst gestartet werden:
su vboxuser -c '/usr/bin/vboxwebsrv -b --logfile /dev/null >/dev/null'

Dieser Dienst kann Beispielsweise durch ein Init-Skript automatisch gestartet werden…
Auserdem muss die Konfigurationsdatei namens 'config.php' angepasst werden.

Wichtig sind hier folgende Eintragungen:
# Benutzer mit dem sich phpVirtualBox mit VirtualBox verbinden soll
const username = 'vboxuser';
const password = 'passwort';
# Server und Port auf den sich phpVirtualBox verbinden soll
const location = 'http://localhost:18083/';

Anschließend ist phpVirtualBox über http://servername/virtualbox erreichbar und verlangt zur betrachtung ein Passwort.

Hat man mehrere solcher Dienste kann man sie über eine einfache Website z.B. mit iFrames sehr einfach zugänglich machen, beispielsweise so:
Weboberfläche von VirtualBox

Virtualbox und USB

Bisher hat es mich nie gest&öuml;rt dass Virtualbox unter Ubuntu keine USB-Unterstützung in der Standardkonfiguration hat. Da die einzig mir bekannte Methode zur Sicherung meines SE G900 die SE-PC-Suite für Windows vorraussetzt, musste ich mich auch mit diesem Thema beschäftigen.

Die Lösung war beeindruckend einfach, ich musste einfach folgende Zeile in die /etc/fstab eintragen:
none /proc/bus/usb usbfs devgid=XXX,devmode=664 0 0

Wobei XXX mit der ID der Gruppe vboxusers zu ersetzen ist.
Die ID lässt sich folgendermaßen rausfinden:

Zuerst öffnet man die Benutzerverwaltung:
Menü -> System -> Systemverwaltung -> Benutzer und Gruppen

Danach auf entsperren clicken und unter "Gruppen Verwalten" die Eigenschaften der Gruppe "vboxusers" betrachten. Beim nächsten Systemstart sollten in Virtualbox alle angeschlossenen USB-Geräte verfügbar sein.

VirtualBox 2.0 Netzwerk-Bridge

Als vor ein paar Tagen die Version 2.0 von Virtualbox rauskam hab ich ja eigentlich darauf gehofft dass Sun das leidige Thema mit dem bridget network endlich gelöst hat.

Denkste, ich konnte also wieder nicht einfach auf bridged umschalten, stattdessen habe ich aber eine Methode entdeckt, die jedenfalls für meine Bescheidenen Zwecke auch bestens geeignet ist:

Man setzt ganz einfach das Folgende Kommando ab und tauscht !!vmname!! mit dem Namen der gewünschten virtuellen Maschine aus. Wichtig ist auch noch den Port anzugeben, der zu der VM umgeleitet werden soll, hier Port 2222.
$ VBoxManage setextradata !!vmname!! "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222

Danach gibt man noch an auf welchem Port die Daten auf der virtuellen Maschine eintreffen sollen, hier Port 22 (ssh).
$ VBoxManage setextradata !!vmname!! "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22

Und zum Schluss noch auf welchem Protokoll gesendet werden soll.
$ VBoxManage setextradata !!vmname!! "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP

Damit hat man auch schon eine Portweiterleitung eingerichtet ;-)
Um zu prüfen ob die Konfiguration der VM korrekt vorgenommen wurde hilft dieses Kommando weiter:
$ VBoxManage getextradata !!vmname!! enumerate

Diese Konfiguration lässt sich mit diesem Kommando wieder in den Anfangszustand zurücksetzen:
$ VBoxManage setextradata !!vmname!! "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort"

Um die VM nun per ssh zu erreichen reicht das folgende Kommando:
$ ssh -l !!benutzername!! -p 2222 localhost

Wer jetzt noch besonders Faul ist (wie ich zB.),
der kann noch einen Alias anlegen um direkt über ein Kommando wie zb. ubuntutesting auf die VM zugreifen zu können. Dazu ist folgender Eintrag in der .bashrc notwendig:
$ alias ubuntutesting='ssh -Y -l !!benutzername!! -p 2223 localhost'

Frühliches "Fern-"steuern!

Englisches Original von mydebian