vorherige SeiteInhaltsverzeichnisStichwortverzeichnisnächste Seite

Tag 1: Einführung in Samba

Dieses Kapitel ist ein Überblick darüber, was Samba ist und was Samba kann. Ich bekomme häufig E-Mails von allen möglichen Leuten, die mir Fragen stellen wie z.B. »Kann Samba http-Verbindungen zu einem Windows-NT-Server über die NIS+-Passwort-Datenbank auf einem Solaris-2.6-Rechner authentifizieren?« und »Wurde Samba auf Windows NT portiert?«. Dieses Kapitel beantwortet einige der Fragen, die Sie möglicherweise zu Samba haben, und gibt Ihnen Informationen zu den Funktionen und der Verfügbarkeit von Samba.

Was ist Samba?

Samba ist ein Open-Source-Software- (OSS-)Projekt, das 1991 von Andrew Tridgell an der Australian National University in Canberra, Australien, entwickelt wurde. Während dieser Zeit war Andrew Doktorand im Informatiklabor und benutzte PC-NFS, um auf Dateien auf Sun Workstations zuzugreifen. Als er eine Beta-Version von eXcursion von Digital bekam, begann er, den Client zu testen. Zu seiner Enttäuschung waren die Server, mit denen sich der eXcursion-Client verbinden konnte, jedoch nur unter VMS und Ultrix verfügbar. Da er wie die meisten Informatikstudenten neugierig war, begann Andrew darüber nachzudenken, das Dateifreigabeprotokoll auf Nicht-Digital-Workstations zu implementieren.

Zu dieser Zeit hatte er noch nie von NetBIOS oder SMB gehört. Tatsächlich war dies sein erster Ausflug in die Netzwerk-Socket-Programmierung. Kurze Zeit später hatte Andrew eine einigermaßen funktionierende Verbindung zur Sun Workstation über den eXcursion-Client. Die erste Implementierung seines Servers bestand aus einer Menge hartcodierter »magischer« Werte, die einfach die Reaktionen des Ultrix-Servers reproduzierten. Nach einer Unterredung mit einem Mitarbeiter von Digital lernte Andrew erstmals das NetBIOS-Protokoll kennen. Erst zwei Jahre nach seiner ersten Implementierung sah er die Spezifikationen für das SMB-Protokoll und erfuhr, was all die »magischen« Werte darstellten.

Andrew gab seine erste Implementierung im Januar 1992 frei. Während der nächsten zwei Jahre benutzte er meistens einen X-Terminal und hatte keinen Bedarf, sein Projekt weiterzuentwickeln. Während dieser Zeit lernte Andrew auch Linux kennen. Als das allgemeine Interesse an seinem SMB-Server wuchs, nahm er die Entwicklung von Samba wieder auf und der Rest ist, wie man so schön sagt, Geschichte.

Eine häufig gestellte Frage lautet: »Woher stammt eigentlich der Name Samba?« Die Antwort ist ehrlich gesagt ziemlich einfach. Ursprünglich hieß Andrews Software SMBserver. Wegen rechtlicher Probleme musste der Name geändert werden. Eines der Wörter, die Andrew fand, als er /usr/dict/words nach Kombinationen der Buchstaben s, m und b durchforstete, war Samba - und das war's.

Sie können von der Samba-Hauptdistributionssite in Australien den Source-Code für die Programmfamilie herunterladen und kompilieren oder vorkompilierte Binärdateien für bestimmte Plattformen erhalten. Sie sollten eine der Mirror-Sites weltweit wählen, die Ihrem Standort am nächsten liegt. Eine komplette Liste der Mirror-Sites finden Sie auf der Samba-Webpage unter http://samba.org.

Samba ist, einfach beschrieben, eine Programmfamilie, die es Ihnen ermöglicht, auf Dateien und Drucker auf einem Nicht-Windows-Server zuzugreifen und dabei die mitgelieferte Unterstützung des Windows-Clients für den Zugriff auf entfernte Ressourcen zu benutzen.

