# Samba (software)

Samba is een opensourcesoftwarepakket dat bestaat uit verschillende applicaties. Samba maakt gebruik van het SMB-protocol.
Door ondersteuning voor dit protocol te bieden, kunnen machines die dit protocol ondersteunen met elkaar communiceren over het netwerk, zowel intern als over het internet. Deze technologie wordt vooral gebruikt om Unixmachines te laten communiceren met Windowsmachines.

## Geschiedenis

Andrew Tridgell ontwikkelde de eerste versie van wat uiteindelijk Samba zou gaan worden vanaf december 1991. In januari 1992 publiceerde hij de eerste versie als „Server 0.1”.
Na enkele bugfixes liet Tridgell het project bijna 2 jaar rusten, ook al kreeg hij verschillende mails met vragen over zijn project. Pas toen hij zijn Unix-systeem wilde verbinden met het Windows-systeem van zijn vrouw, haalde hij zijn project weer boven en doopte het om tot smbserver. Aangezien dit handelsmerk problemen gaf, zocht Tridgell naar een andere naam. Die naam werd uiteindelijk Samba.
Ondertussen was het reeds 1995 en begon het project meer en meer te groeien en later kwam er ook meer invloed van buitenaf. Ontwikkelaars die Samba mee wilden ontwikkelen en uitbreiden, schreven hun eigen stukken code en al snel ontstond er een team achter Samba.

## Functionaliteit

Samba zorgt ervoor dat gebruikers van een Windows-systeem toegang krijgen tot gedeelde bestanden en printers van een Unix-systeem en andersom. Uiteraard is er ook een authenticatiesysteem ingebouwd waardoor ongewilde gebruikers geen toegang krijgen. Dit was eerder niet mogelijk omdat Unix en Windows andere protocollen gebruikten om bestanden te delen in een lokaal netwerk (LAN). Samba vertaalt simpelweg het ene protocol zodat het verstaanbaar is voor het andere.
In een Windowsnetwerk krijgt elk systeem ook een NetBIOS-naam. Deze zorgt voor een alternatief voor het IP-adres. Samba zorgt er ook voor dat namen van de systemen in het netwerk worden opgehaald en geïdentificeerd.
De laatste stabiele versie van Samba is 4.0, al blijft het team achter Samba werk uitvoeren om de code te optimaliseren en eventuele nieuwe technologieën/protocols te ondersteunen.

### Samba 4.0

Volgende implementaties en verbeteringen zijn aanwezig in Samba 4.0:
* Ondersteuning voor de logon- en administratieprotocols van Active Directory
* Nieuwe testsuites
* Volledige NTFS-semantics voor delende back-ends
* Interne LDAP-server met AD-semantics
* Interne Kerberos-server met PAC-ondersteuning
* Flexibele procesmodellen
* Betere schaalbaarheid van kleine tot zeer grote installaties
* Nieuwe RPC-infrastructuur (PIDL)
* Flexibele database-architectuur (LDB)
* Embedded codetaal (ejs)
* Generic-veiligheidssysteem (GENSEC)
* Meer dan 50% automatisch gegenereerde code
In Samba 4.1 werd ondersteuning voor btrfs en versleuteld transport voor SMB3 toegevoegd.

## Versies

Het Samba-project onderhoudt meerdere uitgaveseries naast elkaar (zie onderhoudsversie). Momenteel zijn dit 3.0.x, 3.2.x, 3.3.x, 3.4.x en 4.0.x.
Enkele belangrijke versies in de geschiedenis van Samba:
| Versie | Datum van uitgave | Ingrijpende veranderingen |
| 1.0 | Begindagen van 1992 | Eerste versie |
| 1.5 | December 1993 | Ontstaan van smbserver en smbclient, eerste mogelijkheid als printserver, vrijgegeven onder GPL |
| 1.5.20 | December 1993 | Jeremy Allison schrijft mogelijkheid om met NT-servers te verbinden |
| 1.5.21 | December 1993 | Karl Auer maakt script met 'smb.conf' waarin verschillende opties kunnen gespecificeerd worden |
| 1.6 | Maart 1994 | Lange bestandsnamen worden ondersteund. Het project heet nu officieel Samba |
| 1.6.09 | April 1994 | Beveiliging op gebruikersniveau, eerste populaire versie |
| 1.7 | Juli 1994 | Ontstaan van FAQ, name mangling |
| 1.8 | Augustus 1994 | Ondersteuning voor IPC en named pipe |
| 1.9 | Januari 1995 | Samba kan gebruikt worden als masterbrowser van het netwerk |
| 1.9.16 | Mei 1996 | Introductie van CVS, eigenlijke ontstaan van 'Team Samba' |
| 2.0 | Januari 1999 | Enorm populair zelfs voor beginners, Eerste boek over Samba |
| 2.2 | Eind 1999 | Primaire domeincontroller voor NT4, ondersteuning voor Windows 2000 |
| 3.0 | September 2003 | Grote structurele verbeteringen, ondersteuning voor Active Directory |
| 3.2 | Juli 2008 | Ondersteuning voor Windows Vista en Windows Server 2008, ondersteuning voor IPv6, encryptie |
| 3.3 | Januari 2009 | tdbsam-update, experimentele ondersteuning voor NTFS ACL's. |
| 3.4 | Juli 2009 | Mogelijkheid om Samba 3 en 4 naast elkaar te draaien om een Active Directory te simuleren. |
| 4.0 | december 2012 | Volledige Active Directory-ondersteuning zodat Samba als domain controller kan werken. |
| 4.1 | oktober 2013 | Toevoeging van ondersteuning voor btrfs en versleuteld transport voor SMB3. |
| 4.2 | maart 2015 | Transparente bestandscompressie en cluster-ondersteuning |
| 4.3 | september 2015 | |

