logoOL.gif
user_gelb_schwarz_or.gif
logoUL.gif
logoUR.gif claim.gif
LinuxUser LinuxCommunity EasyLinux Linux-Magazin International
      Anzeige
TFT Monitor bei Mercateo kaufen.
Neues Netbook? Ein Preisvergleich lohnt sich.
Bei uns finden sie Notebooks, PDAs und Drucker mit Testberichten und Tipps.
Diamant Buchhaltungssoftware – transparent und detailliert auch für die Konzernbuchhaltung.
Günstige Shareware Programme als direkte Downloads im Software Portal.
Bis zu 70% sparen durch Preisvergleich.
      Anzeige

Erschienen in LinuxUser 03/2002   »   Ausgabe bestellen

Netzwerkgrundlagen am Beispiel eines lokalen Client-Server-Netzwerks

Vernetzte Welt

von Frederik Bijlsma


Sobald der Daten-Austausch über Disketten und CDs zwischen zwei oder mehreren Rechnern zu aufwändig wird, schlägt die Stunde des Netzwerks. Tatsächlich ist es ein Leichtes, Linux-Rechner (nicht nur mit ihresgleichen) Kontakt aufzunehmen zu lassen.

Um ein Netzwerk zu betreiben, braucht man zu allererst einmal die nötige Hardware. Jeder Computer muss eine 10/100-Base-T-Netzwerkkarte installiert haben. Wollen Sie nur zwei Rechner miteinander verbinden, reicht für diesen Sonderfall ein sogenanntes Cross-Connect-Kabel. Netzwerke, die aus mehr als zwei Rechnern bestehen, werden heute mit "Twisted Pair"-(TP-)Kabeln in einer Sternstruktur aufgebaut. Dazu benötigen Sie zudem einen kleinen Hub oderSwitch, an den alle Netzwerkteilnehmer angeschlossen werden.


10/100-Base-T: Abkürzung für ein Ethernet-Netzwerk mit Twisted-Pair-, also gedrillten Netzwerkkabeln. Ein 10-Base-T-Netzwerk erlaubt Geschwindigkeiten bis zu 10 Mbit pro Sekunde, in einem 100-Base-T-Netzwerk (Fast Ethernet genannt) müssen alle Komponenten für diesen Standard ausgelegt sein, damit die Daten mit 100 Mbit pro Sekunde übertragen werden können.
Hub:Ein Gerät, an dem sämtliche Netzwerkstränge sternförmig zusammenlaufen. Eingehende Daten werden an alle per Netzwerkkabel angeschlossenen Geräte weitergeleitet.
Switch: Eine Weiterentwicklung des Hubs mit grundsätzlich der gleichen Aufgabe. Wesentlich unterscheidet er sich dadurch, dass er "mitdenkt", das heißt, eingehende Datenpakete werden analysiert und nur an das Netzwerksegment weitergeleitet, in dem sich der Empfänger befindet. So können insgesamt mehr Datenpakete übertragen werden. Der Gesamtdurchsatz ist wesentlich höher als bei einem Hub.

Hardware-Beschaffung

Acht-Port-Hubs sind schon für unter 50 Euro zu bekommen. Möchte man sein Heim-Netzwerk später vergrößern, greift man besser zu einem Gerät mit einem sogenannten Uplink-Port.

Bei den Netzwerkkarten reichen handelsübliche Netzwerkadapter mit TP-Port vollkommen aus. Solche Karten gibt es für unter 15 Euro in jedem Computer-Laden. Gängig sind im Low-Cost-Bereich vor allem die Realtek- und National-Semiconductor-Chipsätze. Diese wie fast alle anderen lieferbaren Netzwerkkarten werden von aktuellen Linux-Distributionen ohne Probleme unterstützt. Falls Sie dennoch unsicher sind, ob Ihre Karte funktioniert und dies vor dem Kauf herausfinden möchten, lohnt sich eine Recherche in den im Kasten 1 aufgeführten Datenbanken.

