IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Server/Internet/Netzwerk - Grundlagen von Samba



Grundlagen von Samba

Samba bringt viele Vorteile in Lokalen Netzwerken. Zentral gespeicherte Dokumente erleichtern das Arbeiten auf verschiedenen Geräten. Hier eine Einführung in diesen Dienst.


Autor: Mario Spänhoff (spaenhoff)
Datum: 23-01-2002, 19:08:02
Referenzen: http://de.samba.org/samba/samba.html
http://www.oreilly.com/catalog/samba/noframes.html
Schwierigkeit: Anfänger
Ansichten: 9615x
Rating: 1.8 (5x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



1. Überblick

1.1. Geschichte

Wie viele andere (Unix-) Software auch, entstand Samba durch die Hand eines Programmieres, der ein Problem hatte und dieses löste, indem er einfach mal schnell ein Programm schrieb...
In diesem Fall war der Programmierer ein Australier namens Andew Tridgell, dessen Problem darin bestand, dass er mit seinem DOS Rechner auf den Plattenplatz seines Unix-Servers zugreifen wollte.

Das allein wäre nicht das Problem gewesen, vielmehr die Tatsache, dass er ein Programm nutzen wollte, das die NetBIOS Schnittstelle verlangte. Also untersuchte er mit einem (natürlich selbstgeschriebenen) Packet-Sniffer das von Microsoft verwendetet SMB-Protokoll und implementierte dieses unter Unix. Er erschuf damit ein Programm, dass es ermöglichte, via NetBIOS Schnittstelle von DOS aus auf freigegebene Verzeichnisse des Unix-Servers zuzugreifen.

In 1992 veröffentlichte er den Quelltext des Programms erstmals, kümmerte sich dann jedoch nicht mehr sonderlich um das Projekt, bis er 2 Jahre später erstaunt feststellte, dass es sogar möglich war, den Windows-PC seiner Frau mit seinem Linux-System zu verbinden. Als er den Code weiter verbessern wollte (Andrew hatte inzwischen festgestellt, dass das Protokoll sogar dokumentiert war), bekam er jedoch Rechtsschwierigkeiten wegen des Namens, den er für seine Software gewählt hatte und war gezwungen sich einen neuen auszudenken. Also suchte er einfach in einer Rechtschreibprüfung nach allen Wörtern, in denen die Buchstaben SMB vorkommen und wurde schließlich mit Samba fündig.

Heute ist Samba eine in der Unix-Welt sehr bekannte Kollektion von Programmen, die dazu dienen, zwischen Windows und Unix zu vermitteln. Der Funktionsumfang wächst ständig an, so dass Samba mittlerweile sogar erheblich mehr kann, als nur Verzeichnisse und Drucker freizugeben bzw. anzusprechen, doch dazu später mehr. Das Samba Projekt wird, wie viele Open Source Projekte, von Leuten in der ganzen Welt mitentwickelt, die einfach nur Spaß daran haben, Software zu schreiben, die gut und stabil läuft und frei verfügbar ist. Samba ist mittlerweile so bekannt, dass Firmen wie z.B. SilliconGraphics ihre professionellen Produkte mit Samba bündeln. Einer der besten Hinweise auf Sambas Erfolg ist wohl die Tatsache, dass Samba in Microsofts "Halloween Documents" Erwähnung fand, einigen internen Memos, bei denen die Gefahr von OpenSource Software (besonders Linux) für die kommerziellen Microsoftprodukte festgestellt wurde.

1.2. Sinn und Zweck

Sambas Aufgaben und Fähigkeiten sind im einzelnen:

- Bereitstellung von und Zugriff auf Datei- und Druckdienste
- Authentifizierung und Authorisation
- Namensauflösung
- Bekanntmachung von Diensten (Verwaltung von Browselisten)
- Die ersten beiden Aufgaben werden von dem Programm smbd erledigt, die letzten zwei vom Programm nmbd.

Bereitstellung von Datei- und Druckdiensten bedeutet, dass Samba auf dem Unix Server, auf dem es läuft, Plattenplatz und Drucker in Form von Freigaben (Shares) bereitstellt, die dann z.B. Windows Clients nutzen können. Samba dient somit als File und Printserver. Auf der anderen Seite ist es mit Samba möglich, auf freigegebene Resourcen im Netz zuzugreifen und somit z.B. den Drucker eines Windows-Rechners anzusprechen. Beim Bereitstellen von Shares sind zusätzlich verschiedene Konzepte der Zugriffsberechtigungen möglich:

Zur Authentifizierung und Authorisation gibt es seit Samba 2.0 insgesamt 4 verschiedene Sicherheitsmodi, die im Abschnitt "Das SMB Sicherheitskonzept" näher erläutert werden.

Namensauflösung und Bekanntmachung von Diensten dienen beide der Verwaltung (Erstellung und Aktualisierung) und der Verteilung von NetBIOS Namen und Resourcen in einem LAN. Diese Mechanismen sind in den Abschnitten "Namensauflösung unter NetBIOS" und "Browser-Dienste" näher beschrieben.

Samba enthält seit der Version 2.0 Funktionen, die es ihm (eingeschränkt) erlauben, die Aufgabe eines Primären Domänen Controllers (PDC) zu übernehmen, wofür bisher nur die NT-Server Version in Frage kam. Damit ist es möglich, dass sich Windows (auch NT) Clients am Samba Server anmelden, also eine zentralisierte Benutzerdatenbank und Homeverzeichnisse für wandernde Profile (Roaming Profiles) zur Verfügung stehen.

2. Grundlagen

2.1. Das SMB Protokoll

2.1.1. Überblick und Entwicklung

SMB (Server Message Block) ist ein Protokoll, das es erlaubt Festplattenplatz, Drucker und serielle Ports zwischen mehreren Computern zu teilen.

Das Protokoll wurde 1985 von IBM entworfen, um als Netzwerkprotokoll für kleinere lokale Netze zu dienen. 1987 griffen Microsoft, Intel und andere Firmen das Protokoll erneut auf und entwickelten es ständig weiter, weshalb heute eine Vielzahl an unterschiedlichen Varianten des SMB-Protokolls existiert. Zunächst basierte SMB auf dem von IBM entwickelten NetBIOS (Network Basic Input and Output System), eine Softwareschnittstelle, die auf Netzwerktransportprotkollen (wie z.B. IPX) aufsetzt. NetBIOS unterscheidet die Namen der einzelnen Clients und ihrer Applikationen durch einen 16 Byte langen Namen. Microsoft erweiterte sein Betriebssystem MS-DOS bald so, dass es möglich wurde, Dateizugriffe an das NetBIOS Interface weiterzuleiten, was es ermöglichte Plattenplatz über das Netzwerk zu nutzen. Das hierbei benutzte Protokoll wurde als SMB bezeichnet.

Das NetBIOS API wurde von immer mehr Applikationen genutzt und auf immer mehr Netzwerkprotokollen (IPX, NetBEUI, DECnet und TCP/IP) implementiert.

Das NetBEUI (NetBIOS Enhanced User Interface) Protokoll ist lediglich eine einfache Kapselung der NetBIOS Frames, das die einzelnen Pakete mit Hilfe der MAC-Adresse der Netzwerkkarten adressiert, und somit nicht routingfähig ist. Damit die auf NetBIOS basierenden, bestehenden Applikationen auch in gerouteten Netzwerken genutzt werden können, entwickelte man eine Implementation für TCP/IP, genannt NetBIOS über TCP/IP (bei Microsoft auch gelegentlich NBT oder NetBT, aber auch RFCNB). Dieser Mechanismus, der eine Übersetzung der NetBIOS Namen in IP-Nummern leisten muss, wird, ebenso wie weitere Details zu NetBIOS, in den RFCs (Request for Comments der Network Working Group [12]) 1001 und 1002 beschrieben, weitere Informationen zu NetBIOS in Bezug auf Samba finden sich in der Samba Dokumentation [1] unter NetBIOS.txt. Wenn man SMB unter TCP/IP nutzt (eine Vorraussetzung für den Betrieb von Samba), wird also in Wirklichkeit NetBIOS über TCP/IP benutzt.

SMB ist, wie z.B. http auch, ein client-server, request-response Protokoll. Wenn die Clients sich über ein Netzwerkprotokoll wie z.B. TCP/IP mit dem Server verbunden haben, können sie Kommandos (SMBs) zum Server schicken, die es ihnen erlauben, auf Freigaben zuzugreifen, und diese wie ein eigenes Dateisystem (das auch geschützt sein kann) zu behandeln.

2.1.2. Protokollvarianten

Wie schon erwähnt, gab es im Laufe der Zeit mehrere Protokollvarianten, die teilweise neue SMBs hinzufügten, und teilweise bestehende Formate änderten, die wichtigsten werden im Folgenden genannt:

Core Protokoll:
Implementiert im IBM PC Network Program 1.0, hatte folgende Features:
- Verbinden zu und Trennen von Datei- und Druckerfreigaben
- (Druck-)Dateien öffnen und schließen
- Dateien lesen und schreiben
- Erstellen und Löschen von Verzeichnissen
- Verzeichnisse durchsuchen
- Auslesen und Setzen von Dateiattributen
- Locken von Byte Bereichen in Dateien

LAN Manager 1.0/2.0/2.1:
Implementiert in LANMAN 1.0/LM1.2X002/LANMAN 2.1

LAN Manager 2.1(WfW):
Implementiert in Windows für Workgroups 3.1a, evtl. kleine Abweichungen vom ursprünglichen LAN Manager 2.1

NT LAN Manager 1.0 ?(keine eindeutige Bezeichnung):
Implementiert im NT LM 0.12, enthält spezielle SMBs für NT. Samba enthält ebenfalls eine Implementation hiervon. Eine Erweiterung des NT LM 0.12 ist CIFS 1.0 (Common Internet File System), die neueste Variante des SMB-Protokolls, die auch öffentlich dokumentiert ist.

2.1.3. Das SMB Kommunikationskonzept

Ein kurze Beschreibung, wie eine simple SMB-Kommunikation abläuft:

Nachdem sich der Client mit dem Server per NetBIOS verbunden hat, sendet er zunächst einen negprot SMB, in dem er auflistet, welche Protokollvarianten er beherrscht. Wenn der Server einen dieser Dialekte akzeptiert, sendet er dem Client den Index dieses Protokolls, was dann für die weitere Kommunikation genutzt wird. Wenn nötig (user mode, siehe Abschnitt "Das SMB Sicherheitskonzept"), versucht sich der Client nun beim Server einzuloggen, indem er ihm einen sessetupX SMB schickt. Die Antwort zeigt dann an, ob er eine gültige Kombination aus Usernamen und Passwort gesendet hat und enthält ggf. eine UID, die der Client nun bei jedem SMB mitschicken muss. Er kann nun damit fortfahren, sich mit einem share zu verbinden. Dies geschieht, indem der Client einen tconX SMB schickt, in welchem er den Namen des shares angibt, mit dem er sich verbinden will. Wenn er dazu die Berechtigung hat, erhält er vom Server eine TID (Tree ID), mit der in Zukunft auf das share zugreifen kann (mit SMBs zum Öffen, Schließen, Lesen und Schreiben von Dateien).

2.1.4. Das SMB Sicherheitskonzept

Im SMB-Protokoll sind grundsätzlich zwei verschiedene Sicherheitsmodi definiert, share-level und user-level. In Samba gibt es zusätzlich noch zwei weitere Modi, die eine Erweiterung des user-level Modus darstellen. Im Folgenden die Erklärung der verschiedenen Modi, die in dieser Weise (security = Modus) auch als Parameter in der Sambakonfigurationsdatei zu finden sind.

share: share mode bedeutet, dass jede Freigabe nur durch ein Passwort geschützt ist, also für jeden nutzbar, der das Passwort kennt.

user: user mode bedeutet, dass der Server den Client bei der Anmeldung (beim ersten Zugriff auf irgendeine Resource) nach einem Namen und Passwort fragt, und daran feststellt, ob ein solches Konto existiert und das zugehörige Passwort stimmt (Authentifizierung). Ist der Benutzer einmal authentifiziert, erhält er eine UID (User ID) und hat nun prinzipiell die Möglichkeit, auf alle Resourcen zuzugreifen, was in der Praxis jedoch durch die Berechtigungen für die einzelnen Shares verhindert werden kann (Authorisation). Dieser Modus ist dem einfacheren share mode vorzuziehen, wenn man unterschiedliche Rechte für unterschiedliche Benutzer festlegen will.

server: server mode gleicht dem user mode, mit der Ausnahme, dass Samba Namen und Passwort an einen anderen Server weiterreicht, der dann den Benutzer authentifiziert. Kann Samba sich erfolgreich am Passwort Server anmelden, lässt es auch die Anmeldung des Clients zu. Dies kann dazu dienen, mehrere SMB-Server mit nur einer Benutzerdatenbank zu betreiben.

domain: domain mode gleicht ebenfalls dem user mode, mit der Ausnahme, dass die Authentifizierung an einem Domänencontroller stattfindet, weshalb hier auch der Rechnername überprüft wird (es muß ein Computerkonto für diesen Rechner in der Domäne existieren).

2.1.5. Aktuelle SMB Implementationen (Server und Clients)

Generell sind alle Microsoft Produkte ab Windows für Workgroups 3.x SMB-Clients, mit einer LANManager Software auch MS-DOS. Andere Clients sind z.B.

- der smbclient von Samba
- das smbfs für Linux
- SMBlib (eine SMB Client Bibliothek)

Ebenso sind alle oben genannten Microsoft Programme auch SMB-Server, wenn auch teilweise nur im share mode, desweiteren existieren noch folgende Implementationen:

- Samba
- Digital PATHWORKS
- LAN Manager für OS/2, SCO
- Advanced Server für UNIX von AT&T
- LAN Server für OS/2 von IBM

2.2. Namensauflösung unter NetBIOS

Es gibt 2 Arten von Namensauflösung. Die ursprüngliche Methode für einen Client einen Rechnernamen im LAN zu finden ist, dass er einen Broadcast mit der Anfrage ins Netz schickt, und der entsprechnde Rechner sich dann mit seiner MAC- bzw. IP-Adresse meldet. Die 2. Methode ist die Nutzung eines NetBIOS Name Service Servers (NBNS), bei Microsoft WINS (Windows Internet Name Service) genannt. Hierbei senden die Clients ihren Namen und ihre Adressse an diesen Server bzw. werden diese fest in einer Datenbank eingetragen. Dann können sich die einzelnen Clients bei Namensanfragen an diesen Server wenden, um von ihm die Adressen ihrer Partner erfragen. Dies funktioniert im Gegensatz zu Broadcasts auch über Subnetze hinweg und verringert außerdem den Netzwerkverkehr durch Reduzierung der Broadcasts, was sich in größeren Netzen durchaus lohnen kann. Somit ähnelt das NBNS/WINS Konzept dem des DNS (Domain Name Server), ist allerdings mehr auf eine dynamische Verwaltung ausgerichtet, was Konflikte nach sich ziehen kann, da jeder Rechner über einen Cache verfügt, der diese Zuordnungen eine Zeit lang speichert und außerdem jeder Rechner dem WINS Server Angaben machen kann. Mit der Implementation von CIFS 1.0 in Windows 2000 wird sich hier aber einiges ändern, siehe "Zukunft".

2.3. Browser-Dienste

Die sogenannten Browselisten dienen dazu, dass sich der Benutzer Überblick darüber verschaffen kann, welcher Rechner welche shares im Netz zur Verfügung stellt, also die Liste, die man in Windows unter 'Netzwerkumgebung' finden kann. Die Erstellung und Verwaltung dieser Browselisten übernimmt in einem LAN ein sogenannter Lokaler Master Browser (LMB), der zuvor durch eine Abstimmung aller Clients bestimmt wird. Zusätzlich zu den LMBs gibt es noch Domänen Master Browser (DMB), die die Browselisten einer ganzen Domäne (also auch über Subnetze hinweg) verwalten. Die LMBs und die DMBs tauschen ihre gesammelten Daten aus, zusätzlich werden diese Listen nochmals an alle Clients im Netz verteilt, was dazu führt, dass es bis zu einer Stunde dauern kann, bis sich Aktualisierungen herumgesprochen haben.

2.4. Das Domänenkonzept von Windows NT

Der Hauptgrund für den Einsatz von Windows NT-Server in Netzwerken, ist der Wunsch eine zentrale Benutzer- und Clientverwaltung für Windows-Rechner zu haben. Microsoft hat dazu das sogenannte Domänen Konzept eingeführt. Der Unterschied zu der bis dahin existierenden Arbeitsgruppe besteht darin, dass eine Arbeitsgruppe mehrere Computer zusammenfasst, die alle ihre jeweiligen Sicherheitsinformationen selbst verwalten, während bei einer Domäne hingegen die Sicherheitsinformationen zentralisiert auf den sogenannten Domänen Controllern festgehalten und verwaltet werden. Es gibt immer genau einen Primären Domänencontroller (PDC) und kann einen oder mehrere Backup Domänencontroller (BDC) geben. Die Daten werden normalerweise am PDC verwaltet und dann automatisch auf die BDCs repliziert, die ebenfalls Anmeldewünsche entgegennehmen und so die Last aufteilen. Weitere Vorteile dieses Konzeptes sind, dass es bei Ausfalles eines Servers keinen Totalausfall des Netzes gibt, da ein BDC bei Ausfall eines PDCs auch zum PDC heraufgestuft werden kann, so dass trotzdem immer eine zentrale Datenbank besteht. Die Sicherheitsinformationen in der Datenbank enthalten unter anderem die Computerkonten, die Benutzereinträge, die verschlüsselten Passwörter, die erlaubten Anmeldezeiten, die Gruppeninformationen und die Rechte, die die einzelnen Benutzer bzw. Gruppen haben.

2.5. Blick in die Zukunft

Die Enwickler von Samba streben es an, den NT-Domänencontroller Code weiter zu vervollständigen und zu entwanzen, so dass es hoffentlich bald möglich sein wird, Samba als vollwertigen PDC Ersatz einzusetzen. Außerdem bringt Windows 2000 einiges neues mit sich, wodurch sich die Samba Funktionalität evtl. auch ändern könnte: Das SMB Protokoll soll vom NetBIOS-Protokoll entkoppelt werden und nativ über TCP/IP arbeiten, wobei dann die Namensauflösung über DNS laufen soll, das neue Protokoll heißt CIFS, was für Common Internet File System steht. Weitere Neuerungen stehen mit Kerberos V, Active Directory und der Änderung des NT-Domänensystems in ein dem DNS angeglichenes Format (hierarchisches Domänensystem).



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04506
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06241
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1140
Comments: 0