Samba in der Kaffeepause

Wer sparen will und gleichzeitig nicht auf die gewohnte Windows-Umgebung verzichten möchte, sollte seine Server auf Linux umstellen. Das Programmpaket "Samba" von Andrew Tridgell leistet hierbei exzellente Dienste und ist im Handumdrehen installiert.

Von: Dr. Olaf Borkner-Delcarlo

Keine Firma kann die Kosten für ihr Rechnernetz vernachlässigen. Ständig fallen Ausgaben für die Pflege der Betriebssysteme an. Dabei könnten Unternehmen gewaltig sparen, wenn sie Linux anstelle von teuren, kommerziellen Betriebssystemen einsetzten.

Preiswerte Alternative

Das Freeware-Unix gilt als äußerst zuverlässig und wartungsarm. Ein einfacher Kostenvergleich offenbart die Stärken des Betriebssystems. Ein mittelständisches Unternehmen mit 100 PCs, einem Web-Server, einem FTP- und einem SQL-Server spart an die 100000 Mark, wenn es sein Netzwerk nicht mit Windows-Rechnern aufbaut, sondern statt dessen auf Linux setzt. Verglichen mit den Produkten von Sun oder SCO, erweisen sich die Windows-Server zwar als billig. Dennoch sind NT-Lösungen meistens mit sehr hohen Support- und Folgekosten verbunden.

Linux geht mit den Hardware-Ressourcen wesentlich sparsamer um als NT und reduziert so die Ausgaben für neue Geräte. Zudem ist der Support kostenlos, sofern der Administrator über Grundkenntnisse des Betriebssystems verfügt. Das Internet bietet Online-Dokumentationen, Kontakte zu Newsgroups oder Entwicklern zum Nulltarif.

Eine Kaffeepause genügt, um einen Print- und File-Server mit Linux einzurichten. Abgesehen von der Installation des Servers kann die Rechner-Infrastruktur bleiben wie sie ist. Das Personal muß nichts neues lernen. Den Firmengeldbeutel belasten weder hochbezahlte Spezialisten noch neue Software.

SMB für Linux

Samba arbeitet auf der Grundlage des Protokolls "Server-Message-Block" (SMB), das von Microsoft entwickelt wurde und in der Windows-Welt Druck- und Dateidienste bereitstellt. Die Linux-Version von SMB verwendet jedoch nicht NetBEUI als zugrundeliegendes Protokoll, sondern TCP/IP. Wer Samba installiert, muß daher die Clients mit einem TCP/IP-Stack ausrüsten.

Zwei Daemons stehen im Dienst des Samba-Servers und laufen ständig im Hintergrund: • Der Nmb-Daemon nmbd fungiert als sogenannter Nameserver, der einen Rechnernamen wie olaf.delcarlo.italisa in eine IP-Nummer wie 192.168.17.1 auflöst.• Der Smbd-Daemon (smbd) überwacht das Netzwerk und prüft, ob ein Client eine sogenannte Share-Request-Anforderung an den Server stellt. Sobald der Daemon eine solche Anfrage erkennt, stellt er dem Client die bestellten Ressourcen zur Verfügung. Der Client beantragt zum Beispiel, daß er ein Verzeichnis benutzen darf, einen Drucker oder ein anderes vom Samba-Server verwaltetes Objekt. Für den Windows-Client sieht es so aus, als würde ein NT-Server das Verzeichnis oder den Drucker freigeben. Die importierten Dateistrukturen erscheinen im Dateimanager wie lokale Verzeichnisse.

Linux stellt alle Drucker auch für die Windows-Clients bereit. Dank des Aps-Filters können dabei alle Drucker auch Postscript-Dateien verarbeiten. Wer auf den Drucker und auf Verzeichnisse zugreifen darf, regeln ganz nach Unix-Art Dateiattribute für einzelne Benutzer, Gruppen und andere. Sofern der Administrator seine Erlaubnis gegeben hat, können Windows-Benutzer die Linux-Verzeichnisse des Servers importieren und mitbenutzen.

Der Smb-Daemon erstellt eine Kopie von sich selbst, sobald sich ein Client meldet. Auf diese Weise erzeugt jede Share-Request-Anforderung einen eigenen Daemon, der dem Client ein Objekt vermittelt.

Die Befehlsfolge ps x | grep smbd liefert eine Liste der momentan laufenden Smb-Daemons. Die Anzahl der laufenden Client-Dienste ist dabei um eins kleiner als die Zahl der Daemons. Auch wenn keine Anfrage nach einem Verzeichnis oder einem Drucker vorliegt, existiert dennoch ein Smb-Daemon, der Anträge entgegennimmt.

Konfiguration Schritt für Schritt

Die Konfigurationsdatei des Samba-Daemons heißt /etc/smb.conf. Die Einträge dieser Datei legen die Einstellungen für die Datei- und Druckdienste fest, die der Server zur Verfügung stellt.

Ähnlich wie die Windows-Datei Win.ini ist auch die Samba-Konfigurationsdatei in drei grobe Abschnitte unterteilt. • Die Global-Sektion: Hier finden sich alle Regeln wieder, die global gelten, das heißt für alle Dienste, die Samba verwaltet und für alle Clients, die auf den Server zugreifen.• Die Home-Sektion: Sie legt Parameter für die Home-Verzeichnisse der Benutzer fest.• Die Printer-Sektion: Sie enthält Angaben zu allen Diensten, die mit dem Drucker zu tun haben.

Jede Sektion beginnt mit einem Namen, der sich in eckigen Klammern befindet. In den Sektionen erscheinen die Parameter und ihre Werte nach dem Muster Name = Wert. Der Kasten "Samba-Konfiguration" zeigt, wie die Datei /etc/smb.conf aussehen könnte.

