7.6 Netzwerkkonfiguration unter Linux
In den meisten modernen Linux-Systemen gibt es praktische grafische Tools zur Netzwerkkonfiguration. Da diese in jeder Distribution anders heißen und funktionieren, wird an dieser Stelle nur kurz erläutert, wie sich das Netzwerk mithilfe von Konsolentools einrichten lässt.
7.6.1 Grundeinstellungen
Unter Linux können Sie Gerätetreiber auf zwei Arten installieren: Entweder werden sie fest in den Kernel einkompiliert oder als dynamisch lad- und entfernbare Module eingerichtet. Beide Varianten wurden in diesem Kapitel bereits allgemein angesprochen.
Falls Sie einer Schnittstelle eine IP-Adresse zuweisen möchten, funktioniert dies ebenfalls über die grafischen Konfigurationsprogramme Ihrer Distribution oder über den Befehl ifconfig (für interface configuration). Wenn Sie ifconfig ohne Parameter eingeben, erhalten Sie eine Übersicht über die aktuelle Konfiguration, die zum Beispiel folgendermaßen aussieht:
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:00:CB:53:17:64
inet addr:192.168.1.2 Bcast:192.168.1.255
Mask:255.255.255.0
inet6 addr: fe80::200:cbff:fe53:1764/10
Scope:Link
inet6 addr: fe80::cb53:1764/10 Scope:Link
EtherTalk Phase 2 addr:65280/53
UP BROADCAST RUNNING MULTICAST MTU:150
Metric:1
RX packets:8908250 errors:0 dropped:8242
overruns:0 frame:0
TX packets:7453081 errors:0 dropped:0
overruns:0 carrier:0
collisions:2829807
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
EtherTalk Phase 2 addr:0/0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:994 errors:0 dropped:0 overruns:0
frame:0
TX packets:994 errors:0 dropped:0 overruns:0
carrier:0
collisions:0
Wie Sie sehen, besitzt der Computer eine Ethernet-Karte mit dem Gerätenamen eth0 und der IP-Adresse 192.168.1.2 sowie natürlich ein Loopback-Interface. Einige der anderen Informationen sollten Sie wiedererkennen und verstehen, wenn Sie Kapitel 4, »Netzwerkgrundlagen«, gründlich gelesen haben. Wenn der Rechner noch weitere Ethernet-Karten hätte, würden ihre Gerätenamen entsprechend eth1, eth2 und so weiter lauten.
Falls Sie der Schnittstelle eth0 eine andere IP-Adresse zuweisen möchten, müssen Sie Folgendes eingeben:
Beachten Sie, dass diese Zuweisung nur für die Dauer einer Sitzung gilt. Damit sie dauerhaft gültig bleibt, muss der Konfigurationsbefehl in einem Skript stehen, das beim Systemstart automatisch ausgeführt wird. Die beiden grundsätzlichen Varianten – System V Init und BSD-Startskripte – wurden hier bereits erläutert. In der Regel ist es aber einfacher, das Konfigurationsprogramm Ihrer Linux-Distribution einzusetzen. insbesondere für erweiterte TCP/IP-Optionen wie Nameserver, den Bezug der Konfigurationsdaten über DHCP oder den Netzzugang über Wählleitungen.
Wenn Sie über das LAN auf andere Netzwerkbereiche oder auf das Internet zugreifen, müssen Sie als Nächstes eine Routing-Konfiguration erstellen. Angenommen, Ihre eigene (feste) IP-Adresse sei 192.168.0.9. Um das Default-Gateway 192.168.0.1, einen DSL-Router für Internetverbindungen, einzurichten, können Sie den folgenden Befehl eingeben:
default gw besagt, dass hier das Default-Gateway eingestellt wird. Beachten Sie, dass auch diese Einstellung in ein Startskript gehört.
Die Verwendung anderer Netzwerkprotokolle als TCP/IP ist unter Unix nur in absoluten Ausnahmefällen erforderlich. Falls Sie AppleTalk, NetBEUI oder ein anderes Protokoll auf Ihrem Linux-System verwenden möchten, müssen Sie es zunächst in den Kernel einkompilieren. Aber selbst die im Folgenden behandelten Datei- und Druckserver, über die Linux Windows- und Mac OS-Clients bedienen kann, arbeiten standardmäßig über IP.
7.6.2 TCP/IP-Dienstprogramme
Linux enthält im Wesentlichen dieselben TCP/IP-Testprogramme wie Windows, nur ihre Syntax unterscheidet sich in Details.
ping sendet in der Linux-Version ein Paket nach dem anderen, bis Sie + drücken; danach wird die Statistik angezeigt. Das folgende Beispiel testet die Loopback-Schnittstelle:
$ ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.318 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.151 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.165 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.154 ms
^C
--- localhost ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.151/0.197/0.318/0.070 ms
Das Programm zur Routenverfolgung heißt auf Unix-Systemen traceroute. netstat funktioniert wie unter Windows, nur heißt die Option zum Beschränken der Ausgabe auf TCP-Pakete hier einfach -t.
Auch nslookup funktioniert wie die Windows-Version. Sie sollten aber überprüfen, ob bei Ihnen das Programm dig vorhanden ist – es erfüllt im Wesentlichen dieselbe Aufgabe wie nslookup, liefert aber erheblich aussagekräftigere Antworten.
7.6.3 Datei- und Druckserver unter Linux
Unter Unix gibt es eine Reihe von Möglichkeiten, Dateisysteme und Drucker im Netzwerk freizugeben. In diesem Abschnitt werden die folgenden Systeme kurz vorgestellt: das Unix-File-Sharing-System NFS, die Druckerumgebung CUPS sowie Samba als freier Server für Windows-Netzwerke.
Beachten Sie, dass alle hier und in den späteren Kapiteln besprochenen Konfigurationsdateien einfache ASCII-Textdateien sind, die Sie mit einem beliebigen Editor bearbeiten können. Ärgerlicherweise besitzt jede dieser Dateien über die erforderlichen unterschiedlichen Konfigurationsbefehle hinaus noch eine andere Syntax, die man sich jeweils aneignen muss. Die meisten neueren Softwareprojekte entscheiden sich glücklicherweise immer häufiger für das standardisierte XML-Format.
NFS
Die klassische, unter allen gängigen Unix-Systemen standardisierte Form der Dateifreigabe ist das Network File System (NFS). Es gibt zwar zahlreiche modernere, leistungsfähigere Netzwerkdateisysteme, aber noch immer bildet NFS eine Menge der gemeinsamen Eigenschaften.
Wenn Sie auf Ihrem Rechner Dateien über NFS freigeben möchten, müssen Sie zunächst den NFS-Server starten, dessen eigentlicher Name nfsd (Network File System Daemon) lautet. Was hier bereits über die TCP/IP-Konfiguration gesagt wurde, gilt auch für den nfsd und andere Serverdienste: Damit sie beim Booten automatisch gestartet werden, müssen sie in ein Bootskript eingetragen werden, das je nach Unix-Version oder Linux-Distribution unterschiedlich aufgebaut ist. Das Einfachste ist es also auch hier, den Start des NFS-Servers über das Konfigurationsprogramm Ihrer Distribution zu konfigurieren.
Welche Verzeichnisse Sie für den Netzwerkzugriff freigeben möchten, regelt die Konfigurationsdatei /etc/exports. Ein Eintrag zur Freigabe eines Verzeichnisses besitzt unter Linux das folgende Format:
Wenn Sie also beispielsweise das Verzeichnis /test ohne besondere Einstellungen an die Rechner 192.168.0.3 und 192.168.0.4 in Ihrem lokalen Netzwerk freigeben möchten, lautet die Zeile in der Konfigurationsdatei:
/test 192.168.0.3 192.168.0.4
Beachten Sie, dass die Konfigurationsdatei bei anderen Unix-Versionen eine andere Syntax besitzt als unter Linux. In Sun Solaris heißt sie sogar anders, nämlich /etc/dfs/dfstab.
Um die für den Export bestimmten Verzeichnisse tatsächlich freizugeben, müssen Sie die folgende Anweisung verwenden, die ebenfalls in einem Startskript stehen sollte:
# exportfs -a
Wenn Sie auf ein freigegebenes NFS-Verzeichnis eines anderen Rechners zugreifen möchten, müssen Sie es mithilfe des mount-Befehls in Ihren Verzeichnisbaum importieren. Das funktioniert beispielsweise folgendermaßen:
Die Option -t nfs gibt den Dateisystemtyp NFS an. Das zu mountende Verzeichnis beginnt mit dem Namen des gewünschten Hosts, der durch einen Doppelpunkt vom entfernten Pfad getrennt wird; die letzte Angabe ist wie gehabt das lokale Verzeichnis, in das der importierte Pfad eingebunden werden soll.
CUPS
Das Drucken unter Unix und erst recht die Freigabe von Druckern im Netzwerk gehörten in früheren Zeiten zu den kompliziertesten Themen. Seit einigen Jahren steht mit dem Common Unix Printing System (CUPS) eine sehr praktische Schnittstelle zu vielen verschiedenen Druckern, Druckertreibern und Seitenbeschreibungssprachen zur Verfügung. Es handelt sich um ein GNU-basiertes Open-Source-Projekt, das von der Firma Easy Software Products entwickelt wird.
Systeme wie der BSD-lpd (Line Printer Daemon) oder ein ähnliches Paket aus System V wurden in den 1970er Jahren entworfen und dienen lediglich der zeilenweisen Ausgabe von Text. Für Grafik, PostScript-Druck und so weiter wurden in der Folgezeit zahlreiche proprietäre Lösungen eingeführt. CUPS fasst die Funktionen der klassischen Unix-Druckumgebungen zusammen und fügt allgemeingültige Lösungen für den Grafikdruck hinzu.
Die Schaltzentrale von CUPS ist der Scheduler, der die verschiedenen Druckjobs entgegennimmt und in die Warteschlangen (Queues) der verschiedenen Drucker stellt. Der Scheduler ist ein kleiner HTTP-Server und kann Druckjobs deshalb sowohl vom lokalen Rechner als auch aus dem Netzwerk entgegennehmen; er lauscht am TCP-Port 631. Die Druckjobs werden als HTTP-PUT-Anfragen in einem bestimmten Format übermittelt, das als Internet Printing Protocol (IPP) in RFC 2911 und anderen RFCs definiert ist. Außerdem kann der Scheduler natürlich als gewöhnlicher Webserver verwendet werden, was zum Beispiel manchmal genutzt wird, um die CUPS-Dokumentation im HTML-Format im Intranet bereitzustellen.
Das bekannte und weitverbreitete HTTP-Protokoll sorgt dafür, dass es sehr leicht ist, CUPS-Clients zu schreiben. Aus diesem Grund verbreiten sie sich schnell in der Unix-Welt. Innerhalb weniger Jahre hat sich CUPS zu einer der führenden Drucklösungen entwickelt.
Wenn an Ihren Rechner ein Drucker angeschlossen ist, der sich über CUPS ansteuern lässt (das System ist mit Treibern für fast alle gängigen Druckermodelle ausgestattet), können Sie den CUPS-Server cupsd starten, um selbst darauf zu drucken oder anderen Benutzern im Netzwerk den Zugriff auf den Drucker zu erlauben. Auch für den Zugriff auf die CUPS-Drucker anderer Hosts müssen Sie cupsd auf Ihrem eigenen Rechner einrichten.
Die Konfiguration des Daemons steht normalerweise in der Konfigurationsdatei /etc/cups/cupsd.conf. Die wichtigsten Befehle sind Allow und Deny, mit denen Sie den jeweils angegebenen Hosts den Zugriff gewähren beziehungsweise verweigern können. BrowseAllow und BrowseDeny ermöglichen dagegen die Angabe von Hosts, deren Druckerinformationen Sie erhalten oder nicht erhalten möchten.
Samba
Der Dateiserver Samba ermöglicht die Freigabe von Verzeichnissen und Druckern an Windows-Clients. Der Name leitet sich von SMB ab, dem File-Sharing-Protokoll der Windows-Betriebssysteme.
Wenn Sie Samba benutzen möchten, muss der Samba-Server smbd laufen. Die Konfiguration des Servers ist in der Datei /etc/smb.conf festgelegt. Sie verfügt über Dutzende möglicher Konfigurationsbefehle, die auf der Manpage man smb.conf dokumentiert sind. Die Datei ähnelt eher einer Windows-ini-Datei als einer typischen Unix-Konfigurationsdatei: Unter verschiedenen Abschnitten, deren Namen in eckigen Klammern stehen, werden die Konfigurationsbefehle zeilenweise als Name=Wert-Paare gesetzt.
Die folgende kurze smb.conf-Datei ermöglicht beliebigen Windows-Benutzern den anonymen Vollzugriff auf das Verzeichnis /export/pub und auf einen Drucker vom Typ HP LaserJet:
[global]
netbios name = Server
workgroup = Workgroup
hosts allow = 192.168.1.
log file = /var/log/samba/log.%m
printing = cups
guest account = nobody
security = share
[pub]
comment = Serververzeichnis für alle
path = /export/pub
public = yes
writable = yes
printable = yes
browseable = yes
create mask = 0775
[hplj]
comment = HP LaserJet
printer name = hplj
writable = yes
public = yes
printable = yes
browseable = yes
Die Gruppe [global] enthält zunächst die allgemeine Konfiguration: Der netbios name ist der Rechnername, der in der Windows-Netzwerkumgebung angezeigt werden soll. Wenn Sie ihn weglassen, wird stattdessen der TCP/IP-Hostname exportiert. Die workgroup gibt an, in welcher Windows-Netzwerk-Arbeitsgruppe der Samba-Server auftauchen soll. hosts allow enthält eine Liste von IP-Adress-Schemata, die auf den Server zugreifen dürfen – in diesem Beispiel das LAN mit der Adressgruppe 192.168.1.x. Die Angabe %m hinter dem log file gibt an, dass pro Monat eine neue Log-Datei angelegt werden soll, die mit der Nummer des laufenden Monats endet. security bestimmt die in diesem Kapitel bereits besprochene Windows-Freigabeebene. share steht für Share Level Security, während user für User Level Security verwendet wird. Wenn Gäste zugreifen, werden ihre Aktionen unter dem lokalen Benutzerkonto nobody ausgeführt.
Unter dem selbst gewählten Namen [pub] wird das Verzeichnis /export/pub freigegeben. Das Setzen sämtlicher Optionen auf den Wert yes bedeutet, dass der vollständige Zugriff auf das Verzeichnis möglich ist. Die create mask gibt an, mit welchen Benutzerrechten neu angelegte Dateien gespeichert werden sollen. Ähnliche Einstellungen gelten auch für den Drucker.
Die Samba-Distribution enthält neben dem Server übrigens einen SMB-Client, mit dessen Hilfe Sie umgekehrt auf Windows-Freigaben im Netzwerk zugreifen können. Er wird über den Konsolenbefehl smbclient aufgerufen und bildet eine Art eigene Shell. Zunächst können Sie testen, welche Freigaben ein bestimmter Windows-Host überhaupt zur Verfügung stellt:
Sie erhalten eine Liste aller freigegebenen Ordner auf dem angegebenen Host, in diesem Fall winbox. Angenommen, die Liste enthält eine Freigabe namens PUB vom Typ Disk (Festplatte; eigentlich Verzeichnis). Sie können folgendermaßen auf dieses Verzeichnis zugreifen:
$ smbclient \\\\winbox\\pub
Der NetBIOS-Freigabename des Verzeichnisses lautet eigentlich \\winbox\pub. Da die Unix-Shell den Backslash aber für Escape-Sequenzen einsetzt, müssen Sie je einen durch zwei von ihnen darstellen. Anschließend können Sie eine Reihe verschiedener Befehle eingeben, um Dateioperationen an den Inhalten der Freigabe vorzunehmen. Viele von ihnen entsprechen den Windows-Konsolenbefehlen, die im vorigen Kapitel erläutert wurden. Der Befehl h listet alle verfügbaren Befehle auf. Mithilfe von quit oder exit können Sie den smbclient beenden.
Noch einfacher ist es, die SMB-Freigabe mithilfe von mount als Volume zu mounten; danach können Sie sie benutzen wie jedes andere Verzeichnis. Das folgende Beispiel macht die vorige Freigabe unter dem Verzeichnis /media/smb verfügbar, das zuvor angelegt worden sein muss:
# mount -t cifs //winbox/pub /media/smb
Bei älteren Samba-Versionen musste das Dateisystem als smbfs statt als cifs (Common Internet File System) angegeben werden.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.