Zur Verkabelung benötigen Sie Netzwerk-Patch-Kabel vom Typ Cat(egory) 5 (oder höher). Diese sind im Handel in vielen Längen und Farben erhältlich. Für ein kleines Heimnetzwerk ist es in den meisten Fällen egal, ob das Kabel besonders abgeschirmt ist (STP-("Screened Twisted Pair"-)Kabel): Ein normales UTP-("Unshielded TP"-)Kabel genügt. Cross-Connect-Kabel sind bis auf Ausnahmefälle nur für die Direktverbindung zweier Computer zu gebrauchen.

Sind die Netzwerkkarten eingebaut und mittels Patch-Kabel mit dem Hub oder Switch beziehungsweise direkt miteinander mittels Cross-Connect-Kabel verbunden, kann die Konfiguration beginnen.

Kasten 1: Unterstützt?

Bei Fragen zur Hardware-Unterstützung empfehlen wir einen Blick in die Internet-Datenbanken der großen Linux-Distributeure, etwa http://hardware.redhat.com/ und http://cdb.suse.de/. Eine weitere (nicht vollständige) Liste zu unterstützten Netzwerkkarten finden Sie unter http://www.scyld.com/network/.

Grundlegendes aus TCP/IP-Land

... zumindest, wenn die Grundlagen der (Inter-)Netzwerkerei bekannt sind. Hier stoßen wir unweigerlich auf TCP/IP, den Namen der Protokoll-Suite, die für große Netzwerke wie das Internet benutzt wird -- aber auch für unser kleines LAN. Konkurrierende Protokolle wurden oft nur teilweise oder in manchen Fällen gar nicht für bestimmte Betriebssysteme implementiert, ein Problem, das TCP/IP inzwischen fast nicht mehr betrifft.


TCP/IP: "Transmission Control Protocol" over "Internet Protocol". Das IP- Protokoll dient dazu, Daten zu adressieren und zu fragmentieren (also in übertragungsgerechte Pakete aufzuteilen) sowie sie alsdann (in Paketform) zu übermitteln. Das Absichern und Kontrollieren der Verbindung übernimmt das TCP-Protokoll. Es sortiert eingehende Daten und korrigiert Übertragungsfehler.
Protokoll: Regeln für die Unterhaltung von Rechnern untereinander. Für verschiedene Zwecke gibt es verschiedene Protokolle.
LAN: "Local Area Network", ein lokal angelegtes Netzwerk. Lokal heißt hier, dass beispielsweise ein Standort oder ein Haus vernetzt wird.

Das IP-Protokoll verwendet IP-Adressen (siehe Kasten 2), um Rechner zu identifizieren. Für unsere Zwecke verwenden wir IP-Nummern, die explizit für private Subnetze gedacht sind. Diese Adressbereiche (10.0.0.0 bis 10.255.255.255, 172.16.0.0 bis 172.31.255.255 und 192.168.0.0 bis 192.168.255.255) wurden im RFC 1918 [1] definiert, weil in der gegenwärtig vorherrschenden IP-Version 4 (IPv4) nicht genügend IP-Adressen für alle verfügbar sind. Allerdings dürfen Datenpakete mit solchen Adressen nicht direkt ins Internet geleitet werden: Diese Nummern werden von vielen LANs weltweit verwendet.

Ein Router im Internet kann daher nicht wissen, wohin entsprechend adressierte Pakete geleitet werden sollen. Private Adressräume müssen deshalb vor der Außenwelt verborgen werden. Diese Aufgabe erfüllt ein zwischengeschalteter Router, der Pakete aus dem LAN ins Internet (und umgekehrt) unter Verwendung seiner eigenen, öffentlichen IP-Adresse umschreibt. Diese Aufgabe bezeichnet man oft auch als IP-Masquerading oder mit dem Oberbegriff NAT("Network Address Translation").