Genauer gesagt ist Samba eine freie Implementierung eines SMB- (Server-Message-Block-Protocol-)Servers, der hauptsächlich für Unix-basierte Systeme entwickelt wurde. Samba wurde jedoch auch auf andere Plattformen portiert. Viele PC-Clients benutzen das SMB-Protokoll, das kürzlich in CIFS (Common Internet File System) umbenannt wurde, um auf entfernte Dateisysteme und Drucker zuzugreifen. Diese werden im Windows-Fachjargon als Freigaben oder Dienste bezeichnet. Für viele Unternehmen ist dies ausreichend, damit sich die Idee von Samba verkauft, und möglicherweise ist das auch alles, wofür sie Samba jemals verwenden. Aber einige andere Merkmale von Samba sind sozusagen das Tüpfelchen auf dem i. Nachfolgend finden Sie eine Auflistung der Dinge, die Samba noch kann:

Ein Samba-Server kann auf verschiedene Weise in ein bestehendes Netzwerk integriert werden. Hier einige übliche Beispiele:

Dies sind nur einige Beispiele. Ihrer Phantasie und Ihren Fähigkeiten als Programmierer sind hier keine Grenzen gesetzt.

Traditionelle Lösungen

Möglicherweise sind Sie mit einigen der früher benutzten Lösungen vertraut, über die Windows-Clients auf entfernte Dateien oder Drucker zugreifen konnten. In einem Unternehmen, in dem ich beschäftigt war, konnte nur über FTP auf entfernte Dateien zugegriffen werden. Entferntes Drucken hieß, die Datei auf eine Diskette zu speichern und zum entfernten Rechner zu laufen (wir nannten diese Methode liebevoll »Turnschuhnetzwerk«). Obwohl diese Art ihre Vorteile hat (d.h. sie ist einfach), brauchen Benutzer heutzutage entfernten Zugriff, der die Zusammenarbeit fördert.

Während der späten achtziger Jahre begannen mehrere Unternehmen, einen Network-File-System-Client für PCs zu entwickeln, der als PC-NFS bekannt wurde. Viele Unternehmen begrüßten dies als Methode, PCs in existierende Unix-basierte Infrastrukturen zu integrieren.

Bestehende NFS-Server verlangten keine Software-Modifikationen, um PC-NFS-Clients zu bedienen. Die Authentifizierung der Clients wurde von einem Daemon durchgeführt, normalerweise pcnfsd oder rpc.pcnfsd, der auf einem Server lief. Die Clients übertrugen eine Authentifizierungsanfrage an den pcnfsd-Server. War diese erfolgreich, übertrug der Server die Unix-UID des Benutzers, die für alle weiteren NFS-Anfragen benutzt werden konnte.

Abbildung 1.1 zeigt, wie PCs mit existierenden NFS-Servern verbunden werden können. Es ist nur ein einziger Unix-Rechner notwendig, um die Authentifizierung der PC-Clients durchzuführen. In diesem Szenario werden die PCs sozusagen Bürger zweiter Klasse.

Die PC-NFS-Software führte im Wesentlichen zu zwei Problemen. Das erste bestand in den Einschränkungen des NFS-Protokoll selbst, was Dinge wie Datei-Locking betrifft. Datei-Locking war in Windows- und Unix-Dateisystemen (das ursprüngliche Ziel von NFS) auf verschiedene Weise implementiert. NFS benutzte für die Implementierung des Datei-Lockings einen separaten Prozess, der manchmal zu Problemen führte.

Abb. 1.1: Topologie mit existierenden NFS-Servern und einem einzigen pcnfsd-Server

