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:

Ein wichtiges Kriterium beim Kauf meines Homeservers war die Fähigkeit als Mediacenter fungieren zu können.
Unter Linux gibt es eine wahre Flut an tauglichen Mediacenter Programmen. Siehe beispielsweise den Vergleich beim Bürgermeister.
Nach diversen Tests mit unterschiedlichen Mediacentern entschied ich mich letztlich für XBMC.
Dieses Mediacenter bietet IMHO die ansprechendste GUI und die meisten Plugins.
XBMC benötigt zwar einen funktionierenden 3D-Treiber, kann dafür jedoch bei verwendung des NVIDIA-Treibers via VDPAU Medien Hardwarebeschleunigt über den Grafikchip wiedergeben. Dies reduziert die Belastung der CPU auf ein Minimum, genauer gesagt auf unter 5% auf meinem Homeserver / Mediacenter!
Der Funktionsumfang von XBMC lässt sich mit Hilfe von Plugins beispielsweise von http://www.xbmczone.com/ sehr einfach erweitern.
Unter Linux extrahiert man hierzu einfach die Plugins in das entsprechende Verzeichnis:
~/.xbmc/plugins/music/
~/.xbmc/plugins/pictures/
~/.xbmc/plugins/programs/
~/.xbmc/plugins/video/
Nachdem mein Homeserver lief wurde es Zeit ihm einige nützliche Funktionen zu geben.
Bisher trug ich Rechnernamen immer in meine /etc/hosts auf dem Desktoprechner ein. Genau so funktioniert auch dnsmasq, mit dem kleinen Unterschied, dass dnsmasq die eingetragenen Rechner per DNS verteilt. Hier ein Beispiel:
192.168.0.106 Chupacabra Chupacabra.mw88home.net
Nachdem man nun noch DNSMasq die aktuelle Konfiguration einlesen lässt, wird der Rechnername im lokalen Netzwerk bekannt gemacht, vorrausgesetzt man stellt den Homeserver als DNS-Server bei den Clients ein. Das Einlesen geht folgendermaßen von statten:
sudo service dnsmasq reload
Und damit ist die Konfiguration des DNS-Dienstes schon abgeschlossen. Schön wenn etwas so einfach geht! Natürlich könnte man mit dem Dienst BIND mehrere DNS-Zonen verwalten aber das erscheint mir für ein Heimnetzwerk doch etwas überdimensioniert
Bei SMB-Shares kann man sich bekanntermaßen sehr verkünsteln wenn man verschiedene Berechtigungen für mehrere Gruppen braucht.
Zum Glück ist mein Einsatzgebiet viel einfacher angesiedelt, mir reicht es einen Ordner im Homeverzeichnis eines nahezu Rechtelosen Anwenders frei zu geben um dann darauf zugreifen zu können.
Einfach rechtsclick auf den entsprechenden Ordner und den Menüpunkt freigeben wählen, fertig.
Nachdem die Hardware geliefert wurde und alles angeschlossen war, konnte ich mich endlich an die Konfiguration machen.
Da der Server auch als Mediacenter genutzt werden sollte, entschied ich mich dafür, Ubuntu 10.04 in der 64bit Desktopversion zu installieren und alle unnützen Programme (Evolution, OpenOffice etc.) zu deinstallieren.
Nach der gewohnt unproblematischen Installation ging es erst einmal ans abspecken.
Zum Opfer fielen meiner Entschlankungskur unter anderem:
Anschließend müssen viel weniger Aktualisierungen herunter geladen werden, da diese Programme nun nicht mehr installiert sind.
Viele ITler haben einen eigenen Server Zuhause stehen. Der Vorteil daran ist, dass man ressourcenfressende aber nötige Anwendungen vom Desktop auf den Server verschieben kann, dadurch lässt sich Zuhause besser arbeiten. Das war auch für mich der Hauptgrund mir einen Server anzuschaffen.
Für mich stand vor allem im Vordergrund, dass der Server leise und stromsparend wird, da er bei mir im Schlafzimmer stehen soll. Außerdem sollte er multimediafähig sein, damit man ihn auch als Mediacenter nutzen kann.
Für einen geräuschlosen Server kommt eigentlich nur ein passiv gekühltes System in Frage. Deshalb entschied ich mich für das Gehäuse HFX micro M2.
Da in diesem Gehäuse relativ wenig Platz ist, mussten Grafikkarte, Soundkarte und Netzwerkkarte zwangsweise onBoard des Motherboards sein. Ich entschied mich schließlich für ein Board im mini-ITX Format mit NVIDIA ION Chipsatz.
Als Festplatte setzte ich zuerst auf einen Corsair Voyager USB-Stick. Damit war der Server komplett lautlos, allerdings war die Schreibgeschwindigkeit auf die Festplatte sehr langsam und der Plattenplatz sehr begrenzt.
Deswegen stellte ich schnell auf eine 2,5" Notebookfestplatte von Western Digital um. Nun hört man zwar leise das Geräusch der laufenden Festplatte aber dafür haben sich die Schreibgeschwindigkeit und der Plattenplatz deutlich gesteigert.
Das System ließ ich mir wegen meiner fehlenden Erfahrung (und Werkzeug) im Umgang mit Heatpipes vormontieren.
Nachdem ich von meiner Festplatte Windows Vista verbannt habe und Windows 7 nur 40 GB gestattet habe, da ich es nur zum zocken verwende, hatte ich natürlich etwas mehr Platz auf der Platte.
Also was liegt näher als ein Linux zu installieren, das sich grundlegend von dem bereits eingesetzten unterscheidet.
Meine Wahl fiel hier auf Archlinux. Auch in der Auswahl stand Gentoo aber ich persönlich sehe es nicht ein, dass ich jedes Paket selber kompilieren soll, wenn es doch ein Buildserver für mich tun kann. Das Arch nicht nur ein kleiner Ausflug wird war schon zu Beginn klar, schließlich muss man bei Arch alles per Hand konfigurieren. Wie erwartet gab es für mich als Archneuling einige Probleme:
Partitionierung:
Da Arch das Programm cfdisk nutzt, mit dem ich persönlich nicht gut klar komme, brauchte es bei mir 3 Versuche bis ich Arch die richtige Partition zugewiesen habe und es davon booten konnte.
Einrichten der Grafik:
Ein wesendlich größeres Problem war für mich die Einrichtung der Grafischen Oberfläche. Egal ob ich den freien oder den proprietären Nvidia-Treiber probierte, beide konnten den X-Server nicht starten. Erst das starten von kdm brachte mir überhaupt einmal die Grafik auf den Bildschirm.
KDE 4 Login Manager:
Obwohl ich sonst eigentlich ein Anhänger von Gnome bin, dachte ich mir dass ich nicht zwei Linuxsysteme mit Gnome brauche und mal was anderes nehmen sollte. Die Installation war relativ Problemlos aber als ich den Loginmanager mit dem Befehl kdm startete, konnte ich weder die Maus bewegen noch reagierte meine Tastatur. Glücklicherweise habe ich vorher SSH eingericht, sonst hätte ich den Resetknopf bzw. den magic SysRq key betätigen müssen.
Nach Sichtung der Logs war klar das kdm die in der xorg.conf referenzierten Treiber für die Eingabegeräte nicht finden konnte. Also einfach via pacman die Pakete xf86-input-keyboard und xf86-input-mouse installliert und bei dem nächsten Start von kdm konnte man schreiben und die Maus bewegen.
Fazit:
Arch Linux ist ein klasse System aber man sollte bereits gute Linuxkenntnisse haben, bevor man sich an die Installation macht. Bei der Installation von Arch habe ich viel über Linux gelernt und sehr viel Spaß gehabt. Auch wenn Ubuntu mit Gnome mein Hauptsystem bleiben wird, kann ich jedem nur empfehlen, sich Arch einmal anzuschauen.
Dieser Beitrag ist eine Reaktion auf Nachfrage von HTC über das Update des Hero.
The first thing I noticed was that I have to use Windows to update the Hero.
Why do we need Windows to update a Linux phone? Linux is a supported development plattform for Android and deployment out of the IDE works great. So why doesn't offer HTC this for Linux and Macusers too?
The next problem was that Windows 7 is not yet officially supported by HTC Sync and I had to use a workaround to get this working.
After HTC Sync worked I was noticed to backup all my data because it will be deleted upon update. This worked pretty good with myBackup but this app costs 5$ if I want to use it for longer than 30 days. It wouldn't be too hard to implement this feature in the updater.
The rest of the update worked without any further problems.
Jetzt, wo ich mein neues HTC Hero habe, musste ich natürlich direkt mal das Programm WpToGo ausprobieren.
Die Bedienung ist sehr komfortabel und funktioniert tadellos auf dem Hero.
Einer der größten Vorteile von Ubuntu ist die einfache Treiberinstallation. Allerdings sind die Paketierten Grafiktreiber unter Ubuntu nicht die aktuellsten, bei Ubuntu 8.10 ist im Moment der Treiber 177.x verfügbar, auf der Nvidia Website der Treiber 180.22.
Oft wird die Performance durch neue Treiber verbessert, deswegen lohnt sich das manuelle installieren. Dabei entsteht allerdings ein großer Nachteil. Nach einem Kernelupdate muss der Treiber neu installiert werden, da für den Grafiktreiber bei der Installation ein Modul passend auf den Kernel kompiliert wird. Natürlich gibt es auch für das Problem eine Lösung.
Vorbereitung:
Zum installieren des Nvidia Treibers braucht man einen Compiler.
Mit dem Paket build-essential sollte alles abgedeckt sein.
Dieses Skript wird benötigt
Als erstes muss ein Verzeichnis für Skripte angelegt werden, die nach einer Kernelinstallation ausgeführt werden. Anschließend wird das Skript installiert.
sudo mkdir -p /etc/kernel/postinst.d
sudo install update-nvidia /etc/kernel/postinst.d
Installation des Treibers:
Den Treiber von Nvidia herunterladen und nach /usr/src verschieben, anschließend ausfürhbar machen
sudo mv NVIDIA-Linux-x86_64-180.22-pkg2.run /usr/src/.
sudo chmod +x /usr/src/NVIDIA-Linux-x86_64-180.22-pkg2.run
Damit man nicht jedes mal wenn man einen neuen Treiber installiert das Skript anpassen muss, wird ein Symlink auf den Treiber gesetzt.
sudo ln -s /usr/src/NVIDIA-Linux-x86_64-180.22-pkg2.run /usr/src/nvidia-driver
Nachdem die Vorbereitungen abgeschlossen sind sollte man alle Programme schließen und die Grafik abschießen
sudo killall gdm
Anschließend installiert man den Treiber auf Kommandozeile
sudo /usr/src/nvidia-driver
Nachdem die Installation abgeschlossen wurde, startet man Anschließend die Grafik neu
sudo gdm
Beim nächsten Kernelupdate gibt es nun keine Probleme mehr!
Die Schritte ab "Installation des Treibers" müssen bei jeder Grafiktreiber Installation durchgeführt werden.
Gerade habe ich hier gelesen, dass man wenn man eine gute Idee hat, ein G1 gewinnen kann.
Hier kommt meine Idee:
Ich gehe jetzt mal davon aus, dass jemand, der sich das G1 besorgt ein technisch interessierter Mensch ist. Deswegen wäre es für so jemanden wahrscheinlich ziemlich genial, auf dem Handy eine art Kontrollzentrum für das eigene Netzwerk zu haben.
Darin könnte man Informationen über die Clients abrufen und auf dem G1 darstellen.
Ich denke da speziell an eingeloggte User, Performance, Speicherplatz, Netzwerktraffic.
Auserdem könnte man die “üblichen” Aufgaben zentral auf dem G1 ausführen, so zB. Softwareupdates anstoßen, Rechner ausschalten, neu starten, etc.
Die Anwendung könnte man wenn die entsprechenden Ports am Router freigeschalten werden auch über das Internet nutzen.
Die Kommunikation wäre am einfachsten zu realisieren, wenn man auf den Clients eine Art Daemon installieren würde, der auf einem Port auf die Verbindung von dem G1 “wartet”.
Das ganze könnte noch Profile erhalten, wie zb. Zuhause und Arbeit, damit man unterschiedliche Einstellungen für die Netze vornehmen kann.
Für die gängigen Linuxdistributionen wäre das ganze relativ einfach zu realisieren, indem man den Client dann mit einem Befehl zum update anstößt und das ganze dann über den Port (natürlich verschlüsselt) an das G1 weiterleitet, damit der Nutzer sehen kann, welche Updates anstehen bzw. Fehlermeldungen sehen kann.
Bei Windows und Mac wäre das wahrscheinlich nicht ganz so einfach, da wäre im Notfall aber die Integration eines VNC-Viewers nützlich, auch wenn das nur eine Notlösung wäre.