RFC: "Request for Comments", Schriftstücke, die viele der grundlegenden Netzwerkstandards beschreiben. Die "Internet Engineering Task Force" (IETF) veröffentlicht in ihnen aber auch Vorschläge und sonstige Informationen.
Router: Der Begriff "Route" bezeichnet den Weg eines Datenpakets durch mehrere Netze. In einem kleinen Netzwerk werden zumeist nur statische (strikt festgelegte) Routen benutzt. Im Gegensatz dazu sind im Internet oft dynamische Routing-Protokolle anzutreffen, die ihre Routing-Entscheidung von mehreren Faktoren abhängig machen (zum Beispiel Geschwindigkeit, Verbindungstyp, Kosten der Verbindung). Ein Router legt die Route eines Netzwerkpakets fest.

Abb. 1: Vereinfacht: der Zusammenhang zwischen MAC, IP-Adresse und Hostname

Kasten 2: Das Problem mit der eindeutigen Adressierung

Wer Briefe um die Welt schickt, kennt das Problem: Ohne eindeutige Anschrift hat die Post keine Chance, die darin enthaltenen Daten reibungslos und ordnungsgemäß zuzustellen. Daher müssen auch Rechner in Computer-Netzen eindeutig zuordenbar sein.

Im Internet verwendet man weltweit eindeutige IP-Adressen. Eine IPv4-Adresse besteht aus vier Zahlen, die durch Punkte getrennt werden: 213.69.168.121. Dabei handelt es sich aber nur um eine platzsparende Schreibweise, denn eigentlich versteckt sich hinter jeder dieser vier Dezimal-Zahlen ein Oktett aus Nullen und Einsen, eine Binärzahl: 121 lässt sich im Binärsystem zu 0x2^7 + 1x2^6 + 1x2^5 + 1x2^4 + 1x2^3 + 0x2^2 + 0x2^1 + 1x2^0, also 01111001 zerpflücken. Vier Stellen à la acht Bits ergibt ein 32-Bit-Adresssystem.

Das ist zu wenig, wenn jedes Haushaltgerät auf der Welt eine IP-Adresse abbekommen soll. Daher wird zur Zeit der neue Standard IPv6 (IP Version 6) mit einem 128-Bit-Adresssystem propagiert. Damit werden so viele IP-Adressen definiert, dass IPv6 für jeden Quadratmeter der Erde bis zu 1500 IP-Adressen bereit hält. Dadurch wird die Krücke der privaten Adressen, die beim Übergang ins Internet maskiert werden müssen, unnötig. IPv6 soll bis 2005 weitgehend eingeführt werden.

Ein Netzwerk wiederum wird dadurch bestimmt, dass eine Anzahl der 32 Stellen einer IPv4-Adresse von links aus gesehen bei allen Teilnehmeradressen gleich bleibt. Setzt man alle unveränderlichen Stellen auf 1 und rechnet das Ganze wieder in vier Dezimalzahlen um, erhält man die sogenannte Netzwerkmaske (Netmask).

Zahlen zu Namen

Weil sich IP-Nummern so schlecht merken lassen, gibt es das Domain Name System (DNS). DNS-Server ordnen den numerischen IP-Adressen textuelle Adressen in der bekannten Domain-Schreibweise (zum Beispiel www.linux-user.de) zu und umgekehrt.

Da gerade für sehr kleine lokale Netze der Betrieb eines DNS-Servers etwas zuviel des Guten wäre, gibt es die Möglichkeit, numerische und textuelle IP-Adressen in der hosts-Datei eines jeden Rechners einzutragen. Auf Linux und anderen Unix-Betriebssystemen findet sie sich im Verzeichnis /etc, auf Windows 2000/NT unter C:\winnt\system32\drivers\etc\ und in Windows 98/95/ME unter C:\windows\.

Die Formatierung dieser Datei ist trivial: Links die IP-Nummer, rechts (durch Leerzeichen getrennt) beliebig viele Namen in Textform. Listing 1 zeigt die /etc/hosts für unsere Beispielkonfiguration.

Nummern zu Nummern

