21.2 Homeserver 

Ein Home-Server kann vielfältige Aufgaben zu Hause übernehmen, die nicht nur den Umgang mit unterschiedlichsten Medien komfortabler machen, sondern auch für eine zusätzliche Datensicherheit sorgen.
Der Unterschied zum ersten Teil dieses Kapitels besteht darin, dass ich im Heimbereich eher von einem homogenen Netzwerk ausgehe. Wenn sich auch die Versionen unterscheiden mögen, so nutzt der Heimanwender oft das gleiche Betriebssystem auf allen Rechnern im Haushalt. Sollten Sie Windows und Linux gemischt einsetzen, so finden Sie auf den vorangegangenen Seiten mehr dazu.
21.2.1 Grundlagen 

Bequemer als die SSH-Methode via scp (siehe Abschnitt »SSH«) ist der Aufbau eines dedizierten Fileservers unter UNIX/Linux. Unter Ubuntu ist der Aufbau eines dedizierten Datei- und/oder FTP-Servers schnell erledigt. In diesem Kapitel werde ich auf verschiedene Realisierungen eingehen, beispielsweise unter Benutzung des NFS (Network File System).
Anforderungen
Die wichtigsten Aufgaben eines Homeservers sind die folgenden beiden Punkte:
- Bereitstellung von Dateien (Dokumente, Musik, Fotos etc.) für alle im heimischen Netz angeschlossenen Systeme
- Datensicherheit durch automatische Backup-Routinen
Welche Ubuntu-Version sollten Sie verwenden?
Für den Homeserver ist die Ubuntu-Version 10.04 besonders geeignet, da es sich hierbei um ein sogenanntes LTS-Release (Long Term Support) handelt. Diese Version ist mit den Enterprise-Versionen von Red Hat und Novell vergleichbar, wird mindestens drei Jahre mit Sicherheits-Updates versorgt und eignet sich somit hervorragend für den Servereinsatz.
Lieber mit grafischer Oberfläche
Auch wenn ein Server in aller Regel über keine grafische Oberfläche verfügt, sollten Sie aus Gründen der Bequemlichkeit die ganz normale Desktop-Variante von Ubuntu installieren, wie sie auch auf der Begleit-DVD 1 vorhanden ist. Des Weiteren gehen wir davon aus, dass Sie sich erst einmal keine neue Hardware kaufen und lieber einen älteren Rechner benutzen möchten. Vielleicht aber möchten Sie auch die Daten Ihres bevorzugten Rechners im Arbeitszimmer allen anderen Familienmitgliedern zur Verfügung stellen. Die Möglichkeiten, einen Server zu betreiben, sind vielfältig.
Da die Einrichtung eines Servers ein Exkurs ist, der über den normalen Anspruch hinausgeht, werden wir auch die meisten Dinge über die Kommandozeile erledigen.
Ein alter Rechner reicht
Wenn Sie einen separaten Rechner als Server verwenden möchten, reicht ein alter PC vom Dachboden oder aus dem Keller vollkommen aus, besonders dann, wenn Sie auch noch auf die grafische Oberfläche verzichten und die Serverinstallation von Ubuntu vorziehen. An den Prozessor werden keine großen Erwartungen gestellt, so dass hier ein alter Pentium mit einigen Hundert Megahertz ausreicht. Der Arbeitsspeicher wird je nach Einsatzbereich des Servers unterschiedlich stark beansprucht, so dass Sie hier mindestens 512 MB (besser 1 GB) einsetzen sollten.
Erforderliche Hardware
Um den Rechner per WLAN ansprechen zu können, sollte er selbstverständlich noch eine entsprechende WLAN-Netzwerkkarte besitzen sowie selbstverständlich ein CD- oder DVD-Laufwerk. Bei einem Backup besagt die goldene Regel, dass Sie niemals das Backup auf demselben Medium anlegen, auf dem auch die Originaldaten liegen. Gönnen Sie aus diesem Grund dem Rechner auf jeden Fall eine zweite Festplatte (intern oder extern).
21.2.2 Installation 