Sehen wir uns die Einträge Zeile für Zeile an:

[global]

server string = Samba %1.9.18p3

Diese Textzeile gibt die Version des Samba-Servers an.

printing = bsd

Hier steht, welcher Daemon den Druck-Job verwaltet. Im Beispiel ist das der standardmäßig verwendete Bs-Daemon.

printcap name = /etc/printcap

Hier erfährt der Druckerdienst, wo sich die Datei printcap befindet. In dieser Datei steht, welches Gerät mit welchen Einstellungen druckt.

load printers = yes

Ein "yes" an dieser Stelle weist den Server an, alle Drucker zu unterstützen, welche in der Datei /etc/printcap erscheinen.

log file = /var/log/samba

Diese Zeile bestimmt, welche Datei das Protokoll des Samba-Server-Dienstes aufnimmt. Hier schaut der Administrator nach, wenn die Dinge nicht so funktionieren, wie erwartet. Er findet dort Hinweise auf mögliche Fehlerquellen.

share modes = yes

Legt fest, wie das System den gleichzeitigen Dateizugriff mehrerer Benutzer regelt.

security = user

Dieser Parameter bestimmt, wie sich ein Benutzer authentifiziert. Mögliche Werte sind:

username: Der Benutzer "username" muß sich mit seinem Namen und seinem Paßwort anmelden.

share: Das Anmelden erfolgt nach dem Muster von Windows for Workgroups.

server: Ein Windows-NT-Server meldet den Benutzer an. Auch wenn das einen NT-Server erfordert, lohnt sich der Einsatz eines Linux-Samba-Servers, denn Windows authentifiziert lediglich die Benutzer und tut sonst nichts. Client-Lizenzen fallen hierfür nicht an. Wenn bereits eine Windows NT-Server-Lizenz im Hause ist, kann so eine Kombination den Anmeldevorgang wie in einem proprietären Windows-NT-Netz ausführen.

strict locking = yes

Diese Option stellt sicher, daß Dateien, auf die gerade ein Client zugreift, von anderen Benutzern weder gelesen noch beschrieben werden können.

[homes]

public = no

Ein Client, der einen Dienst anfordert, muß sich authentifizieren.

writeable = yes

Legt fest, daß Clients die Dateien auf dem Linux-Samba-Server beschreiben dürfen.

[printers]

public = no

Ein Client, der einen Druckdienst anfordert, muß sich authentifizieren.

create mode = 0700

Diese Zeile erlaubt allen zu drucken.

Zuverlässig und stabil

Firmen, die Linux ausschließlich als Server in einem Windows-Netz einsetzen, erhöhen die Stabilität und die Sicherheit ihres Netzwerks. Linux hat sich im Dauerbetrieb als äußerst zuverlässig erwiesen. Up-times von mehreren Monaten sind keine Seltenheit.

Firewalls und Proxy-Server, die unter Linux laufen, profitieren vom Sicherheitskonzept der Unix-Philosophie. Während für gewöhnlich bei Single-User-Rechnern einzelne Geräte von der Administration freigegeben werden, steht bei den Zugriffsrechten eines Unix-Betriebssystems der Benutzer im Vordergrund.

Dieses Konzept ist wesentlich effizienter, weil es eine sehr feinkörnige Rechtevergabe erlaubt.

Installation zum Ausprobieren

Sehen wir uns ein Beispiel zum Nachmachen an. Der Benutzer olaf wird ein Linux-Verzeichnis in einen Windows-Verzeichnisbaum einbinden.

Für die Demonstration erzeugt er ein Verzeichnis test, das in seinem Home-Verzeichnis liegt:

md ~/test

Für die Dauer des Tests ändert er die Zugriffsrechte so ab, daß jeder das Verzeichnis nützen darf:

chmod ugo+rwx ~/test

Diesen Befehl darf nur der Administrator root oder der Eigentümer des Verzeichnisses test ausführen.

Nun ändert olaf die Konfigurations-Datei des Samba-Servers seinen Bedürfnissen entsprechend ab. Zu dem Zweck fügt er der Datei /etc/smb.conf (siehe Kasten "Samba-Konfiguration") folgende Zeilen hinzu:

[windir]

path = /home/olaf/test

public = yes

writeable = no

Anschließend verbindet der den Windows-Client mit dem Verzeichnis: Dazu wählt er in der Menüleiste des Fensters "Netzwerkumgebung" den Unterpunkt "Netzlaufwerk verbinden". Daraufhin erscheint ein Dialogfenster, worin er den Samba-Server mit dem Verzeichnis einträgt:

\\delcarlo\windir

Weil der Benutzer olaf keinerlei Zugriffsbeschränkungen eingestellt hat, sieht er nach der Eingabebestätigung das Linux-Verzeichnis als Teil der Windows-Verzeichnisstruktur. Bild 2 verdeutlicht, was passiert, wenn ein Windows-Benutzer eine Datei öffnet, verändert und wieder abspeichert. Er kann nicht erkennen, welcher Server ihn gerade bedient.

Diese Transparenz erlaubt es, einen Windows-NT-Server vollständig und ohne irgendwelche Beeinträchtigungen durch einen Linux-Server zu ersetzen. Ein Samba-Server bedient viele Windows-Clients und bildet so die Grundlage für ein kostengünstiges Netzwerk. Auch mehrere Samba-Rechner können sich parallel um Daten und Drucker kümmern, wenn sehr viele Arbeitsplätze darauf zugreifen.

Die Webseite www.m-tech.ab.ca/ linux-biz listet weitere Unternehmen auf, die Linux-Server verwenden. Mehr Informationen über SMB und Samba bieten die Dokumentation "SMB-Howto" und die Man-Pages zu Samba, Smb.conf und Smbd. (kpl)