Wurde ein Paket erst einmal ins richtige Netzwerk geroutet, gibt es auf Netzwerkebene ein Problem: Einerseits hat es eine Ziel-IP-Adresse, andererseits sieht man auf dieser Abstraktionsebene nur die sogenannten MAC-Adressen (MAC steht hier für "Media Access Control") der Netzwerkkarten. Diese Adresse kennzeichnet jede aktive Netzwerkkomponente weltweit eindeutig und wird vom Hersteller zugewiesen. Sie besteht aus sechs Bytes in Hexadezimal-Schreibweise, die durch Doppelpunkte getrennt sind, zum Beispiel 00:01:02:9B:B0:0B. Welcher Rechner mit welcher MAC-Adresse eine bestimmte IP-Adresse hat, wird durch das ARP ("Address Resolution Protocol") aufgelöst.(Frederik Bijlsma/Patricia Jung)

Listing 1: /etc/hosts

 127.0.0.1 localhost.localdomain localhost
 192.168.0.2 server
 192.168.0.10 linux-client
 192.168.0.11 windows-client
 

Abb. 2: Kudzu hat eine Netzwerkkarte gefunden

Wie sag' ich's meinem Rechner?

Zunächst gilt es also, sich einen zusammenhängenden Adressbereich herauszusuchen. Was zusammenhängt, bestimmt dabei die Netzwerkmaske oder Netmask (Kasten 2). Als Beispiel verwenden wir das Netzwerk 192.168.0.0 mit der Netmask 255.255.255.0. Hat der Host, zu dem Kontakt aufgenommen werden soll, eine nicht zwischen 192.168.0.1 und 192.168.0.254 liegende IP-Adresse, muss ein Router entscheiden, wohin die Daten gehen sollen.

Aktuelle Linux-Distributionen wie SuSE oder Red Hat erkennen Ihre Netzwerkkarte normalerweise automatisch. Red Hat Linux verwendet dazu ein Tool namens Kudzu, das beim Hochfahren des Rechners anbietet, neue Hardware zu installieren. Drücken Sie hier die Eingabetaste, werden Sie gefragt, ob Sie die Karte konfigurieren, für immer ignorieren oder gar nichts tun wollen (Abbildung 2). Wählen Sie den Punkt Konfigurieren, bindet Kudzu das passende Kernel-Modul in die laufende Konfiguration ein und fragt auf dem nächsten Bildschirm Would you like to set up networking? Ihre Antwort sollte hier unbedingt Yes sein. Kudzu ruft nun das Red-Hat-eigene Konfigurationsprogramm netconfig auf (Abbildung 3).

Damit verwalten Sie sämtliche Einstellungen Ihrer Netzwerkkarte -- für unser Beispiel-Netzwerk aus einem Linux-Server, einem Linux-Client und einem Windows-Client gelten die Daten aus Tabelle 1. Haben Sie keinen lokalen DNS-Nameserver installiert, lassen Sie diesen Punkt leer. Auch für den Eintrag eines Gateway-Rechners zum Internet oder einem anderen LAN fehlen momentan die Voraussetzungen; hier tragen Sie bei allen Rechnern nichts ein.

Wählen Sie sich von einem Ihrer Computer aus via ISDN/ADSL oder PPP ins Internet ein, bekommt dieser Rechner beide Informationen meist dynamisch vom Internet-Provider zugeteilt; ansonsten sollten Sie die Daten mit der Zugangsinformation erhalten haben.

Um von den restlichen Rechnern Ihres LANs aus ins Internet zu gehen, fehlt die Konfiguration des IP-Masqueradings auf dem Internet-Zugangsrechner, der dann als Gateway dient. Dieser Punkt geht allerdings über den Umfang dieses Artikels hinaus.

Haben Sie Ihre Einstellungen getätigt, wählen Sie OK, und Ihr Linux-System fährt mit bereits konfiguriertem Netzwerk-Interface hoch.

Tabelle 2 zeigt auf, mit welchen (distributionsspezifischen) Tools Sie auf einem bereits laufenden Linux die Konfigurationsdaten für ein Netzwerk-Interface (das der ersten Netzwerkkarte heißt eth0) bleibend im System verankern. Ab Seite 30 erfahren Sie, welche distributionsunabhängigen Werkzeuge zur Netzwerkkonfiguration taugen; Kasten 3 zeigt am Beispiel von Red Hat Linux, welche Dateien man ändern muss, will man ganz ohne extra Konfigurationsprogramme auskommen.

