Samba verbindet zwei Welten miteinander. Auf einem Unix- oder Debian GNU/Linux-Rechner installiert, dient es als Datei- und Druckerserver für über das Netzwerk angeschlossene Windows-Rechner. Samba benutzt hierzu das von Microsoft benutzte SMB-(Server Message Block-)Protokoll; Sie müssen auf diese Weise keinerlei Veränderungen an den Windows-Rechnern vornehmen oder gar zusätzliche Software installieren.
Dieses wird durch Protokolle erreicht, die als CIFS (Common Internet File System) bekannt wurden. Eines der wichtigsten Elemente von CIFS ist das Protokoll SMB (Server Message Block). Samba ist eine freie Implementation von CIFS.
Samba wurde bisher auf eine Vielzahl von Nicht-Unix-Betriebssystemen wie zum Beispiel VMS, AmigaOS und NetWare portiert.
Vor einigen Jahren entwickelten die Firmen IBM und Sytec gemeinsam ein einfaches Netzwerk-System für kleine, lokale Netzwerke. Dieses wurde NetBIOS oder „Network Basic Input Output System“ genannt. Microsoft erweiterte die Funktionalität, so dass Laufwerke über das Netz verwendet werden konnten. Diese Version wurde SMB und später CIFS genannt.
NetBIOS wurde für kleine, lokale Netzwerke entwickelt; im Zusammenspiel mit TCP/IP kann diese Grenze überwunden werden. Der Trick besteht darin, die 16 Byte langen NetBIOS-Namen auf IP-Adressen umzulegen, so dass diese ihren Weg in einem gerouteten IP-Netzwerk finden. Dieser Mechanismus wird in den RFCs 1001 und 1002 beschrieben. Mit der weiteren Entwicklung von Windows wurden zwei Funktionen hinzugefügt: das „Browsen“ nach Diensten im Netz und eine Funktion zur zentralen Authentifizierung und Autorisierung, die so genannte „Windows NT Domain Control“.
Samba besteht aus zwei existenziellen Programmen, smbd und nmbd, die die grundlegenden, aktuellen Funktionen von CIFS implementieren. Diese sind:
Datei- und Druckdienste
Authentifikation und Autorisation
Namensauflösung
„Browsing“
Hierbei sind die Datei- und Druckdienste sicherlich die wichtigsten Bausteine des CIFS. Diese werden von smbd, dem SMB-Daemon, zur Verfügung gestellt. smbd verwaltet auch die so genannte „Shared mode“- und „User mode“-Authentifizierung und -Autorisation. Mit diesen können Sie Laufwerke und Druckdienste mit Passwörtern schützen. Im einfachsten, im „Shared“-Modus, kann ein Passwort einem Laufwerk oder Drucker zugeordnet werden. Dieses Passwort muss jedem Benutzer bekannt sein, der auf dieses Gerät zugreifen soll. Diese Methode ist natürlich durch ein Passwort, das vielen Benutzern bekannt ist, nicht sehr sicher. Empfehlenswerter ist es, jedem Benutzer einen eigenen Benutzernamen und ein Passwort zu geben, der Systemadministrator entscheidet dann über die Konfiguration, welche Zugriffe für welchen Benutzer gestattet sind.
Das mit Windows NT eingeführte System, der „Domain Controller“, erlaubt eine weitere Stufe der Authentifizierung. Die grundlegende Idee dahinter ist, dass ein Benutzer sich nur einmal legitimieren muss, um auf alle Netzwerkdienste zugreifen zu können. Das NT-System koordiniert dies über einen Server, den so genannten Domain Controller. Eine NT-Domain (nicht zu verwechseln mit dem Domain Name System (DNS)) ist eine Gruppe von Rechnern, die auf einen gemeinsamen Domain-Controller zugreifen.
Die anderen beiden Teile von CIFS, Namensauflösung und „Browsing“, werden von nmbd zur Verfügung gestellt.
Die Auflösung von Namen kann auf zwei Arten, „broadcast“ oder „point-to-point“, erfolgen. Ein Rechner kann eine oder beide dieser Methoden nutzen. Die Broadcast-Methode erinnert noch am meisten an die originale NetBIOS-Funktionalität: Ein Rechner, der einen Service sucht, „ruft“ ins Netz und wartet auf eine Antwort. Dies kann einigen Traffic verursachen, ist aber in einem kleinen Netz kein echtes Problem.
Die zweite Methode benutzt einen NBNS-(NetBIOS Name Service-)Server. Unter Windows ist dies als WINS (Windows Internet Name Service) bekannt. Die Funktionsweise ist recht schnell erklärt: Jeder Client sendet seinen NetBIOS-Namen und die IP-Adresse an den NBNS-Server, der die Informationen in einer Datenbank speichert. Wenn ein Client mit einem anderen Client „sprechen“ möchte, sendet er den Namen des gewünschten Rechners an den NBNS-Server und dieser liefert die passende IP-Adresse zurück.
Clients in verschiedenen Subnetzen können einen gemeinsamen NBNS-Server benutzen. Somit ist die Broadcast-Methode nicht auf lokale Netze beschränkt. NBNS lässt sich in etwa mit dem DNS vergleichen, die Namensliste von NBNS ist allerdings komplett dynamisch, und es gibt kaum Überprüfungen, ob ein Client zur Namensregistrierung autorisiert ist. Dies kann sehr schnell zu Konflikten führen.
Bleibt noch das „Browsing“. Dies hat nichts mit dem Surfen im WWW zu tun, sondern stellt vielmehr eine Liste der verfügbaren Laufwerke und Drucker dar.
In einem LAN gibt es zwischen den teilnehmenden Rechnern eine „Abstimmung“, und der dominierende Rechner wird zum LMB (Local Master Browser) erklärt. Dieser LMB bekommt einen zusätzlichen Namen; seine Aufgabe ist es, eine Liste der verfügbaren Dienste zu pflegen. Diese Liste erscheint beim Anklicken des Symbols „Netzwerk-Umgebung“.
Als Ergänzung zu den LMBs gibt es noch DMBs (Domain Master Browsers). Diese koordinieren die Listen zwischen NT-Domänen und gerouteten Netzwerken. Über den NBNS kann ein LMB seinen DMB herausfinden und die Listen austauschen und ergänzen. Somit können die Listen an alle Teilnehmer in einer NT-Domain verteilt werden. Leider dauert es bis zu einer Stunde, bis eine Änderung in einem Subnetz im Netz verbreitet ist.
Im Samba-Paket sind eine Reihe von Werkzeugen enthalten, andere sind unter Debian GNU/Linux als separate Pakete verfügbar.
smbclient - Ein einfaches Programm, ähnlich wie ftp, mit dem Sie eine Verbindung von einem GNU/Linux-System zu einem SMB-Laufwerk oder einem Drucker herstellen und Dateien übertragen können.
nmblookup - Ein NetBIOS-Name-Service-Client. Hiermit können Sie IP-Adressen und Namen von anderen Rechnern im Netz ermitteln.
SWAT - Ein webbasiertes Administrationstool
Mit Samba können Sie von einem Windows-Rechner aus Dateisysteme Ihres Linux-Rechners so völlig transparent nutzen, als wenn diese auf einer lokalen Festplatte liegen würden. Beispielsweise kann das Laufwerk „N:“ auf irgendeinem entfernten Rechner angelegt sein.
Aber auch der umgekehrte Weg funktioniert; über das smbfs-Dateisystem können Sie auf Laufwerke zugreifen, die von einem Windows-Rechner freigegeben wurden. So können Sie zum Beispiel ein Verzeichnis /mnt/win/ anlegen und das entsprechende Laufwerk Ihres Windows-Rechners dort mounten. Sie können in diesem Verzeichnis alle Aktionen (lesen, schreiben, löschen usw. von Dateien) wie auf Ihren lokalen Festplatten ausführen.
Samba wird über die Datei /etc/smb.conf konfiguriert. Dies ist, wie unter Debian GNU/Linux üblich, eine normale ASCII-Datei; die Syntax ähnelt den von Windows bekannten *.ini-Dateien. Ziel ist es, Netzwerk-Administratoren, die mit Windows vetraut sind, einen leichten Umstieg zu bieten. Mit der wachsenden Funktionalität von Samba wuchsen auch die in der Konfigurationsdatei verfügbaren Parameter. Diese sind gut dokumentiert und erlauben sehr detaillierte Einstellungen.
Neben der unter /usr/doc/samba/ liegenden mitgelieferten Dokumentation ist unter http://www.oreilly.com/catalog/samba/ auch die englischsprachige Online-Version des bei O'Reilly erschienenen Buches „Using Samba“ zu finden. Die Homepage von Samba finden Sie unter: http://samba.org/.
Als grafische Werkzeuge stehen Ihnen gnomba und tkchooser zur Verfügung, um exportierte Drucker und Laufwerke im Netz aufzuspüren und am System anzumelden.
Das Samba Web Administration Tool (SWAT) stellt eine webbasierte Konfigurationsoberfläche für Samba zur Verfügung. SWAT ist Bestandteil der Samba-Distribution, wurde aber für Debian GNU/Linux als eigenes Paket gepackt. Da SWAT webbasiert ist, benötigen Sie ebenfalls einen Webserver (Apache, Roxen o.Ä.) auf Ihrem System. Starten Sie dann Ihren Webbrowser mit der URL http://localhost:901/. Bitte beachten Sie: Wenn Sie auf SWAT von einem anderen Rechner aus zugreifen (in einem internen Netz oder über das Internet), so werden alle Passwörter unverschlüsselt übertragen.
Informationen über die möglichen Einstellungen finden Sie in der Anleitung zu Samba.
Gnosamba ist ein grafisches Werkzeug zur Konfiguration von Samba. Die Webseiten zu Gnosamba finden Sie unter der URL http://www.open-systems.com/gnosamba.html.
Sie können mit Gnosamba eine bestehende Samba-Konfigurationsdatei einlesen und verändern. Sie können diese auch unter einem anderen Namen abspeichern, beispielsweise für Testzwecke.
Gnosamba befindet sich noch in der Entwicklung, es ist daher empfehlenswert, immer eine Sicherheitskopie der Samba-Konfigurationsdateien zu erstellen. Auch eine Unterstützung für die „höheren“ Funktionen, wie zum Beispiel PDC-(Primary Domain Controller-)Support sind noch nicht implementiert.
Gnomba ist eine grafische Oberfläche für das zum Samba-Paket gehörende Programm smbclient. Sie können mit Gnomba die freigegebenen Laufwerke und Drucker suchen lassen und gleich an Ihrem System anmelden.
Dies entspricht in etwa der von Windows bekannten „Netzwerkumgebung“. Weitere Informationen finden Sie auf der Webseite zu gnomba : http://gnomba.sourceforge.net/.
Ist der Samba-Server wie gewünscht konfiguriert, so können natürlich nicht nur Linux-Clients auf die freigegebenen Verzeichnisse zugreifen; auch von einem System mit MacOS X ist der Zugriff möglich.
Aus dem Finder-Menü „Gehe zu“ wird zunächst der Eintrag „Mit Server verbinden...“ ausgewählt.
Im folgenden Dialogfenster geben Sie nun das Protokoll und den gewünschten Server an. Bei dem hier gezeigten Beispiel muss lediglich der Servername angepasst werden.
Ist der Server ausgewählt, so muss im folgenden Dialog ausgewählt werden, mit welchem der freigegebenen Verzeichnisse (hier homes) verbunden werden soll. Die verfügbaren Verzeichnisse werden automatisch ermittelt.
In den meisten Fällen ist für die gewählte Freigabe eine Authentifizierung notwendig. In einem solchen Fall werden anschließend die notwendigen Daten erfragt.
Damit ist das Einbinden eines Netzwerklaufwerks via Samba abgeschlossen. Auf dem Desktop kann das Laufwerk nun über ein Icon angeklickt werden.
© 1999-2005 Frank Ronneburg - Dieser Inhalt ist unter einem Creative Commons Namensnennung - Nicht-kommerziell - KeineBearbeitung Lizenzvertrag lizenziert (creativecommons.org/licenses/by-nc-nd/2.0/de/).