Samba
Aleš Havlík, xhavlik2@fi.muni.cz
Obsah
Samba je sada aplikací, které různým operačním systémům umožňují využívání služeb spojených s protokoly SMB a NetBIOS, které jsou součástí např. OS Windows či IBM OS/2, a umožnují tak např. plnohodnotné začlenění linuxového stroje mezi stroje s MS Windows.
- Protokol NetBIOS (Network Basic Input/Output System) tvoří vrstvu nad protokoly TCP/IP či IPX, DECnet. Slouží k pojmenovávání stanic v rámci sítě. Tato jména mohou být až 16 znaků dlouhá, 15 znaků text (Microsoft požaduje UPPERCASE a jeden znak pro označení typu (např. Workstation Service, Master Browser, Modem Sharing Server Service apod.). Protokol je popsán v RFC1001 a RFC1002.
Standartní porty využívané NetBIOSem v TCP/IP:
- 137/UDP: NetBIOS name service - pro rozlišení jmen a registraci
- 138/UDP: NetBIOS datagram - pro prohlížení
- 139/TCP: NetBIOS Session - pro sdílení souborů a tiskáren
- 445/TCP,UDP: SMB - Od Windows 2000, poskytuje stejné služby jako tři předešlé porty
- Protokol SMB (Server Message Block), nověji též nazývaný CIFS (Common Internet File System) je vyvíjen někdy od roku 1985 firmami IBM, Intel a Microsoft. Tvoří aplikační vrstvu nad protokolem NetBIOS (NetBEUI) a slouží k sdílení souborů, tiskáren, sériových portů, aj. mezi počítači v síti. Je neustále vyvíjen a ,,vylepšován", ale bohužel není nikde zcela zdokumentován.
- smbd - démon poskytující soubory a tiskárny SMB klientům. Poslouchá na portu TCP/139 a pro každé spojení vytvoří nový proces. Konfigurace tohoto démona je zapsána v souboru /etc/samba/smb.conf (v případě Linuxu).
- nmbd - démon zajišťující překlad jmen a browsing. Překlad jmen může řešit buď pres broadcast nebo point-to-point dotazy. Broadcast dotazy by se měly používat pouze na lokalních sítích. Point-to-point dotazy se řeší pomocí NBNS(NetBIOS Name Service) serverů.
- smbclient - aplikace podobná např. ftp klientovi, umožňuje procházení sdílených prostředků na SMB serveru a zasílání zpráv.
$ smbclient //CESIUM/disk -U yann
- nmblookup - slouží k překladu NetBIOS jmen na IP adresu.
$ nmblookup cesium
querying cesium on 192.168.0.255
192.168.0.3 cesium<00>
- smbstatus - informace o aktivních spojeních se smbd.
- smbpasswd - nástroj pro změnu samba a Windows NT hesel.
- smbmount - pouze u Linuxu, pokud je v jádře podpora pro smbfs. Umožňuje přimountovat smb sdílení.
- smbtar - zálohování dat ze sdílených disků.
- swat - nástroj pro konfiguraci samby přes webový prohlížeč.
- testparm - test syntaxe konfiguračního souboru smb.conf.
- testprns - test syntaxe souboru tiskáren printcap.
Zdrojové texty Samby lze stáhnout z oficiálních stránek http://www.samba.org. Pro většinu běžných systémů existují binární distribuce. Kompilace ze zdrojových souborů probíhá obvyklým způsobem, tedy:
# cd /usr/src/samba/
# ./configure --help
# ./configure [volby]
# make
# make install
mezi volby patří např:
--with-configdir=/etc/samba
--with-quotas
--with-ldap
--with-pam
--with-acl-support
--with-krb5=base-dir
Konfigurační soubor (v Linuxu obvykle /etc/samba/smb.conf) má stejnou syntaxi jako soubor win.ini ve Windows, tedy:
[sekce]
promenna = hodnota
jina promenna = jina hodnota
V smb.conf jsou tři speciální sekce:
- [global] - parametry nastavené v této sekci jsou platné ve všech ostatních sekcích (pokud v nich není uvedeno jinak)
mezi proměnné typicky nastavované v této sekci patří:
- client code page = 852 - nastavení kódové stránky pro klienta na cp-1250
- character set = iso8859-2 - nastavení kódové stránky, na kterou samba převádí názvy souborů
- workgroup = WORKGROUP - nastavení pracovní skupiny
- hosts allow = 192.168.0. - omezení přístupu na tyto ip adresy
- guest account = guest - uživatel u public sdílení
- log file = /var/log/samba/%U.log - log pro každého uživatele zvlášť
- encrypt passwords = yes - šifrování hesel (>=Win98)
- security = user
- load printers = yes - automatické načtení tiskáren při startu
- další viz.: $ man smb.conf
- [homes] - tato sekce popisuje přístup uživatelů k jejich domovským adresářům
- browseable = yes
- writable = yes
- valid users = %S
- create mode = 0664
- directory mode = 0775
- [printers] - globální nastavení tiskáren
- path = /var/spool/samba
- browseable = no
- guest ok = no
- writable = no
- printable = yes
Další sekce značí název sdílení. Pokud název obsahuje na konci znak $, nezobrazí se ve windowsovém procházení sdílení.
Příklad:
[skryty$]
comment = skryty adresar
path = /home/yann/hidden
valid users = yann
read only = no
public = no
[tmp]
comment = public temp
path = /tmp
read only = no
public = yes
Buď init skriptem (např. v Gentoo /etc/init.d/samba start) nebo manuálně příkazy:
/usr/local/samba/bin/smbd -D
/usr/local/samba/bin/nmbd -D
www.samba.org