Tabelle 1: Daten für ein Beispiel-Netzwerk
Server-IP-Adresse 192.168.0.2
IP-Adresse des Linux-Clients 192.168.0.10
IP-Adresse des Windows-Clients 192.168.0.11
IP-Netzwerk/Netmask 192.168.0.0/255.255.255.0

Tabelle 2: Distributionsabhängige Netzwerkkonfiguration bei Red Hat und SuSE
Beschreibung Red Hat Linux SuSE Linux
Einrichten grundlegender Netz-Interface-Einstellungen netconfig yast-Menüpunkt Administration des Systems / Netzwerk konfigurieren / Netzwerk Grundkonfiguration
Konfiguration einer Verbindung zum Internet internet-config yast-Menüpunkt Administration des Systems / Netzwerk konfigurieren
Neustart der Netzwerk-Interfaces nach einer Änderung der Konfigurationsdateien service network restart /sbin/SuSEconfig ; /sbin/init.d/network restart

Kasten 3: Netzwerkkonfiguration per Text-Editor

Die distributionsspezifischen Konfigurationstools vollbringen keine Wunderdinge, sondern ändern in der Regel ein paar Text-Dateien ab -- leider je nach Distribution verschiedene. Bei Red Hat Linux und Verwandten sind diese so einfach gestaltet, dass man zum Konfigurieren problemlos mit einem Text-Editor auskommt.

Die wichtigsten Netzwerkeinstellungen finden Sie hier in der Datei /etc/sysconfig/network:

 NETWORKING=yes
 HOSTNAME=server
 GATEWAY=192.168.0.2
 

Der Parameter HOSTNAME gibt den primären Namen des Rechners an, während GATEWAY (wenn nötig) die IP-Adresse des IP-Gateways enthält. Weiterhin existiert für jeden logischen Netzwerkadapter eine weitere Datei mit dem Namen /etc/sysconfig/network-scripts/ifcfg-[Name_des_Adapters]; für das Interface eth0 heißt sie /etc/sysconfig/network-scripts/ifcfg-eth0:

 DEVICE=eth0
 BOOTPROTO=static
 IPADDR=192.168.0.2
 NETMASK=255.255.255.0
 ONBOOT=yes
 

Der Parameter DEVICE referenziert hier den logischen Namen des entsprechenden Adapters an, BOOTPROTO gibt an, ob die Adressvergabe statisch geschehen soll oder ob ein automatisches Vergabeprotokoll benutzt werden soll: So stellt BOOTPROTO=dhcp die Adressvergabe auf DHCP um. Benutzt man statische IP-Adressen, muss IPADDR die entsprechende IP-Adresse und NETMASK die Netzmaske enthalten. ONBOOT legt fest, ob das Interface beim Hochfahren des Rechners automatisch gestartet werden soll.

In der (in jeder Distribution enthaltenen) Datei /etc/resolv.conf können Sie nun noch die zu verwendeten DNS-Server eintragen:

 nameserver 192.168.0.2 
 nameserver 127.0.0.1
 

In diesem Beispiel befragt das System zuerst den Name-Server unter 192.168.0.2; bleibt der die Antwort schuldig, kommt localhost (also der fragende Rechner selbst, der immer auch als 127.0.0.1 ansprechbar ist) zum Zuge.

Der Befehl service network restart überträgt bei Red Hat Linux alle Änderungen ins laufende System. Bei SuSE setzt man ähnliche Parameter in der zentralen Konfigurationsdatei /etc/rc.config, ruft das Programm SuSEconfig auf und startet das Netzwerk über das Boot-Skript /sbin/init.d/network neu (vgl. Tabelle 2). Das Netzwerk-Startskript unterhalb von /etc/init.d, /etc/rc.d/init.d o. ä. ist auch bei anderen Distributionen ein guter Anfangspunkt, um nach den jeweils passenden Konfigurationsdateien zu suchen.

Abb. 3: Eingabe von Netzwerkdaten in netconfig

Hello World?

