Samba je implementace SMB/CIFS síťového protokolu pod licencí GNU/GPL pro linux. Původně byla vyvinuta pro systém UNIX Andrewem Tridgellem, její současná verze je 3.0.23c. Nástroj je používan především pro vzdálený přístup k souborům (sdílení) včetně systémů MS Windows a přístupu k tiskárnám. Implementaci Samby můžeme najít na většině UNIX-like systémech, BSD variantách nebo i na Mac OS X (od verze 10.2). Jméno pochází z protokolu používaného MS Windows "SMB" (server message block). Programový balík obsahuje smbd, démon který zajištuje služby sdílení (disků i tiskáren) pro SMB klienty (jako je Windows, smbfs, smbclient). Dále obsahuje nmdb, který umožňuje procházení sdílených prostředků a NetBIOS nameserver (implementace NetBIOS protokolu).
Server Message Block je síťový protokol na aplikační úrovni sloužící pro přístup k souborům, tiskárnám a dalším komunikacím mezi uzly v síti. Taktéž poskytuje autentizovanou komunikaci mezi procesy. Byl původně navržen Barry Feigenbaumem z IBM pro přístup přes lokální síť k souborům, ale hlavní modifikace byly provedeny Microsoftem, který propojil SMB protokol se síťovým manažerem a postupně přidával další funkce. SMB běžel nad protokolem NetBIOS, skrz který SMB komunikoval přímo s TCP/IP. V roce 1996 bylo SMB přejmenováno na Common Internet File System (CIFS) a byly přidány nové prvky jako např. podpora symbolických linků, podpora větších souborů.
Network Basic Input/Output System umožňuje komunikaci mezi stroji v lokální síti. Poskytuje služby odpovídající relační vrstvě OSI modelu. Každý stroj běžící pod Windows má svoje NetBIOS jméno, které musí být jedinečné v síti a rovněž host name, jméno které využívá služby jako ftp, telnet, prohlížeče atp. NetBIOS bylo vyvinuto IBM v roce 1983 a původně podporovalo 80 strojů v jedné síti a postupem času se stalo standartem. Běží nad porty 137-139 podle typu služby, kterou obsluhuje. Jde o jmenou službu (port 137), komunikační službu (port 138) a port 139 slouží pro přenos dat.
Windows Internet Naming Service (WINS) je MS implementace NetBIOS Name Serveru (NBNS) pro Windows - pracuje jako jmený server v síti. Úložiště je dynamicky aktualizováno, takže si stroj pokud chce komunikovat s jiným ověří platnost jmena a adresy stroje. WINS servery si drží plné kopie ostatních strojů v dané oblasti, topologie tak není centrální, ale distribuovaná, což ulevuje síťovým linkám. Od Windows 2000 nejsou WINS doporučený - přechod k DNS a Active Directory.
Instalace pro gentoo: USE="automount examples doc -cups" emerge samba -v
Konfigurační soubor smb.conf
se nachází v /etc/samba/
a je rozdělen do podsekcí, kterí definují
jednotlivé prvky pro sdílení. Vyjímku tvoří sekce [global] (obecné nastavení), [homes] (sekce pro připojení domovských adresářů), [printers] (varianta podobná s homes, jen pro tiskárny)
[global] workgroup = WORKGROUP //NT-Domain-Name nebo Workgroup-Name netbios name = NEPTUNE server string = Notebook //Popisek pro server - ekvivalentni NT Description field security = share //Nastaveni urovne bezpecnosti - mozne varianty share, user, server, domain client code page = 852 //znakova sada klienta character set = ISO8859-2 // znakova sada systemu - plati pro server log file = /var/log/samba log level = 3 username map = /etc/samba/smbusers //Mapovani smb jmen pro normalni ucty guest account = smbuser //uzivatele s uctem navstevnika budou na stroji zalogovani jako smbuser hosts allow = 10.0. //omezi pristup jen pro lokalni sit printcap name = /etc/printcap //umisteni konf. souboru pro tiskarny load printers = yes //vsechny tiskarny v printcap name budou automaticky sdileny //Verejne pristupny adresar [public] comment = shared path = /tmp //cesta ke sdilenemu prostredku guest ok = yes //zdroj je pristupny bez hesla browseable = yes //zdroj bude videt na vypisu smbclient -L //Sdileni domovskych adresaru - uzivatel zada svoje jmeno a pokud se //prokaze heslem, dostane svuj domovsky adresar [homes] comment = Home directories browsable = no writable = yes valid users public = no //Sdilene tiskarny [printers] path = /var/spool/lpd/samba #cesta, kam se budou spoolovat data printable = yes printing = lprng #nastavení prikazu pro spravu uloh z fronty load printers = yes #nacteni tiskaren z printcap souboru public = yes #tiskarny jsou dostupne vsem printcap name = /etc/printcap //Adresar Big_Franty_usera - neni videt ve vypise a pristu do nej ma jen uzivatel franta [BFU] comment = Franta's home path = /home/franta valid users = franta public = no writable = yes printable = no
Problém nastává hlavně se staršími Windows (3.11, W95, NT), která pracují s hesly ve formě plain textu. Zbylé verze už hesla kódují. V tomto případě máme 2 možnosti. Naučit ostatní Windows aby posílaly hesla v plaintextu nebo naučit sambu kódovat hesla.
encrypt passwords = yes - Samba je má nastaveno dekódování hesel smb passwd file = /etc/smbpasswd - cesta k souboru s hesly pro Sambu. unix password sync = yes - hesla v /etc/smbpasswd jsou automaticky synchronizována s hesly příslušných uživatelů (unixových, linuxových) serveru null passwords = yes - Jsou povoleni klienti bez hesla (guest).
Pak už jen nastartovat samba server pomocí /etc/init.d/samba start
-L
jmeno_stroje vypíše
sdílené prostředky serveru. Rovněž se připojujeme pomocí něho k sambovskému serveru. smbclient //jmeno_serveru/jmeno_prostredku -U
Domain=[LAB.FI.MUNI.CZ] OS=[Unix] Server=[Samba 3.0.22] Sharename Type Comment --------- ---- ------- homes Disk Home directories spravce Disk spravcuv home IPC$ IPC IPC Service (Thoe) ADMIN$ IPC IPC Service (Thoe) Domain=[LAB.FI.MUNI.CZ] OS=[Unix] Server=[Samba 3.0.22] Server Comment --------- ------- THOE-ALPHA Thoe Workgroup Master --------- ------- LAB.FI.MUNI.CZ THOE-ALPHA
smbpasswd
user_name) nebo vytvoření (smbpasswd -a
user_name) Samba uživatele.
using configfile = /etc/samba/smb.conf Processing section "[tmp]" Processing section "[homes]" Processing section "[spravce]" Samba version 3.0.22 PID Username Group Machine ------------------------------------------------------------------- Opened /var/cache/samba/connections.tdb Service pid machine Connected at ------------------------------------------------------- spravce 5912 10.0.30.2 Sat Nov 11 12:44:38 2006 tmp 5913 10.0.30.2 Sat Nov 11 12:45:13 2006 homes 5910 10.0.30.2 Sat Nov 11 12:43:47 2006 No locked files
smbmount //<server>/<prostredek> /<mount_point>
-o <parametry>
username=<arg> password=<arg>
File systems ---> Network File Systems ---> <*> SMB file system support (to mount Windows shares etc.) <*> CIFS support