20.2 Homogenes Netzwerk
Ein 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.
20.2.1 Grundlagen
Bequemer als die SSH-Methode via scp (siehe Abschnitt 18.1.2, »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 Abschnitt 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
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 beiliegenden DVD 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.
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 noch 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 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).
Installation
Auf die Installation des Grundsystems wollen wir an dieser Stelle nicht weiter eingehen, da sie in Kapitel 5, »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.
20.2.2 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: 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. 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 Netzwerks.
Im Internet gibt es sehr viele NFS-Server (zum Beispiel 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. Sollte auf Ihrem System noch kein Portmapper vorhanden sein, können Sie ihn mit Hilfe des Befehls
sudo apt-get install portmap
nachträglich installieren. Der Portmapper (oder rpc.portmap) wird durch den init-Daemon beim Booten gestartet und sollte 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 20.5 In der Datei /etc/exports verwalten Sie die Freigaben des Servers.Sie ist zu Beginn leer, andere Rechner besitzen also 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 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
20.2.3 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üpunktes Freigabeoptionen. Für weitere Informationen sehen Sie bitte in Abschnitt 6.7.3, »Ordner teilen – auch mit Windows«, nach.
Die andere Möglichkeit, Dateifreigaben grafisch zu verwalten, benötigt zwingend einen laufenden Apache-Server (zu installieren über das Paket apache2, siehe auch Abschnitt 21.1, »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. 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 272: NFS-Verzeichnisse dauerhaft einbinden |
Möchten Sie das NFS-Verzeichnis dauerhaft auf den Client importieren, tragen Sie Folgendes in die Datei /etc/fstab ein (bitte in eine Zeile schreiben): |
sudo nano /etc/fstab |
Dabei wurde über die Parameter rsize und wsize ein kleines Tuning vorgenommen, das den Datentransfer beschleunigen soll. |
NFS-Optionen
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 273: 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. |
20.2.4 Drucker gemeinsam nutzen
Auch wenn Sie mehrere Rechner im Haushalt einsetzen, so möchten Sie doch in der Regel nicht für jeden einen eigenen Drucker bereitstellen. Also ist es notwendig, von allen Rechnern aus drucken zu können. Zu diesem Zweck bietet sich die Einrichtung von Druckerservern an.
CUPS
Generell ist der Zugriff auf das Druckersystem unter Ubuntu durch einen Dialog unter Systemeinstellungen • Drucker zu erreichen. Hier können Sie auch Netzwerkdrucker einrichten. Möchten Sie hingegen die umfangreichen Optionen von CUPS vollständig ausnutzen, so nutzen Sie am besten die browser-gestützte Verwaltung des CUPS-Druckersystems (siehe Abbildung 20.6).
Zugriff regeln
Allerdings sind unter Ubuntu einige Klimmzüge erforderlich, um den vollen Administratorzugriff auf das CUPS-System zu bekommen. Legen Sie als erstes ein Passwort für den CUPS-Administrator fest, um gegebenenfalls auch einen Remote-Zugriff zu gewährleisten. Das folgende Beispiel setzt voraus, dass auf dem entsprechenden System der Root-Account aktiviert wurde. Das Passwort sollte eine Länge von mindestens sechs Zeichen haben und mindestens eine Ziffer enthalten:
sudo lppasswd -g sys -a root
Damit die Änderungen übernommen werden, muss CUPS durch sudo /etc/init.d/cupsrestart neu gestartet werden. Geben Sie nun folgende Adresse in eine Zeile Ihres Browsers ein:
http://localhost:631/admin
Jetzt können Sie sich auf dem CUPS-Rechner lokal mit Ihrem normalen Account-Namen und Ihrem normalen Passwort im Administrationsbereich einloggen. Hier können Sie auch Druckaufträge von anderen Benutzern löschen sowie neue Drucker und Klassen hinzufügen (Abbildung 20.6).
Zugriff über das Netzwerk
Um die Verwaltung von CUPS über das Netzwerk freigeben zu können, müssen Sie die Datei /etc/cups/cupsd.conf anpassen. Zunächst muss CUPS sämtlichen Netzwerkzugriffen auf Port 631 lauschen. Dazu ersetzen Sie folgende Zeile in der Konfigurationsdatei:
# Auszug aus /etc/cups/cupsd.conf
# Listen 127.0.0.1:631
Port 631
Nun muss noch die Erlaubnis erteilt werden, aus dem angeschlossenen LAN auf CUPS zugreifen zu können:
# Auszug aus /etc/cups/cupsd.conf
<Location /admin>
# Restrict access to local domain
Deny From All
Allow From 127.0.0.1
Allow From 192.168.0.0/24
</Location>
Im obigen Fall wurde erneut der Zugriff innerhalb eines lokalen Netzes 192.168.0.x sowie vom lokalen PC gestattet. Nach der Änderung müssen Sie den CUPS-Daemon erneut starten. Für den administrativen Zugriff von einem entfernten PC aus wird nun die Login-Passwort-Kombination des CUPS-Root-Accounts verwendet. CUPS lässt sich übrigens auch hervorragend in Verbindung mit dem Samba-System in einem heterogenen Netzwerk mit Windows-PCs nutzen.
Abbildung 20.6 Administration von »CUPS« über den Browser
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.