Sind alle Rechner konfiguriert, überprüfen Sie mit einem einfachen Test, ob die eingerichteten Interfaces erreichbar ist: Setzen Sie auf der Kommandozeile eines jeden Rechners aus dem Beispielnetzwerk den folgenden Befehl ab:

ping -c1 192.168.0.2

Enthält die Ausgabe jeweils den Satz 1 packets transmitted, 1 packets received, war der Test erfolgreich.

Sofern Sie keinen lokalen DNS-Server aufgesetzt haben (ein entsprechender Artikel erwartet Sie in einer der nächsten LinuxUser-Ausgaben), versorgen Sie nun jeden Ihrer Rechner mit einer hosts-Datei, wie sie Listing 1 zeigt (vgl. auch Kasten 2). Damit lassen sich die LAN-Rechner mit Namen ansprechen. Ein einfaches ping -c1 server sollte nun -- genau wie mit dem vorigen ping-Kommando -- einen Datentransport zum und vom Server-Rechner bestätigen. Doch wozu ein Server, wenn der keine Dienste anbietet?

Arbeit für den Server

Auf dem Server eines Heimnetzwerks sind -- außer dem bereits erwähnten Namensdienst per DNS-Server oder über die Datei hosts -- folgende Dienste sinnvoll:

Tanze Samba mit mir!

Samba [4] ist eine Programm-Suite für Unix-Betriebssysteme, die es Linux-Clients ermöglicht, SMB-Shares von Windows-Rechnern einzubinden, und es erlaubt, Freigaben für Windows-Rechner auf einem Linux- oder Unix-Rechner zu erstellen. Samba ist eine inzwischen sehr ausgereifte Implementierung, die erst vor Kurzem ihren zehnten Geburtstag feierte.


SMB: Das "Server Message Block"-Protokoll wird für Datei-, Druck- und sonstige Server-Dienste von Windows-Systemen verwendet.

Auf dem Beispiel-Server soll damit ein Verzeichnis /tmp/austausch zum Tauschen von Dokumenten entstehen; zudem geben wir die Heimatverzeichnisse der Linux-Benutzer frei. Dies sind allerdings nur zwei von vielen Anwendungsmöglichkeiten.

Die zentrale Konfigurationsdatei steckt bei den meisten Linux-Distributionen unter /etc/samba/smb.conf oder /etc/smb.conf. Listing 2 zeigt ein kommentiertes Beispiel, das wir uns etwas näher anschauen.

Listing 2: smb.conf

 # Im folgenden findet man systemweite Einstellungen
 [global]
 # Name der Arbeitsgruppe/Domaene
 workgroup = KILLESBERG
 # Beschreibung des Servers
 server string = Samba Server
 # Hosts, die auf den Server allgemein zugreifen duerfen;
 # hier alle Hosts in den Netzen 127.0.0.0 und 192.168.0.0:
 hosts allow = 192.168.0. 127.
 # Log-Daten werden in folgende, nach dem
 # Netbios-Maschinennamen (%m) benannte Dateien geschrieben 
 log file = /var/log/samba/%m.log
 # Maximale Groesse der Logfiles (0=unbegrenzt)
 max log size = 0
 # Sicherheitseinstellung des Servers
 # Share-Sicherheit genügt für unsere Zwecke,
 # da wir keine User-Datenbank verwenden
 security = share 
 # Passwortverschluesselung (noetig für Win98 und hoeher) 
 encrypt passwords = yes
 smb passwd file = /etc/samba/smbpasswd
 
 # Ab hier definieren wir nun Shares:
 [austausch]
    comment = Austausch-Verzeichnis
    path = /tmp/austausch
    browseable = yes
    writable = yes
    guest ok = yes
 
 [homes]
    comment = Heimatverzeichnisse freigeben
    browseable = no
    writable = yes
 

Die erste Sektion, [global], beschreibt allgemeine Einstellungen wie Arbeitsgruppe und allgemeine Zugriffseinschränkungen. Der wichtigste Parameter ist hier security: Damit gibt man an, wie Benutzernamen authentifiziert werden sollen. Für unseren Zweck reicht die einfachste Authentifizierungsmethode, share. Für Windows-Clients ab Windows 98 ist Passwortverschlüsselung nötig und sollte deswegen in fast allen Fällen aktiviert werden.