## Samba TNG

Samba TNG (The Next Generation) werd geforkt eind 1999, na onenigheid tussen de Samba-ontwikkelaars en Luke Leighton over de richting van het Samba-project. Zij slaagden er niet in overeenstemming te bereiken over een ontwikkelingstransitiepad waardoor de onderzoeksversie van Samba die hij ontwikkelde (destijds bekend als Samba-NTDOM) langzaam kon worden geïntegreerd in Samba.
Sinds de start van het project is de ontwikkeling minimaal geweest door een gebrek aan ontwikkelaars. Als zodanig adviseerde het Samba TNG team regelmatig Samba te proberen omdat ze meer ontwikkelaars hebben en in staat zijn om meer platformen en situaties te ondersteunen.
Een van de belangrijkste doelstellingen van het Samba TNG project is het herschrijven van alle NT-domeinservices als FreeDCE-projecten.
Dit doel van herschrijven wordt bemoeilijkt door het feit dat alle netwerkdiensten handmatig zijn ontwikkeld via reverse engineering, met beperkte of geen verwijzing naar DCE/RPC-documentatie.
De belangrijkste verschillen tussen de twee programma's zijn de implementatie van de NT Domains suite van protocollen en MSRPC-diensten. Samba stelt alle NT Domains services beschikbaar vanaf één plaats, terwijl Samba TNG elke service in zijn eigen programma heeft gescheiden.
ReactOS begon met het gebruik van Samba TNG-diensten voor de implementatie van SMB. ReactOS-ontwikkelaars waren geïnteresseerd in het Samba TNG-ontwerp om ReactOS te laten communiceren met Windows-netwerken. De ontwikkelaars van beide projecten hebben samengewerkt om de netwerkcode aan te passen en het systeem te bouwen. De meerlagige en modulaire aanpak maakte het gemakkelijk om elke dienst over te zetten naar ReactOS.
Gezien de minimale ontwikkeling van Samba TNG is ReactOS in februari 2017 overgestapt op Samba zelf.

## Gerelateerde software en protocollen

* SMB
* Kerberos
* LinNeighborhood
* LDAP Account Manager

## Externe link

* (en) Projectpagina
* ↑ [Announce Samba 4.21.0 Available for Download] (2 september 2024). Geraadpleegd op 2 september 2024.
* ↑ (en) Andrew Tridgell and the Samba Team, A bit of history and a bit of fun (27 juni 1997). Geraadpleegd op 28 mei 2013.
* ↑ (en) Reeds geïmplementeerde functies in Samba 4.0 bèta 1
* ↑ (en) Samba 4 delivers free software Active Directory support
* ↑ (en) Samba 4.1 Supports Btrfs, Encrypted Transport
* ↑ Project FAQ - Wat is de relatie tussen Samba en Samba TNG?. Gearchiveerd op 12 november 2008. Geraadpleegd op 19 februari 2008.
* ↑ Project FAQ - Welke moet ik gebruiken - Samba of Samba TNG?. Gearchiveerd op 11 januari 2008. Geraadpleegd op 19 februari 2008.
* ↑ Project FAQ - Wat is dit alles over FreeDCE?. Gearchiveerd op 11 januari 2008. Geraadpleegd op 19 februari 2008.
* ↑ Brian Vincent, Interview met Steven Edwards. Wine HQ. Geraadpleegd op 19 februari 2008.
* ↑ https://reactos.org/wiki/User:Petr-akhlamov/Samba
Bron
* De sectie Samba TNG of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Samba (software) op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.