Fortsetzung von Teil 1 (Hardware unter EUR 200)
Die Architektur meines kleinen Heimserver-Projektes habe ich im ersten Teil des Artikels ja schon skizziert: Auf dem 190-Euro AMD-Sempron-Rechner wird Ubuntu 64 Bit Server Edition als NFS-Fileserver und Host für 3 virtuelle Maschinen (VirtualBox 1.6) laufen. Auf den virtuellen Maschinen, die als Webserver, Web-Test-Umgebung sowie Games-Server vorgesehen sind, kommt Ubuntu JEOS zum Einsatz, als schlankes Minimal-Betriebssystem für virtuelle Maschinen.
Durch den NFS-Zugriff habe ich außerdem den Vorteil, dass ich von jedem Client meine virtuellen Maschinen über die grafische Oberfläche von VirtualBox “lokal” steuern kann, anstatt den Remote-Zugang aktivieren zu müssen.
Zunächst muss aber der V-Host als Basis für die Virtualisierungsinstanz und die virtuellen Maschinen eingerichtet werden:
Mit “V-Host” bezeichne ich im folgenden den eigentlichen Server, auf dem
- ein Fileserver für unser Heimnetz (NFS)
- eine oder mehrere virtuelle Maschinen (VM, neu-deutsch “Virtual Appliances” )
laufen werden.
1. Installation von Ubuntu 8.04 Server
Die Basis-Installation an sich ist ein Kinderspiel: Ubuntu 8.04 Server (ich bevorzuge die amd64 Version für den AMD Sempron) booten, und den Instruktionen folgen. Im übrigen sei auf die zahllosen Wiki-Beiträge zu diesem Thema verwiesen.
Einzige Schwierigkeit in meinem speziellen Fall, aufgrund der Hardware: Ein CD-Rom Laufwerk hat die Kiste wie jeder Server nicht (wozu auch, CD-Rom-Laufwerk würde nur zur Installation benutzt werden). Daher kann die Installation also nur per Netzwerk oder per USB-Stick oder USB-Platte in Frage. Da sich der Aufwand für eine Netzwerkinstallation bei nur einer Maschine nicht recht lohnt, das macht erst Sinn, wenn man 10 oder mehr Server aufsetzen muss bzw. keinen physikalischen Zugang zum Gerät hat, habe ich auf mein How-To für die Installation von Ubuntu Server per USB-Stick zurückgegriffen.
Um Ubuntu Server von USB-Stick/USB-Platte zu installieren, muss man
- einen bootbaren USB-Stick / USB-Platte mit Ubuntu 8.04 Server Installations Image versehen (wie das sehr einfach geht, steht in meinem How-To)
- im BIOS des Server die Reihenfolge der “Festplatten” ändern, so dass das USB-Gerät vor der eigentlichen Festplatte steht - das geht nur, wenn das USB-Gerät beim Einschalten schon eingesteckt und aktiv ist (USB-Platte also erst anschalten und hochfahren lassen, dann booten)
Danach wird Ubuntu vom USB-Gerät gebootet und ganz normal installiert. Für Anfänger wichtig: Bei der Installation muss eine feste IP-Adresse bei den Netzwerkeinstellungen vorgegeben werden - sonst weiß der Router nicht, auf welchen Rechner er eingehenden Verkehr weiterzuleiten hat, wenn sich die Adresse bei jedem Neustart ändert. Diese Grundlagen sollten allerdings ohnehin bekannt sein, wenn man einen Server aufsetzen will.
2. Nach der Ubuntu-Installation: Zusätzliche Helfer und PowerNow nachrüsten
Beim ersten Login habe ich den Midnight Commander, wget als Downloader, den SSH Server sowie ntp für den Uhrzeitabgleich nachgerüstet. Außerdem ist lsof ein gutes Tool um sich rasch eine Übersicht über Vorgänge im System zu verschaffen:
sudo aptitude update && sudo aptitude install mc wget openssh-server ntp lsof
Um den Prozessor möglichst stromsparend bei geringer Belastung immer auf der niedrigst sinnvollen Taktung zu halten, unbedingt noch den Powernow-Dämonen nachrüsten. Powernow ist Grundvoraussetzung für einen stromsparenden Betrieb, andernfalls läuft die Kiste permanent unter Vollast:
sudo aptitude install powernowd
Powertop zeigt sehr schön, wie man mit powernowd bares Geld sparen kann:
wenn, wie meist, wenig los ist auf dem Web- und ET:QW Server:
Als Indikator für Bot-Befall meines Heim-Netzwerkes habe ich außerdem Nepenthes installiert - Nepenthes ist ein low-interactive Honeypot, der einen unsicheren Windows-Rechner simuliert und auf jede Anforderung zum Download von Windows-Malware reagiert. Nepenthes selbst schützt also nicht vor Angriffen auf den V-Host, zeigt aber an, ob es Bots geschafft haben, die virtuellen Maschinen zu infizieren und jetzt das lokale Netz “verseuchen”, also Windows-Clients über deren Schwachstellen angreifen wollen.
Eventuelle Aktivitäten lassen sich im Verzeichnis /var/log/nepenthes nachvollziehen - beide Log-Dateien sollten aber im Idealfall immer leer sein. Nepenthes als Indikator für Schädlinge im Netz macht übrigens auch Sinn, wenn wie bei uns keine Windows-Clients im Netz sind - man möchte schliesslich nicht von einer “freundlichen” Mail des Providers davon erfahren, dass von der eigenen IP permanet Angriffe gegen die anderen Kunden des Providers ausgehen….
sudo aptitude install nepenthes
sorgt für die Installation, der Dienst wird gleich gestartet wie ein Blick auf die lauschenden Dienste zeigt:
sudo lsof -i
Unbedingt installieren sollte man Webmin für eine bequeme Fernbedienung per Browser, sofern man kein reiner Kommando-Zeilen-Freak ist. Mittels
wget <Link zum aktuellen Debian-Download-Paket von Webmin>
herunterladen, und mittels
sudo dpkg -i webmin410.deb
(bzw. dem jeweiligen Paketnamen entsprechend) installieren. Webmin ist sofort nach der Installation auf Port 10000 via https erreichbar. Zur Grundsicherung, wenn Webmin auch aus dem Internet erreichbar sein soll, unbedingt die Sperrzeit für den mehrmaligen fehlerhaften Login-Versuch auf mindestens 600 (= 5 Minuten) hoch- und die maximal tolerierte Anzahl von Loginversuchen bis zur temporären Sperre auf 5 senken. Die Einstellung wird im Menu Webmin - Webmin Configuration - Authentification vorgenommen.
Zusätzlich kann und sollte man Webmin auf einen anderen Port statt den voreingestellten Port 10000 lauschen lassen. In /etc/webmin/miniserv.conf wird der entsprechende Eintrag geändert, z.Bsp. in:
port=12345
Diese Einstelung kann man auch in Webmin selbst vornehmen: Menu Webmin Configuration - Ports and Addresses. Nach dem nächsten Neustart ist Webmin dann unter https://<IP-Adresse des V-Hosts>:12345 erreichbar. Wer, wie empfohlen, nepenthes installiert hat, sollte den Port auf jeden Fall ändern, da Nepenthes ebenfalls einen “Schein”-Dienst auf Port 10000 anbietet.
3. Der NFS-Fileserver
Der NFS-Fileserver wird nach dieser (deutsch) oder dieser (Englisch) Anleitung installiert und eingerichtet. Ein Kinderspiel.
Wer Windows-Clients im Heimnetz hat, installiert sich zusätzlich oder stattdessen den Samba-Server, der SMB-Shares ins Netz anbietet, die man dann unter Windows als Netzlaufwerk einbinden kann. Wie es geht, steht hier leicht verständlich beschrieben.
4. Installation von VirtualBox
Die Installation von VirtualBox, der Virtualisierungsinstanz, ist ebenfalls ein Kinderspiel. Vorgepacktes Ubuntu-Paket herunterladen (ich mache das am liebsten mit wget direkt vom V-Host - dazu via SSH auf den V-Host einloggen, wget eingeben und dann die URL des Downloads in das Terminalwindow einfügen, Return - andere Variante ist der Download auf den Desktop-Rechner und von dort mit Webmin auf den V-Host hochladen) und installieren:
sudo dpkg -i virtualbox_1.6.0-30421_Ubuntu_hardy_amd64.deb
Danach muss der eigene User auf dem V-Host noch in die Benutzergruppe für VirtualBox aufgenommen werden. Mit SSH auf den V-Host wechseln, dort:
sudo usermod -a -G vboxusers <deinLogin>
Zu VirtualBox einige Anmerkungen:
Die virtuellen Maschinen (kommt im 3. Teil) sollte man NIE (N-I-E) als root starten. Nie. Denn andernfalls hat ein Angreifer, dem es gelingt, die virtuelle Maschine zu kapern, relativ leichtes Spiel, dadurch auch den V-Host zu übernehmen. Aus diesem Grund auch ein hartes Passwort für den eigenen Login zum V-Host wählen. Hart meint, dass es sich um echtes Zufallspasswort mit mindesten 10 Zeichen Länge handeln sollte. Das jedenfalls dann, wenn man vorhat, eine der Serverdienste ins Internet anzubieten.
Wer NFS nützt, kann sich zudem die Bedienung der virtuellen Maschinen massiv dadurch erleichtern, dass man auf dem Client mit NFS-Zugang zum VHost ebenfalls VirtualBox installiert, dann aber mittels Symlink das lokale VirtualBox-Verzeichnis /home/<user>/.VirtualBox auf das VirtuaBox-Verzeichnis auf dem VHost umleitet.
Selbstverständlich sind während des laufenden Betriebes der virtuellen Maschinen keine Konfiguationsänderungen möglich (VM wird entsprechend markiert), gerade als Anfänger hat man es aber leichter, bei grösseren Problemen über die vertraute GUI statt des SS-Zuganges Änderungen n der virtuellen Maschine vorzunehmen. Wichtig: Netzwerkeinstellung der VM bei Zugriff vom Client immer auf NAT stellen, nach Beendigung der lokalen Reparatur wieder auf Hostinterface umstellen - Details zum Unterschied in Teil 3 oder dem VirtualBox-Usermanual)
VirtualBox OSE: Leider nicht einsetzbar, wenn man auf einem separaten Server (”V-Host”) virtualisieren will. Denn leider benötigt VirtualBox immer eine Kontrolleinheit, die entweder per GUI (wenn VirtualBox auf dem eigenen Rechner läuft) oder mittels VRDP (Fernbedienung von Desktops) gesteuert wird. Da auf dem V-Host keine grafische Benutzeroberfläche installiert wurde (das frisst Speicher und Prozessor-Power, und würde nur für VirtualBox benötigt), kann VirtualBox nur mit der VDRP-Variante von der Kommandozeile über den SSH-Zugang gestartet werden. Der Code für den VRDP-Server in VirtualBox ist aber nicht Open Source, sondern nur in der “Binary”-Variante, die direkt von VirtualBox/Sun herunter zu laden ist, enthalten. Die OSE-Version, die in den Ubuntu-Repositories enthalten ist, bietet diese Eigenschaft leider nicht. Keine wirkliche Alternative wäre, wie oben beschrieben die VM von einem Client über NFS aus zu starten - dann liefe die VM auf dem Client, und nicht dem VHost, der nur als Fileserver dienen würde.
Im letzten Teil meines Erfahrungsberichtes geht es dann um die Installation der virtuellen Maschinen und die Verwendung von Ubuntu JEOS sowie um das Thema Sicherheit im Heimnetz.