Mit dem zweiten eckigen Klammernpaar startet ein neuer Abschnitt, der sich auf das geplante Austausch-Verzeichnis bezieht. Der Name in Klammern bezeichnet immer den Namen der Freigabe, hier zweckmäßigerweise einfach austausch. Durch Angabe von Optionen lässt sich näher definieren, wie die Freigabe aussehen soll. So enthält comment eine textuelle Beschreibung des Shares, während path den genauen Verzeichnisnamen auf dem Server enthält. Das entsprechende Verzeichnis /tmp/austausch erstellt man mit einem einfachen

mkdir /tmp/austausch

Die Parameter browseable, writable und guest ok können nur yes oder no enthalten. Der erste gibt an, ob die Freigabe beim Durchsuchen des Netzwerkes gefunden werden kann. writable regelt, ob Benutzer Daten auf dem Share schreibend ändern dürfen, während ein guest ok = yes auch nicht am Samba-Server angemeldeten Usern Zugriffsrechte erteilt.

Für die Freigabe der Heimatverzeichnisse der Server-Benutzer gibt es mit homes einen speziell hierfür reservierten Namen. Er weist jedem Samba-Benutzernamen sein gleichlautendes Home-Directory auf dem Linux-Server zu. Wichtig dabei ist, dass jeder Benutzer auf dem Server mit dem Kommando smbpasswd ein Passwort für den entsprechenden Zugriff setzt. Das Programm muss unbedingt vom Linux-Acount des jeweiligen Benutzers ausgeführt werden, und nur für diesen gilt das Passwort dann.

Einmal konfiguriert, starten Sie den Samba-Server unter Red Hat Linux durch Eingabe des Kommandozeilenbefehls

service smb start

Für SuSE-Linux benutzen Sie

/sbin/init.d/smb start

Bei anderen Distributionen ist das entsprechende Startskript in /etc/init.d oder einem ähnlichen Ort enthalten.

Soll der Dienst für jeden Boot-Vorgang automatisch gestartet werden, bewerkstelligt man dies unter Red Hat Linux durch Eingabe von

chkconfig --level 345 smb on

Bei SuSE Linux muss die Variable START_SMB in der Datei /etc/rc.config auf yes gesetzt sein.

Kleiner Indianer

Die Möglichkeiten des -- bei nahezu allen Distributionen mitgelieferten -- Apache-Web-Servers lassen sich nur von dicken Büchern erschöpfend vorstellen. Doch selbst, wer sich mit dessen Konfiguration nicht beschäftigen will, bekommt von aktuellen Distributionen die Möglichkeit, etwa aus dem Internet heruntergeladene Dokumentation im HTML-, PDF- oder Text-Format zentral für das gesamte LAN auf einem vorkonfigurierten und oft auch vorinstallierten Web-Server abzulegen.

Wird dieser beim Booten automatisch gestartet, können Clients eines Red-Hat-Linux-Servers unter Angabe der URL http://server/1.html auf eine Datei 1.html zugreifen, die auf dem Server im Verzeichnis/var/www/html liegt. Für SuSE-Server lautet dieses Verzeichnis /usr/local/httpd/htdocs. Darin erstellte Unterverzeichnisse wie Dateien werden sofort auf dem Web-Server zugänglich, vorausgesetzt, die Zugriffsrechte stimmen. Dateien müssen für jedermann lesbar sein. Folgender Befehl macht eine Datei für alle, und damit auch den Web-Server lesbar (+r steht für "+ read"), ohne sonstige Rechte (zum Beispiel Schreibrechte) zu verändern:

chmod a+r datei

Kunde Linux

Sobald der Server seine Dienste anbietet, können die Clients darauf zugreifen: Auf den Web-Server (wie beschrieben) mit einem Web-Browser, auf den SSH-Dienst mit den Kommandozeilenprogrammen ssh zum Einloggen...

ssh username_auf_dem_Server@server
... und scp zum Kopieren von Dateien:
scp datei.txt username_auf_dem_Server@server:/tmp

