Samba - Sdílení nejen souborů v sítích Windows

Hack Robin, xhack@fi.muni.cz

Obsah

Význam zkratek SMB/CIFS

SMB - Server Message Block
Protokol aplikační vrstvy, převážne používaný ke sdíleni souborů, tiskáren a seriových portů v počítačové síti. Dále zajišťuje autentizovanou meziprocesovou komunikaci.
Dnes nejčastěji používán v sítích postavených na Microsoft Windows, kde je znám jako "Microsoft Windows Network" (Okolní počítače, Místa v síti, ...).

CIFS - Common Internet File System
Víceméně to samé, jako transportní protokol použito TCP/IP.

NETBIOS - Network Basic Input Output.
Session vrstva pro spojově orientovanou komunikaci.
Jmenná služba.

Historie - Co to je SMB protokol?

Intelektuální vlastnictví společnosti Microsoft.

Původní protokol, pro společnost IBM navrhl Barry Feigenbaum, s cílem změnit DOSové přerušení 21h, pro přístup k lokálnímu filesystému, na síťový.
Microsoft tento protokol dále rozšířil a integroval do produktu Lan Manager (NOS - Network Operating System), který započal vyvíjet se společností 3Com.

Microsoft nelení a svůj protokol, jako reakci na iniciativu společnosti Sun Microsystem - WebFS, přejmenoval roku 1996 na Common Internet File System. Internet v názvu proto, protože tento protokol mohl běžet i nad transportním protokolem TCP (představeno ve Windows 2000, služba běží na portu 445), a podle všeho toto slůvko bylo v módě.
Přidána také podpora hardlinků, velkých souborů...

Příchod Windows Vista:
Představení SMB 2.0 (taky v tom máte zmatek?).
Snaha o sníženost "ukecanosti" (možnost odeslat více požadavků najednou), vetší velikosti bufferů pro lepší podporu přenosu velkých souborů (v Sambě možnost konfigurovat snad odjakživa)...
Zpetně né moc kompatibilní. Na podpoře se pracuje v Samba 4.0.

Výtky na protokol:
Protokoly jsou velmi "ukecané", takže nejsou vhodné např. pro použití v sítích WAN. Možností je zakoupit krásnou krabičku, cachující provoz SMB/CIFS protokolů.

Free implementace SMB/CIFS/NetBIOS - Samba

Andrew Tridgell v roce 1992 vyvinul první verzi Samby pro Un*x. Za použití paket snifferu, analyzoval protokol využívaný u DEC PATHWORKS serverového software. Zjístil, že protkol je velice podobný i protokolům používaných v produktech společnosti Microsoft (LAN Manager). Rozhodl se zaměři právě na upravenou verzi protokolu této společnosti.

Jak vznikl název projektu Samba:
grep -i '^s.*m.*b.*' /usr/share/dict/words

Samba jsou dva navzájem spolupracující demoni:
smbd - poskytuje SMB/CIFS
nmbd - poskytuje služby NetBIOS
winbindd - seznam uživatelů a skupin, se získává z windows serveru.

A co kompatibilta s nativními windows?
Dobrá. Až na pár bezpečnostních děr, zatím vše fungovalo jak má.
Před nějakou dobou navíc vývojáři získali přístup ke specifikacím protokolu, což kompatibilitě jen napomůže.

Možnosti konfigurace Samba serveru

Formát souboru velice připomína ini soubor používaný nejen ve Windows.

[sekce]
nazev = hodnota

Konfigurační soubor rozdělěn do dvou sekcí:
Globální [global] sekce a "privátní" sekce (vztahující se ke sdílenému prostředku) např. [sdileni].

Nejčastěji používané globální volby:

Lokální nastavení:
[homes]
     comment = Home Directories
     browseable = no
     writable = yes
     valid users = %S
     create mask = 0600
     guest ok = no

Literatura