# Samba (Software)

Samba ist ein freies Programmpaket, das es ermöglicht, Microsoft-Windows-Funktionen wie die Datei- und Druckdienste unter anderen Betriebssystemen zu nutzen und die Rolle eines Domain Controllers anzunehmen. Es implementiert hierfür unter anderem das Server Message Block Protokoll.
Da die Software unter der GPL frei verfügbar ist, wird sie als Alternative zu Microsoft-Windows-Server Betriebssystemen eingesetzt.

## Entwicklung

Im Dezember 1991 wechselte der Student Andrew Tridgell an der Australian National University mit MS-DOS vom Network File System zu Pathworks von der Digital Equipment Corporation, vermisste das Mounten von SunOS, und veröffentlichte dafür im Januar 1992 seinen nach Analyse des Netzwerkverkehrs mit Ultrix programmierten Server 0.1. Den Namen Samba wählte Tridgell im Jahr 1994, weil die enthaltenen Konsonanten das implementierte Protokoll bezeichnen.
Samba wurde auch auf Linux portiert, was dem Betriebssystem eine enorme Verbreitung im Dateiserver-Segment bescherte und zu dessen weiterem Erfolg beitrug. Die nun von einer Gemeinschaft freiwilliger Programmierer entwickelte Software wurde stetig erweitert, um die Beiträge anderer Unternehmen zum Server Message Block Protokoll aufzunehmen. Die Erweiterungen des Server Message Block Protokolls stammten unter anderem von Microsoft, SCO, Thursby, IBM, Apple und dem Samba-Team selbst, wobei Microsoft die meisten Beiträge leistete und auch als einziges Unternehmen einige Erweiterungen geheim hielt. Da aber ein reibungsloser Datenaustausch ohne diese geheimen Erweiterungen nicht immer möglich war, musste ein Teil des Server Message Block Protokolls durch das Auswerten des Netzwerkverkehrs (Netzwerkverkehrsanalyse) erschlossen werden.
Nach Differenzen bezüglich der Architektur von Samba spaltete sich 2000 das Projekt Samba-TNG vom Hauptprojekt mit dem Ziel ab, einen Primary Domain Controller (PDC) für Windows-NT-Domänen zu entwickeln, eine Funktionalität, welche im Hauptzweig damals noch nicht stabil verfügbar war. Die Entwicklung von Samba-TNG schlief 2009 ein.
Zum festen Kern der Entwicklergemeinde von Samba zählen in etwa 40 Personen. Einige Unternehmen, wie zum Beispiel IBM und die deutsche SerNet GmbH, leisten finanzielle und personelle Unterstützung bzw. sind sogar Arbeitgeber einiger Samba-Entwickler.
In der Versionsreihe Samba 3 bestand die Möglichkeit, Samba als Mitgliedsserver in einer Active-Directory-Domäne zu betreiben, nicht jedoch als deren Domain Controller. Samba 3 konnte nur Domain Controller des veralteten Windows NT 4.0 Typs emulieren, was jedoch für viele Netzwerke überschaubarer Größe ausreicht. Darin kann ein zweiter Samba-Server auch die Rolle eines Backup Domain Controller (BDC) übernehmen. Ab Version 3.5 unterstützt Samba auch die von Microsoft mit deren Betriebssystem Windows Vista eingeführte, proprietäre neue Version des SMB-Protokolles namens SMB2.
Die größte Neuerung der aktuellen Version 4 ist die Unterstützung der Active Directory Domain Controller Rolle. Außerdem wurde das Verwaltungswerkzeug SWAT so weit verbessert, dass es auch zur Verwaltung einer Active-Directory-Domäne über das Web genutzt werden kann. Samba 4 beinhaltet eine Neuentwicklung der Domain-Controller-Funktionalität, die integrierte Dateiserver-Rolle basiert jedoch auf der bewährten Version 3 und unterstützt nun auch SMB3. Samba 4 wurde im Dezember 2012 für den Produktiveinsatz freigegeben.
Der Sovereign Tech Fund, ein Förderprogramm des Bundesministerium für Wirtschaft und Klimaschutz, unterstützt Samba in den Jahren 2024, 2025 und 2026 mit insgesamt 688.800 €. Hierbei liegt der Fokus auf Transparentem SMB3 Failover, SMB3 Unix Extensions, SMB Direct, Performance und moderne Sicherheitsprotokolle wie SMB über QUIC.

## Bestandteile und grafische Benutzeroberflächen