(wobei die Datei datei.txt aus dem Arbeitsverzeichnis auf dem Client anschließend im Verzeichnis /tmp auf dem Server landet).

Um nun auch von Linux aus auf die SMB-Freigaben des Servers zuzugreifen, bindet man das entsprechende Verzeichnis ins lokale Dateisystem ein: So mountet der folgende Kommandozeilenbefehl das Home-Verzeichnis von testbenutzer aus dem Share //server/homes ins Verzeichnis /home/testbenutzer auf dem lokalen Rechner:

mount -t smbfs -o username=testbenutzer,password=meinpassword,rw //server/homes /home/testbenutzer

Beachten Sie bitte: Dieses Kommando müssen Sie als root-Benutzer eingeben. Dank der rw-Option darf testuser lesend und schreibend ("read-write") darauf zugreifen -- vorausgesetzt, das Passwort zum Anmelden am Server stimmt.

[ Samba-Freigabe im Konqueror ]

Abb. 4: Zugriff auf die Samba-Freigabe mit dem Konqueror

Der Windows-Client

Wer Windows-Clients einsetzt, hält sich eine Menge Probleme vom Hals, wenn auf dem Server ein DHCP-Daemon die Zuteilung der nötigen Netzwerkdaten und IP-Adressen übernimmt. Soll dies manuell geschehen, ist der Weg zum Erfolg bei jeder Windows-Version anders, geht aber meist über die Systemsteuerung und den Menüpunkt Netzwerk.

Um Zugriff auf per SMB zugängliche Netzwerkressourcen zu bekommen, muss der Name der Arbeitsgruppe mit der auf dem Server angegebenen übereinstimmen -- in Listing 2 also KILLESBERG. Netzwerkumgebung / Killesberg / Server führt in unserem Beispiel zu den freigegebenen Verzeichnissen. Je nach Windows-Version können Sie auch mithilfe kompletter Pfadangaben im Dialog Start / Ausführen auf Einzeldateien direkt zugreifen. Die Eingabe von \\server\testbenutzer\test.txt an dieser Stelle liest die Datei test.txt aus dem Home-Verzeichnis des Users testbenutzer vom Server direkt in ein Textverarbeitungsprogramm.

Um von Windows aus in einem Kommandozeilenfenster auf dem Server zu arbeiten, installieren Sie das SSH- (und Telnet-)Programm PuTTy [6] (Abbildung 5). Der einzige Wermutstropfen: Grafische Programme lassen sich nicht nutzen.

[ Putty ]

Abb. 5: Von Windows aus ein Blick in die Log-Files des Servers

Wenn alle Rechner erst einmal zusammenspielen, steigen die Ansprüche -- hier zeigt sich dann, dass das Netz der Netze eine gute Informationsquelle abgibt: In [2] und [5] finden Sie beispielsweise zwei deutschsprachige Websites, die Appetit auf Mehr machen. (pju)

Infos

[1] RFC 1918: http://www.ietf.org/rfc/rfc1918.txt
[2] Linux-Netzkurs: http://www.linux-praxis.de/linux2/
[3] Netzwerk-HOWTO: http://www.linuxdocs.org/HOWTOs/Net-HOWTO/index.html
[4] Samba: http://www.samba.org/samba/samba.html
[5] Deutsche Samba-Konfigurationsseite: http://www.sambahq.de/
[6] PuTTY: http://www.chiark.greenend.org.uk/~sgtatham/putty/

Der Autor

Frederik Bijlsma benutzt Linux seit circa 1996 regelmäßig. Er studiert Betriebswirtschaftslehre in Magdeburg und setzt das Betriebssystem vor allem zum Planen und Realisieren von Netzwerken ein.

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.




Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2010 Linux New Media AG

[Linux-Magazin] [LinuxUser] [EasyLinux] [Linux-Community] [Ubuntu User] [Linux Technical Review] [Linux Magazine] [Linux Pro Magazine] [Ubuntu User]
[EasyLinux Poland] [Linux Magazine Poland] [Linux Magazine Brasil] [EasyLinux Brasil] [Linux Magazine Spain]