Related Articles
3 users responded in this post
[...] Im zweiten Teil dieser Anleitung wird der virtuelle Host mit VirtualBox und Webmin installiert. [...]
Hallo Christian,
ich bin auch gerade dabei mir einen kleinen "Heimserver" zu bauen. Da ich mehrere Domains damit verwalten möchte, wollte ich "sysCP" installieren.
Jetzt sehe ich aber, dass Du einen anderen Weg gewählt hast. Du erstellst virtuelle Boxen, und in innerhalb dieser lässt die einzelnen Domains laufen.
Belastet das den Speicher nicht wesentlich mehr? Wieso hast Du Dich gegen sysCP entschieden?
Gruss,
kewes
Hallo kewes,
ehrlich gesagt kannte ich sysCP bis heute nicht. Danke für den Hinweis!
Aber: Ich betreibe ja letztlich nicht mehrere Server unter mehreren Domains, sondern mehrere Server unter 1 Domain (vale.homelinux.net).
Der zweite (Test)Webserver z.Bsp. läuft in der zweiten VM, ist unter dieser Domain erreichbar, aber auf einem anderen Port (8080). Gleiches gilt für de Gameserver - der läuft ebenfalls unter einem andere Port. Eine echte Multidomain-Lösung brauche ich nicht - ich befürchte auch, dass das mit DynDNS auch nicht geht, denn meine Domain ist ja nicht "homelinux.net", sonder nur "vale". Und DynDNS kann m.W. nur eine Subdomain pro IP zuweisen.
Leave A Reply
Please Note: Comment moderation maybe active so there is no need to resubmit your comments