Wenn z.B. der lock-Daemon abstürzte oder die Synchronisierung zwischen dem NFS- und dem lock-Daemon verloren ging, konnten die PC-Clients das notwendige Datei-Locking nicht mehr durchführen. Samba implementiert die SMB-Spezifikationen für das Datei-Locking und unterstützt auch opportunistisches Locking, gewöhnlich oplocks genannt. Silicon Graphics integrierte kürzlich oplock-Unterstützung in den Irix-Kernel, so dass die Dateiintegrität auch gesichert ist, wenn Samba und ein anderer Unix-Prozess gleichzeitig auf die Datei zugreifen. Das zweite Problem lag in der fehlenden nativen Unterstützung innerhalb der PC-Betriebssysteme begründet. Microsoft hat für den Aufbau seines Netzwerkmodells die Protokolle NetBIOS und SMB gewählt. Daher ist für den Client neben dem Betriebssystem selbst keine zusätzliche Software nötig, damit er sich mit einem Samba-Server verbinden kann. Für die Verbindung mit einem NFS-Server jedoch war zusätzliche Client-Software notwendig. Früher, als Festplatten noch kleiner waren, stellte diese zusätzliche Belastung oft ein Problem dar.

Die native SMB-Unterstützung bietet einige Vorteile. Einer ist, dass Benutzer sicher sein können, dass der für die Verbindung zu einem Samba-Server notwendige Client korrekt mit neuen Versionen des Betriebssystems funktionieren wird. Außerdem erhalten Benutzer die aktuellste Netzwerk-Client-Software, wenn sie ihr Betriebssystem aktualisieren. Bei der NFS-Software muss der NFS-Client separat aktualisiert werden, was manchmal zu Problemen führte.

Einer der größten Vorteile ist finanzieller Art. Die Lizenzgebühren für NFS-Clients summieren sich schnell, besonders in Unternehmen mit großen Netzwerken. Und, lassen Sie uns ehrlich sein, gibt es irgend jemanden, der es wirklich mag, die Client-Lizenzierung zu verwalten?

Wenn Sie Samba benutzen, vermeiden Sie all diese Probleme.

Heute sind in vielen Netzwerken bereits PC-Server in die Infrastruktur integriert (wenn sie nicht sogar andere Betriebssysteme komplett ersetzen). Hier besteht die traditionelle Lösung einfach darin, weitere Windows-NT-Server hinzuzufügen. Aber dies ist aus Kostengründen nicht für alle Unternehmen möglich. Mit einer Lösung - die Benutzung von Samba und einem der freien PC-Unix-Betriebssysteme wie Linux - können Administratoren den Vorteil günstiger Massen-Hardware nutzen und dabei trotzdem die Stabilität und Dienste bieten, die für ihre PC-Clients notwendig sind.

Auf welchen Plattformen läuft Samba?

Samba wird mit vollständigem Source-Code (in C geschrieben) verteilt und ist unter der GNU General Public License verfügbar. Wenn Sie nicht mit der GPL vertraut sind, finden Sie in diesem Kapitel später einen Abschnitt, der die Details beschreibt.

Da Samba mit Source-Code verteilt wird, kann es auf praktisch jeder Unix-Variante kompiliert werden, darunter

Lässt sich Samba unter Ihrer bestimmten Unix-Variante nicht kompilieren, senden Sie einen Bericht über Ihre Probleme an samba-bugs@samba.org, und dort wird jemand versuchen, eine Lösung für Ihr Problem zu finden. Eines der wundervollen Dinge in Bezug auf OSS-Projekte ist, dass Sie Ihre Probleme selbst beheben können. »Luke, use the source!« Sollten Sie tatsächlich Fehler im Source-Code finden oder beheben, senden Sie bitte ebenfalls eine Nachricht an bugs@samba.org.

Zusätzlich zu den wichtigsten Unix-Distributionen ist Samba auch auf die folgenden Betriebssysteme portiert worden:

Die GNU General Public License (GPL)

Viele OSS-Projekte werden unter der GNU GPL freigegeben, die von der Free Software Foundation entwickelt wurde. Der tragende Gedanke hinter der GPL ist, dass Software verteilt werden kann. Sie verlangt, dass

