matrix 2326147 640

SAMBA – Netzwerk-Brücke zwischen Unix und Windows

SAMBA ist eine populäre, quelloffene Netzwerksoftware, die es Rechnern mit einem Unix- oder Linux-Betriebssystem ermöglicht, auf die Freigaben von Netzwerkressourcen aus Windows-Netzwerken (bzw. dem Microsoft-Verzeichnisdienst „Active Directory„) zuzugreifen, beispielsweise auf Dateien und Drucker. Darüber hinaus kann die Software auch dazu verwendet werden, Unix-/Linux-basierte Server oder Controller in einem solchen Netzwerk zu installieren und deren Ressourcen freizugeben.

Die gängigen Protokolle Server Message Block (SMB) bzw. Common Internet File System (CIFS, eine offene Version von SMB) sind die Basis, auf der Samba aufsetzt. Der Name „Samba“ spielt auf die Abkürzung „SMB“ an.

Samba unterliegt der GNU General Public License, ist auf vielen Unix-Systemen vorinstalliert und auf fast allen lauffähig. Die Gruppe, die Samba entwickelt, besitzt einen Kern von etwa 20 Personen. Ihre Arbeit wird von mehreren Unternehmen sowohl durch finanzielle als auch durch personelle Beiträge unterstützt, unter anderem von IBM.

 Server Message Block als Grundlage

Server Message Block, abgekürzt SMB, ist ein Netzwerk-Protokoll für Datei-, Druck- und andere Netzwerkdienste. SMB ist bereits in den frühen 1980er Jahren bei IBM entstanden. Es folgt einem Client-Server-Modell: SMB-Server veröffentlichen Ressourcen im Netzwerk und Clients können auf diese Ressourcen zugreifen, indem sie Anfragen an einen SMB-Server richten und entsprechende Antwort erhalten. Die freigegebenen Ressourcen werden in der obersten Ebene als „Shares“ bezeichnet. Es kann sich dabei zum Beispiel um Drucker handeln, oder um Knoten eines Dateisystems, die durch Verknüpfung untereinander eine Ordnerstruktur bilden können. Ein Server kann beliebige Teile seines lokalen Dateisystems als Shares bereitstellen, daher ist die für einen Client sichtbare Hierarchie teilweise unabhängig von der Struktur auf dem Server. Die Zugriffsrechte werden durch sogenannte Access Control Lists (ACL, auf Deutsch: Zugriffssteuerungslisten) festgelegt. Sie können feingranular anhand von Attributen wie „ausführen“, „lesen“ und „Vollzugriff“ für einzelne Benutzer oder Benutzergruppen gesteuert werden. Die ACLs werden anhand der Shares festgelegt und müssen demnach ebenfalls nicht den lokal auf dem Server vergebenen Rechten entsprechen.

monitor 1307227 640

Die Authentifizierung der Benutzer geschieht strukturiert nach sogenannten Domänen. Eine Domäne ist eine zentral festgelegte Hierarchie von Rechnern, kann aber auch eine sogenannte Arbeitsgruppe (eine kleine Menge lokaler Rechner) oder ein einzelner Server sein. Die Domänen in einem Netzwerk werden bei Active Directory durch die Domänen-Controller verwaltet.

Mehr zum Thema:
Was ist Typo3?

Eine wichtige Eigenschaft von SMB ist die Fähigkeit zum sogenannten Browsing. Es handelt sich um einen Mechanismus, mit dessen Hilfe Clients die Server im Netzwerk „entdecken“ können. Browsing ist damit ein wesentlicher Aspekt für die Nutzerfreundlichkeit von SMB, weil andere Rechner gefunden und genutzt werden können, ohne dass zuvor Informationen über deren Netzwerkadresse und weitere technische Eigenschaften auf Clients eingetragen werden müssen.

SMB hielt bereits in frühe netzwerkfähige Windows-Versionen wie Windows for Workgroups, die Windows-9x-Versionen sowie die Windows-NT-Produktfamilie Einzug. Das Protokoll wurde im Laufe der Jahre durch verschiedene Unternehmen und Gruppen (u. a. Microsoft, SCO, IBM und Samba) erweitert, wobei Microsoft den Ton angab, seine Implementierungen jedoch nicht als Spezifikation offenlegte. Nach einem Kartellstreit mit der Europäischen Union wurde SMB im Jahr 2007 als Teil des Workgroup Server Protocols Program Entwicklern zugänglich gemacht.

Die Software Suite

Samba ist eine Softwaresuite, die aus mehreren Programmen besteht und das Protokoll SMB auf Unix-Systemen zur Verfügung stellt. Es erlaubt so die einfache Zusammenarbeit mit Windows-Computern. Samba implementiert zu diesem Zweck Funktionalitäten von Windows-Servern wie Datei- und Druckdienste.

Mit der Version 3 erlangte der Samba-Server die Fähigkeit, vollwertiges Mitglied einer Active-Directory-Domäne zu sein. Mit der Version 4 stellt Samba sogar einen Active Directory Domänen-Controller bereit.

Samba besteht aus vier wesentlichen Grundfunktionalitäten: 1. Datei- und Druckdiensten; 2. Authentifizierung und Autorisierung; 3. Namensauflösung; sowie 4. Browsing. Samba enthält dazu mehrere sogenannte Daemons; dabei handelt es sich um Unix-Hintergrundprogamme. Der zu Samba gehörende SMB Server Daemon „smbd“ stellt die ersten beiden Funktionalitäten bereit, während der ebenfalls zugehörige Server Daemon „nmbd“ (die Abkürzung steht für „NetBIOS message block daemon“) die letzten beiden Funktionalitäten implementiert. Der Server Message Block Service kontrolliert diese beiden Hintergrundprogramme.

Weitere relevante Module aus der Samba-Suite sind winbindd, ein Daemon, der den Abgleich von Benutzer- und Gruppenzuordnungen übernimmt, sowie das Samba Web Administration Tool (SWAT), eine Webanwendung, mit deren Hilfe ein Administrator Samba konfigurieren kann. SWAT wird als ein eigener kleiner Webserver im Unix-System gestartet und benutzt standardmäßig den TCP-Port 901. Samba 4 enthält eine komplette Reimplementierung von SWAT, die SWAT2 heißt und eine höhere Benutzerfreundlichkeit aufweist.

Mit Samba 4 ist außerdem als weiterer Daemon „samba“ hinzugekommen, der die Active-Directory-Emulation übernimmt und einen Active-Directory-Controller bereitstellen kann.

Mehr zum Thema:
Was ist ein Disassembler und wozu können Sie ihn verwenden?

hand 3108160 1280

Konfiguration

Die Konfiguration von Samba erfolgt entweder über SWAT (bei Samba 4: SWAT2) oder über die Konfigurationsdatei smb.conf. Die smb.conf ist einfache Textdatei, die die Laufzeitkonfiguration festlegt. Die Datei besteht aus sogenannten Sections (Abschnitten) und Parametern. Es gibt drei vordefinierte Sections: [global], [homes] und [printers]. Einstellungen in der [global]-Section gelten für den gesamten Server, wenn sie nicht überschrieben werden, [homes] definiert die Home-Verzeichnisse der User, die an der Domäne angemeldet sind. Die Section [printers] enthält die am Server eingerichteten Drucker.