Auf die Installation des Grundsystems wollen wir an dieser Stelle nicht weiter eingehen, da sie im Kapitel »Die Installation« erläutert wurde. Achten Sie lediglich darauf, dass Ihr PC von CD oder DVD bootet (Einstellung im BIOS). Beim Startbildschirm wählen Sie bei der Desktop-Variante die Option Auf Festplatte installieren, bei der Server-Variante von Ubuntu vielleicht auch Einen LAMP-Server installieren, wenn Sie später einen Web- oder Streaming-Server einrichten wollen.
Feste IP-Adressen
Es ist von Vorteil, wenn Sie Ihrem Server und den Clients, die auf den Server zugreifen sollen, feste IP-Adressen zuteilen. Dies können Sie entweder in der Datei /etc/network/interfaces festlegen oder über die Konfiguration eines eventuell vorhandenen Routers. Wie Sie statische IP-Adressen in der genannten Datei anlegen, ist sehr gut in der zugehörigen Manpage man interfaces beschrieben.
Wir gehen im Folgenden davon aus, dass der Server die IP-Adresse 192.168.0.2 und der Client die IP-Adresse 192.168.0.4 besitzt.
21.2.3 Dateien teilen 

Wir wenden uns jetzt der ersten Aufgabe zu, die der Homeserver für Sie erledigen soll. Diese besteht darin, dass er anderen Computern im Netzwerk bestimmte Dateien zur Verfügung stellt. Gehen wir zunächst einmal davon aus, dass Sie keine Rechner mit Windows im Netzwerk haben und daher auch kein Samba benötigen.
NFS-Server einrichten
NFS bedeutet Network File System. Es wurde als Verbindungsprotokoll für Unix-Rechner in den 80er Jahren von Sun Microsystems entwickelt und zur Verfügung gestellt. Mittlerweile liegt das Protokoll in seiner 3. Version vor, und an seinen anfänglichen Schwachpunkten (z. B. der Geschwindigkeit) wurde sehr gearbeitet. Das Schöne an diesem Protokoll ist, dass es statuslos ist. Das bedeutet, dass sich das Verzeichnis sehr bedarfsorientiert immer erst bei einem Zugriff einhängt. Danach hängt es sich wieder aus und verursacht so sehr wenig Traffic auf den Leitungen des Netzwerkes.
Im Internet gibt es sehr viele NFS-Server (z. B. Red Hat und SUSE), die Sie mounten können und von denen Sie sogar ganze Distributionen installieren können. Aber aufgepasst: NFS gilt als sehr unsicher, und Sie sollten sich dessen immer bewusst sein, um Ihr System nicht zu gefährden.
Installation
Stellen Sie zunächst sicher, dass folgende Pakete auf Ihrem System installiert sind:
- nfs-common
- nfs-kernel-server
- portmap (dazu mehr im nächsten Abschnitt)
Portmapper aktivieren
Der RPC-Portmapper ist dafür zuständig, die verschiedenen Anfragen von Clients den NFS-Daemons zuzuordnen und weiterzuleiten; er ist also eine kleine Poststelle. Mit der Eingabe von /etc/init.d/portmap start können Sie ihn aktivieren.
Der Portmapper (oder rpc.portmap) wird durch den init-Daemon beim Booten gestartet und sollten deshalb auch unter /etc/rc2.d und unter /etc/init.d stehen. Nach der Installation der beiden nfs-Pakete sollte nun auch der nfs-Daemon und der mount-Daemon sichtbar sein.
Um zu sehen, ob der Portmapper läuft, können Sie den Befehl rpcinfo -p benutzen. Nun müssten diese oder ähnliche Zeilen auftauchen:
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper
Eine andere Möglichkeit wäre der Befehl ps aux | grep portmap. Um zu kontrollieren, ob der nfs-Daemon überhaupt läuft, können Sie mit dem Befehl
/etc/rc.d/init.d/nfs status
den aktuellen Status des Daemons einsehen. Normalerweise ist er nach der Installation gestoppt und inaktiv, was sich jedoch mit /etc/rc.d/init.d/nfs start schnell beheben lässt. Nun sollte bei allen Aufrufen ein OK erschienen sein und beim Status-Aufruf ein ... is running stehen. Legen Sie zunächst das entsprechende Verzeichnis an, und setzen Sie die Rechte:
sudo mkdir /media/tausch sudo chmod ugo+rw /media/tausch
Die Verzeichnisse zum Export festlegen
Nun muss das neu erstellte Verzeichnis zum Export via NFS freigegeben werden. Dazu editieren Sie die Datei /etc/exports: In dieser Datei müssen alle Ordner eingetragen sein, um darauf zugreifen zu können. Dies muss in unserem Fall folgendermaßen aussehen:
# Begin of /etc/exports # # Meine Dateien auf dem Server: # /Server rechner1(ro) rechner2(rw) # # Ich exportiere das Verzeichnis /Server mit Leserechten (ro) auf # rechner1 und rechner2. Rechner2 bekommt zusätzlich # Schreibrechte (rw).
Berechtigungen setzen
Der Parameter rw steht hierbei für Lese- und Schreibberechtigung. Mehr zum Aufbau dieser Datei erfahren Sie durch Eingabe von man exports. Zusätzlich zur IP-Adresse des Rechners müssen Sie die Subnetzmaske definieren. Des Weiteren müssen Sie den entsprechenden Rechner in der Datei /etc/hosts.allow eintragen:
sudo nano /etc/hosts.allow # Auszug aus /etc/hosts.allow 192.168.0.103
Abbildung 21.5 In der Datei /etc/exports verwalten Sie die Freigaben des Servers.Sie ist zu Beginn leer, d. h., andere Rechner besitzen keinerlei Zugriffsrechte.
Nameserver
Vergessen Sie nicht, die Datei /etc/hosts zu pflegen, sonst könnte es Schwierigkeiten bezüglich der Namensauflösung geben. In größeren Netzen umgeht man dieses Problem mit einem Nameserver.
Kommen wir zum zweiten Beispiel für Einträge in der Datei /etc/exports. Sie können anstelle von einzelnen Rechnern auch Rechnergruppen angeben:
# Begin of /etc/exports ( Beispiel 2 ) # # Meine Dateien auf dem Server: # /Server *.clients(rw) # # Ich exportiere hier das Verzeichnis /Server auf alle Rechner # in der Domain clients mit Schreib- und Lese-Rechten. # # Nun exportiere ich mein downloads-Verzeichnis noch: /downloads *(rw) # end of file
Denken Sie daran, dass jeder Rechner mit der Domain client auf das Verzeichnis zugreifen kann. Es ist also nicht so sicher wie die Angabe jedes Rechners, der zugreifen darf.
Das Ganze geht selbstverständlich auch mit IP-Adressen:
# Begin of /etc/exports ( Beispiel 3 ) # Die Verzeichnisse werden exportiert: /Server 192.168.1.*(ro) /downloads 192.168.6.3(rw) # end of file
Abschließend starten Sie den NFS-Server mit folgendem Befehl neu:
sudo /etc/init.d/nfs-kernel-server restart
Nachdem die Konfiguration erledigt ist, wenden Sie sich dem Client zu. Mit dem Befehl exportfs können Sie nun sehen, welche Verzeichnisse aktuell freigegeben werden. Hier sollte nun /Server und /downloads stehen. Weitere Optionen für den Befehl sind:
- -a – Hinzufügen neuer Verzeichnisse in die Datenbank
- -r – komplettes Neueinlesen der Datei /etc/exports
21.2.4 Ordner freigeben 