Ohne die speziellen Abschnitte darzustellen, erklärt der folgende Auszug aus dem Vorwort der GPL die Absicht der Lizenz:

Die Idee hinter dem Kopieren und der Verteilung der freien Software erklärt sich weitestgehend selbst. Die Abschnitte über die Modifizierung von Software, die unter der GPL lizenziert ist, sollten vielleicht etwas näher erklärt werden:

Abschnitt 2, Teil 2b der Version 2 der GPL bestimmt, dass jede Arbeit, die von anderer, unter GPL lizenzierter, Software abgeleitet ist, ebenfalls GPL sein muss. Dadurch garantiert die Lizenz, dass Software, die unter der GPL freigegeben wird, immer frei sein wird, auch wenn Änderungen in existierenden Code eingefügt werden oder die Software in ein anderes Projekt eingebettet wird.

Die FSF bietet weitere Informationen über die Philosophie hinter freier Software und der GPL auf ihrer Website unter http://www.gnu.org/philosophy.

Samba wird unter der Version 2 der GPL verteilt. Den vollständigen Text dieser Lizenz finden Sie in der Samba-Distribution auf der beiliegenden CD-ROM. Weitere Informationen über die Free Software Foundation und das GNU-Projekt finden Sie unter http://www.gnu.org.

Zusammenfassung

Samba hat viele Merkmale. Hier die drei wichtigsten:

In den folgenden Kapiteln werden Sie lernen, wie Sie Samba installieren und die besonderen Merkmale konfigurieren.

Frage & Antwort

  1. Kann Samba meinen Windows-NT-Server (nicht PDC) vollständig ersetzen?

  1. Samba kann Dateien und Drucker für Windows freigeben, ebenso wie ein Windows-NT-Server dies tun würde. Ich muss hier einige Besonderheiten erwähnen. Kapitel 12 beinhaltet eine Fallstudie für den Ersatz eines Windows-NT-Servers durch einen Linux-Rechner mit Samba.

  1. Kann Samba meinen Windows-NT-PDC ersetzen?

  1. Nicht vollständig. Die Funktionen zur Domänenkontrolle von Samba für einen Windows-9x-Client sind stabil und vollständig, daher würde er den Unterschied wahrscheinlich niemals merken. Die Unterstützung für die Domänenkontrolle für Windows-NT-Clients befindet sich noch in der Entwicklung. Derzeit ist die Implementierung so weit gereift, dass ein Windows-NT-Client auf eine durch Samba kontrollierte Domäne zugreifen kann, aber die Domänenkontrolle umfasst wesentlich mehr als das. Die Funktionen von Samba zur Domänenkontrolle werden in den Kapiteln 21 und 22 dargestellt.

  1. Ich habe das Betriebssystem meines Servers nicht in der Liste der Plattformen gefunden, auf denen Samba kompiliert werden kann. Wie kann ich herausfinden, ob sich Samba auf meinem Server kompilieren lässt?

  1. Wenn ich Ihre Unix-Version (oder andere Plattform) nicht aufgelistet habe, können Sie zwei Dinge tun. Versuchen Sie zunächst, Samba zu kompilieren, um zu sehen, ob sich irgend etwas nicht kompilieren oder konfigurieren lässt. Die zweite Möglichkeit besteht darin, einen Blick in den Samba-FAQ auf der Samba-Homepage zu werfen, wo Sie eine aktuelle Liste der unterstützten Plattformen und spezifische Informationen zu Ihrem Betriebssystem finden können.

  1. Wie kann ich Andrew eine Pizza spendieren, um die Weiterentwicklung von Samba zu unterstützen?

  1. Es gibt verschiedene Möglichkeiten, wenn Sie Nahrung für den Geist (alias Pizza) zu Entwicklungszwecken spenden möchten. Hier die möglichen Methoden aus dem Samba-FAQ:

vorherige SeiteInhaltsverzeichnisStichwortverzeichnisnächste Seite