Samba besteht aus einer Reihe von einzelnen Modulen, die der grundlegenden Funktion sowie der Konfiguration dienen.
Die Kernmodule sind die Daemons samba (Active-Directory-Emulation ab Version 4), smbd (Datei- und Druckerfreigabe), nmbd (NetBIOS-Namensauflösung) und winbindd (Benutzer-/Gruppen-Zuordnung).
Für die Konfiguration von Samba existieren eine Reihe von GUIs, beispielsweise:
* Das Samba-eigene browserbasierte Modul SWAT (Samba Web Administration Tool)
* Ein Modul für das browserbasierte Konfigurationstool Webmin
* Das Tool GSAMBAD als Teil der Sammlung GAdmintools
* Der browserbasierte LDAP Account Manager zur Verwaltung von Benutzerkonten
* Möglichkeiten zur Ordnerfreigabe in den Benutzeroberflächen des KDE- und Gnome-Projektes
* Verwaltungsoberflächen weiterführender Produkte wie z. B. Univention Corporate Server, IServ und Zentyal

## Verbreitung

Fast alle Linux-Distributionen enthalten Samba und bieten damit Zugriff auf Dateifreigaben in gemischten Netzwerken, in denen z. B. auch Windows eingesetzt wird. Auch in homogenen Unix-Netzwerken wird Samba, und damit das SMB-Protokoll, häufig statt des NFS-Protokolls eingesetzt.
Zusätzlich ist Samba oft Bestandteil weiterführender Hard- (z. B. NAS) und Software-Produkte, die die Installation, Konfiguration und Verwaltung der Software erleichtern und deren Hersteller außerdem oft kommerzielle Unterstützung anbieten.

## Zugang zur Protokolldokumentation

In den frühen 1990er-Jahren hatten Microsoft und das Samba-Team eine produktive Beziehung, bei der Schnittstellendaten ausgetauscht wurden. Dies änderte sich jedoch mit einer neuen Schnittstellen-Politik Microsofts ab Windows 95. Am 20. Dezember 2007 jedoch wurde zwischen Microsoft und der „Protocol Freedom Information Foundation“ (PFIF) auf Anordnung der Europäischen Union ein Abkommen geschlossen, welches Microsoft verpflichtet, alle nötigen Informationen über „Microsoft Work Group Server“ bereitzustellen, um mit diesem vollständig kommunizieren zu können. Das Abkommen sieht vor, dass diese Informationen nur der PFIF und den Samba-Entwicklern zugänglich sind. Dafür erlaubt das Abkommen auch die Veröffentlichung des Quelltextes von Implementierungen dieser Schnittstellen, so dass die Schnittstellen so indirekt offengelegt werden. Patente sind von dem Abkommen allerdings nicht betroffen.
   “We are very pleased to be able to get access to the technical information necessary to continue to develop Samba as a Free Software project. Although we were disappointed the decision did not address the issue of patent claims over the protocols, it was a great achievement for the European Commission and for enforcement of antitrust laws in Europe. The agreement allows us to keep Samba up to date with recent changes in Microsoft Windows, and also helps other Free Software projects that need to interoperate with Windows.”
   „Wir sind hocherfreut, Zugang zu den technischen Informationen zu erhalten, die nötig sind, um Samba als ein freies Softwareprojekt weiterzuentwickeln. Obwohl wir enttäuscht waren, dass die Entscheidung nicht auf die Protokoll-Patentansprüche einging, stellt sie einen herausragenden Erfolg der EU-Kommission und für die Durchsetzung des Kartellrechts in Europa dar. Das Abkommen gestattet uns, Samba mit den neuesten Veränderungen von Microsoft Windows Schritt halten zu lassen, und hilft auch anderen freien Softwareprojekten, die mit Windows interagieren müssen.“
Als Ausdruck eines inzwischen wieder entspannteren Verhältnisses zwischen Microsoft und dem Samba-Projekt kann auch gelten, dass Microsoft-Mitarbeiter sich 2011 erstmals aktiv an der Samba-Entwicklung beteiligten.

## Sicherheit

Im Folgenden sind einige wesentliche geschlossene Sicherheitslücken von Samba angeführt:
* Im Jahr 2010 wurde bekannt, dass einige Versionen bis hin zu Samba 3.6.3 über den anonymen Gastzugriff mittels Remote Procedure Calls (RPC) Zugang zum Root-Konto erlaubten.
* Im Mai 2017 wurde bekannt, dass ähnliche Sicherheitsprobleme wie bei Windows-Betriebssystemen, welche in Form von WannaCry ausgenutzt werden konnten, auch bei Samba bestanden. Bei diesem Fehler, welcher in Anlehnung als SambaCry bezeichnet wird, war es möglich, injizierten Schadcode am betreffenden Samba-System auszuführen. Der Fehler betraf alle Samba-Versionen ab der Version 3.5.0 bis zu der im Mai 2017 aktuellen Version 4.6.4. Dieser Fehler ist vor allem bei NAS-Systemen, welche üblicherweise auf Samba aufsetzen, kritisch. Die Problematik wird verstärkt, wenn das Samba-System von extern zugänglich ist und nicht alle Hersteller für ihre proprietären NAS-Systeme entsprechende Updates für die Fehlerbehebung anbieten oder diese Updates vom Besitzer in Unkenntnis der Problematik nicht eingespielt werden.