Leider steht kein grafisches Werkzeug mehr für die Verwaltung von NFS-Freigaben zur Verfügung. Sie können auf zwei Möglichkeiten ausweichen: Die Einrichtung von Samba-Freigaben erfolgt einfach über einen Rechtsklick auf den freizugebenden Ordner und die Auswahl des Menüpunkts Freigabeoptionen.
Abbildung 21.6 Grafisches Frontend zum Export von Ordnerfreigaben unter GNOME
Nachdem Sie ein Häkchen bei Diesen Ordner freigeben gesetzt haben, können Sie den Freigabenamen sowie Schreibrechte für diesen Ordner setzen. Ggf. werden Sie zur Installation des fehlenden »Windows-Freigabe-Diensts« (also Samba) aufgefordert.
Die andere Möglichkeit, Dateifreigaben grafisch zu verwalten, benötigt zwingend einen laufenden Apache-Server (zu installieren über das Paket apache2, siehe auch Abschnitt »Apache«). Ist diese Voraussetzung erfüllt, können Sie unter dem Menüpunkt System • Einstellungen • Persönliche Dateifreigabe den Zugriff auf den Ordner einrichten. Leider ist hierbei nur die Freigabe des Ordners Öffentlich aus Ihrem home-Verzeichnis möglich (siehe Abbildung). Sie sehen also, die Möglichkeiten sind begrenzt, wenn Sie auf das Terminal verzichten wollen.
NFS
Auf der Clientseite benötigen Sie das nfs-client-Paket. Dieses können Sie als einzelnes Paket besorgen, oder Sie nehmen sich die nfs-utils, in denen das Paket auch integriert ist. Nach der Installation des Pakets können Sie den Befehl showmount benutzen, um den Server zu überprüfen. Da mein Server artemis heißt, lautet bei mir der Befehl showmount artemis. Nun werden alle Clients angezeigt, die Verzeichnisse vom Server importieren dürfen. Mit showmount artemis -e werden die einzelnen Verzeichnisse angegeben sowie die Hosts, die darauf zugreifen dürfen.
/Server /downloads (everyone)
Um nun ein Verzeichnis zu mounten, verwenden Sie den normalen Mount-Befehl, der folgende Syntax hat:
mount server:/verzeichnis /importverzeichnis [-t nfs] mount miraculix:/Server /mnt/import -t nfs
Gehen Sie dann zum Einbinden des Verzeichnisses folgendermaßen vor:
sudo mkdir /media/server sudo mount -t nfs 192.168.0.1:/media/tausch /media/server/
Nun können Sie beliebig Dateien mit dem Server über das Tauschverzeichnis tauschen.
Tipp 265: NFS-Verzeichnisse dauerhaft einbinden
Möchten Sie das NFS-Verzeichnis dauerhaft auf dem Client importieren, tragen Sie Folgendes in die Datei /etc/fstab ein (bitte in eine Zeile schreiben): sudo nano /etc/fstab # Auszug aus /etc/fstab 192.168.0.1:/media/tausch /media/server nfs rw,rsize=8192,wsize=8192 0 0 Dabei wurde über die Parameter rsize und wsize ein kleines Tuning vorgenommen, das den Datentransfer beschleunigen soll. |
Es gibt noch mehr Optionen beim Exportieren von Verzeichnissen als nur ro und rw:
- /Server *.clients(rw,no_root_squash)
Der Root auf dem Client soll auch Root auf dem Server sein. Die Option no_root_squash erzwingt dies. Das Gegenstück wäre root_squash.
- /Server *.clients(rw,no_root_squash,map_daemon)
Wenn die User-IDs auf dem Server und dem Client gleich sein sollen, können Sie eine Umsetzungstabelle generieren lassen. Dazu muss der Daemon ugidd gestartet sein.
- /Server *.clients(rw,noaccess)
Diese Option dient dazu, bei größeren Verzeichnisbäumen den Zugang zu Unterverzeichnissen zu sperren. Das ist hervorragend dazu geeignet, beispielsweise das /var-Verzeichnis mit seinen vielen Unterverzeichnissen freizugeben, anstatt etliche Unterverzeichnisse explizit zum Mounten freizugeben.
- mount -o rw,ro,bg,wsize,rsize Server:/Server /mnt/import -t nfs
Der Parameter bg bedeutet, dass der Mount-Prozess in den Hintergrund gestellt wird, was vor allem bei Netzstörungen oder hoher Netzbelastung interessant ist, und dort weiter sein Glück versucht. wsize und rsize geben die Anzahl der Bytes an, die als Block über das Netz geschrieben und gelesen werden. Diese Option wirkt sich stark auf die Performance aus, daher wird der Wert 8192 für beide empfohlen (Standard ist 1024).
Serververzeichnisse dauerhaft einbinden
Die oben gezeigte Vorgehensweise hat einen kleinen Schönheitsfehler: Nach einem eventuellen Neustart Ihres Clients ist die Einbindung des Serververzeichnisses wieder aufgehoben, und Sie müssen es erneut mounten. Es wäre doch wesentlich bequemer, wenn dies automatisiert bei jedem Systemstart geschehen würde. Nichts leichter als das: Sie müssen das Verzeichnis des Servers lediglich in die /etc/fstab Ihres Clients eintragen.
server:/media /media/share nfs rw,rsize=8192,wsize=8192 0 0
Statt server müssen Sie die IP-Adresse des Servers angeben. Jetzt ist das freigegebene Verzeichnis nach jedem Boot-Vorgang sofort verfügbar.
Tipp 266: NFS unter Windows
Um Dateien zwischen einem UNIX-Rechner und einem Windows-Rechner auszutauschen, wurde das Samba-Protokoll entwickelt. Ein zweites Protokoll macht die Einrichtung des Linux-Homeservers aber unnötig umständlich. Auch Windows kann dem Umgang mit NFS erlernen. Dies wird durch ein Java-Programm namens JFTP ermöglicht: http://j-ftp.sourceforge.net/. Es benötigt das aktuelle Java Runtime Environment (JRE) von Sun. Zur Konfiguration müssen Sie über den Pfad File • Connect to NFS Server Folgendes eingeben: URL: nfs://192.168.0.175 Den Rest belassen Sie so – und schon können Sie auch mit Windows auf unseren NFS-Share zugreifen. |