Samba je software, který umožňuje linuxovému nebo unixovému systému sdílet v síti soubory a tiskárny s windowsovými počítači. Nosným protokolem pro komunikaci mezi počítači je používán nejčastěji protokol TCP/IP. SMB neboli "Server Message Block" je službou nesenou na tomto protokolu. Linuxový počítač je z pohledu sítě viděn jako jedna z windowsovských stanic, rovněž jeho disky a tiskárny lze sdílet stejným způsobem jako disky a tiskárny windowsovského počítače.
Dnes jsou k dispozice verze Samby 2.2.x a 3.0.x.
SMB je starší obecný protokol pro sdílení souborů, tiskáren, seriových portů a dalších (např. pojmenovaná roura) mezi počítači. Microsoft implementuje vlastní formu SMB protokolu k poskytování sdílení ve starších verzích Windows.
Toto je nové jméno pro SMB. CIFS poskytuje lepší součinnost s novějšími servery jako Windows Server 2003 a které jsou optimalizovány pro současnou verzi SMB/CIFS protokolu. CIFS je implementován v jádře 2.6 nebo pomocí patche pro jádro 2.4.
Samba se v podstatě zkládá ze dvou nebo tří démonů.
nmbd - zajišťuje službu převodu jmen LanManager serverů na IP
adresy. Jeho činnost se podobá Inernetovskému DNS, i když je o mnoho
jednodušší
smdb - tento démon je jádrem celého serveru. Jeho úkolem je
komunikovat s klienty, zajišťovat jejich přihlášení a poskytovat služby
přístupu na disk a k tiskárnám
winbindd - je potřeba pokud je Samba členem Windows NT4 nebo ADS
domény.
Konfigurace Samby je uložena v smb.conf, který je obvykle v adresáři /etc/samba/. Konfiguraci můžete povést přímo editací, tohoto souboru, nebo pomocí některého z grafických rozhraní. Nejznámější je SWAT (Samba Web Administration Tool).
Soubor smb.conf je rozdělen do sekcí a každá sekce může obsahovat různé parametry. V konfiguraci mohou být tři sekce s zvláštním významem. Jejich jména jsou přesně definována: [global],[homes] a [printers]
Příklad:
[global] workgroup = lab.fi.muni.cz [homes] guest ok = no readable = no
Tento příklad je jednoduchá ukázka, kde v sekci global je nastavena pracovní skupina a pomocí sekce homes jsou zpřístupněny domovské adresáře uživatelů.
Pokud chceme vytvořit nejaký další zdroj sdílení, nadefinujeme si další sekci s vlastním názvem.
[tmp] comment = adresar tmp path = /tmp browsable = no public = yes host allow = @lab.fi.muni.cz
Kde path označuje cestu ke sdílenému adresáři, browsable určuje, že adresář nebude vidět při vylistování dostupných zdrojů.
Parametry, které jsou uvedeny v této sekci jsou uplatněny pro celý server nebo jako defaultní hodnoty pro ostatní sekce pokud v nich není daný parametr definován.
Tato sekce slouží k nastavení parametrů pro sdílení domovských adresářů uživatelů. Většinou je sekce nastavena tak, aby nebyla vidět při listování sdílených adresářů. Parametr browseable = no
Nastavuje sdílení tiskáren. Jsou sdíleny všechny tiskárny, které jsou uvedeny v souboru /etc/printcap. Parametry, které můžeme nastavit jsou analogické jako u sekce homes. Navíc je zde parametr printable = yes, který je speciální pro tuto sekci.
Dále je možné definovat další sekce, které určují konkrétní data která jsou sdílena. Do hranatých závorek uvedem název sekce. Pak definujeme pomocí parametrů její vlastnosti. Několik možných parametrů:
Ostatní parametry viz smb.conf(5).
Každý zdroj může být buď veřejný nebo může být poskytován pouze právoplatným uživatelům, kteří se prokáží platným heslem
Zpřístupnění zdroje pro všechny uživatele je možno nastavit parametrem public = yes. Uživatelé, kteří si budou chtít tent zdroj připojit nebudou muset zadávat své jméno a heslo.
Přístup s ověřením totožnosti může být problematický. Pro správnou funkci přihlašování musí Samba k zadaným autoritačním informacím nalézt odpovídající pár jméno/heslo v souboru /etc/passwd. Některé systémy mohou posílat chybné nebo žádné jméno uživatele nebo heslo převedené na velké znaky.
Klienti MS Windows mohou používat šifrovaná hesla jako část challenge/response autentizačního modelu nebo samostatně, nebo jako textový řetětec. Dnešní klienti windows implicitně používají kódované heslo.
Pokud je heslo kódované, může být zakódováno jedním ze dvou způsobů:
Dále je možné provést omezení adres klientů, kteří se mohou připojit k Sambou posktytovaným zdrojům. Je to možné určit pomocí parametrů hosts allow a hosts deny. Je-li povolených nebo zakázanych klientů pouze několik, lze je jednoduše vyjmenovat. Uvedeme-li jako první znak @, jedná se o pracovní skupinu a bude povolen přístup všem počítačům v ní.
hosts allow = doto-beta, @lab.fi.muni.cz
Samba verze 3, může vystupovat v sítích Microsoft jako tři typy serverů.
Sambu je možné nakofigurovat tak, aby bylo možné měnit heslo z Windows a zároveň docházelo k jeho nastavení jako sytémového. Používá se k tomu PAM modul pam_smbpass.so, který se stará o synchronizaci mezi sambovským heslem a klasickým heslem v Unixu.
V konfiguraci Samby, nastavíme parametr unix password sync = yes a parametry passwd program, passwd chat, které definují kterým programem bude heslo měněno a jak bude vypadat interakce programu při změně.
Součástí Samby je i jednoduchý klient smbclient. Pomocí něj můžete zjišťovat zdroje, přenášet soubory, tisknout na vzdálených tiskárnách.
Seznam zdrojů poskytovaných daným serverm můžete snadno zjisti takto:
smbclient -L server
kde server je jméno daného serveru
Chcete-li pracovat se zdoji ze serveru, spusťte klienta s parametrem určujícím zdroj
smbclient \\server\zdroj smbclient \\server\zdroj heslo