SAMBA

Radovan Leistner, <xleistn1@fi.muni.cz>


Obsah


Stru�n� �vod o Samb�

Samba je skupina program�, zalo�en� na obecn�m klient/server protokolu SMB(Server Message Block) vyvinut�m firmami Microsoft, IBM, Intel a 3COM a je dostupn� pod GNU GPL licenc�. P�vodn�m autorem je Andrew Tridgell. Ned�vno byl tento protokol SMB p�ejmenov�n na CIFS (Common Internet File System). Protokol SMB se pou��v� pro komunikaci mezi pracovn�mi stanicemi a serverem Windows a OS/2. UNIXov� syst�my v�ak pou��vaj� NFS, proto vznikla Samba. Jev� se toti� v�hodn�j�� a jednodu��� nau�it UNIX komunikovat s Windows pomoc� jejich nativn�ho protokolu, ne� by tomu bylo naopak. Samba je velice portabiln�, tak�e se s n� m��eme setkat na �ad� syst�m� jako nap��klad Linux, FreeBSD, Solaris a dal�� UNIXov� platformy. Samba poskytuje n�sleduj�c� slu�by:

Z�klad Samby tvo�� 2 hlavn� d�moni a to:
Samba b�� na t�chto portech:
netbios-ns  137/tcp       # NETBIOS Name Service
netbios-ns  137/udp
netbios-dgm 138/tcp       # NETBIOS Datagram Service
netbios-dgm 138/udp
netbios-ssn 139/tcp       # NETBIOS session service
netbios-ssn 139/udp
swat    901/tcp       # Samba Web Administration Tool

Pokud se zam���me na v�kon, tak m��eme zjistit, �e v�kon jmenn�ch/browsing slu�eb nyn� podporuje p�ibli�n� 35 000 soub�n�ch klient� a souborov� a tiskov� slu�by podporuj� 500 z�rove� p�ipojen�ch u�ivatel� na st�edn� velk�m serveru bez viditeln� zt�ty v�konu. Lze tedy ��ci, �e Linux/Samba na stejn�m hardware m� lep�� v�kon ne� NT server. Zaj�mav� jsou n�sleduj�c� odkazy s grafy v�konu:

graf datov�ho pr�toku
graf doby odpov�di


NetBIOS a WINS

NetBIOS (Network Basic Input/Output System) poch�z� od firmy IBM, kter� ho vymyslela v roce 1985 jako API (application programming interface) pro pr�ci ve vlastn�ch s�t�ch, kter� poskytovalo z�kladn� funkce na propojen� aplikac� a sd�len� dat s ostatn�mi stanicemi. Je�t� t�ho� roku IBM vydalo n�sledovn�ka NetBEUI (NetBIOS Extended User Interface), kter� umo��oval 15 p�smen� n�zvy a a� (255) uzl� na s�ti.

Proto�e TCP/IP pou��v� k ozna�ov�n� stroj� ��seln� adresy a NetBIOS jenom jm�na, vznikly dokumenty RFC 1000 a RFC 1002, kter� popisuj�, jak by m�l NetBIOS pracovat na TCP/UDP s�t�ch. Tyto dokumenty popisuj� v�echny implementace, v�etn� Samby a nativn�ho protokolu Windows.

WINS (Windows Internet Name Service) je implementace NetBIOS nameserveru od firmy Microsoft. Jako takov� m� stejn� charakteristiky jako NetBIOS. Je jednoduch�, tak�e lze m�t pouze jednoduch� n�zvy skupin a po��ta��. Jakmile se WINS klient p�ipoj� k s�ti, ohl�s� se pods�ti UDP datagramem na portu 137 a je mu p�id�lena IP adresa. Vysl�n� datagramu opakuje ka�d�ch 12 minut. Server tyto datagramy odchyt�v� a aktualizuje sv� tabulky. Aktivn�mu serveru se ��k� prim�rn� WINS server. Lze nainstalovat i sekund�rn� WINS server, kter� v p��pad� nedostupnosti serveru primarn�ho p�ebere jeho roli. To, kter� WINS server bude prim�rn� a kter� sekund�rn� je statick� informace a je pot�eba ji nastavit p��mo na pracovn�ch stanic�ch. Prim�rn� a sekund�rn� server synchronizuj� z�znamy periodicky. Samba m��e b�t prim�rn�m WINS serverem, ale ne sekund�rn�m.


Dal�� ��sti bal�ku Samba

Krom� ji� zm�n�n�ch d�mon� obsahuje bal�k Samba je�t� n�sleduj�c� programy:

make_smbcodepage - vytv��� defini�n� soubory SMB k�dov�ch str�nek pro smbd server.
nmblookup - umo��uje dotazy na NetBIOS jm�na p�es TCP/IP s��.
smbclient - klinet podobn� oby�ejn�mu ftp klientovi. Umo��uje p�ipojovat se ke sd�len�m zdroj�m.
smbmount - p�ipojuje Linuxov� SMB filesystem. Pracuje pouze pod Linuxem a smbfs mus� b�t podporov�n j�drem.
smbpasswd - m� stejnou funkci jako b�n� passwd program, udr�uje odd�lenou datab�zi hesel pou��van�ch Sambou.
smbstatus - program vypisuje aktu�ln� p�ipojen� a stav Samba serveru.
smbtar - z�lohuje data ze sd�len�ch disk�, m� podobnou syntaxi jako Unixov� tar.
smbumount - smbfs umount pro b�n� u�ivatele. Pracuje jako suid root.
swat - Samba Web Administration Tool - umo��uje konfigurovat Sambu p�es webov� prohl��e�.
testparm - program na kontrolu syntaxe konfigura�n�ho souboru (smb.conf).
testprns - program pro kontrolu tisk�ren v souboru printcap.


Instalace

Nejprve Sambu st�hneme z ofici�ln�ch str�nek projektu (www.samba.org), pot� n�sleduje rozbalen�. Aktu�ln� verze je 3.0.0.:

 # wget http://samba.kn.vutbr.cz/samba/ftp/samba-3.0.0.tar.gz
 # tar xzf samba-3.0.0.tar.gz
 # cd samba-3.0.0/source
Nyn� p�ejdeme ke kompilaci ze zdrojov�ch soubor� obvykl�m zp�sobem:
 # ./configure [parametry]
 # make 
 # make install
Dostupn� parametry se z�skaj� parametrem --help. Za zm�nku stoj� n�sleduj�c�:
 --with-ssl
 --with-pam
 --with-ldap
 --with-quotas

 --with-configdir=/etc/samba           adres�� pro konfigura�n� soubory
 --enable-cups                         zapne podporu tisku pomoc� Common Unix Printing System
 --with-krb5=base-dir                  podpora Kerberos autentifikace
 --with-acl-support                    podpora Access Control Lists pro podrobn�j�� nastavov�n�
                                       p��stupov�ch pr�v(je nutn� podpora ACL na souborov�m syst�mu)
Spole�n� se Sambou se nainstaluje tak� SWAT (Samba WEB administration tool).


Konfigurace

Konfigura�n� soubor je obvykle v adres��i /etc/samba (linux) nebo /usr/local/etc (FreeBSD). N�sleduj� uk�zky konfigurace:

internacionalizace

Proto�e UNIXov� syst�my pou��vaji znakovou sadu ISO8859-2(p��padn� UTF-8) narozd�l od Windows, kter� pou��vaj� WIN-1250, je t�eba zajistit spr�vn� ukl�d�n� jmen na disc�ch. Slou�� k tomu konfigura�n� volby client code page a character set:

Samba m� dokonce podporu pro p�eklad asijsk�ch a japonsk�ch jazyk� na norm�ln� znaky.

glob�ln� nastaven�

  [global]

  ## z�kladn� nastaven� serveru 

  workgroup = PATRO7                      # NT-Domain-Name nebo Workgroup-Name
  server string = Leisyho Samba server    # koment��
  hosts allow = 192.168.0. 127.0.0.1      # omezen� p��stupu
  log file = /var/log/samba/log.%m        # log zvlṻ pro ka�d� stroj
  log level = 2                           # �rove� logov�n�
  max log size = 500                      # v kB
  character set = ISO8859-2
	
  security = user                         # pro jednoduch� sd�len� pou��t 'share'
  socket options = TCP_NODELAY            # optimalizace v�konu

  interfaces = 192.168.0.3/24             # omezen� Samby dle rozhran�

  # u�ivatel� Unixu mohou namapovat sv� jm�na na jin� SMB u�ivatelsk� jm�na
  username map = /etc/samba/smbusers
		
  ## Proch�zen� s�t�

  # Local Master je stroj, kter� poskytuje proch�zen� lok�ln� subs�t�
  # pokud zde nenastav�me yes, prob�hnou na tento post volby  
  local master = yes

  # Domain Master je stroj, kter� slu�uje seznamy z jednotliv�ch
  # pods�t� a umo��uje tak proch�zen� v�ce pods�t�
  ; domain master = yes

  ## Wins

  # Samba m��e jednat jako NetBios Name Service server nebo klient
  ; wins support = yes                    # Samba jako server
  ; wins server = 192.168.1.1             # Samba jako klient

  ## Hesla a Authentizace

  encrypt passwords = yes                 # kryptov�n� hesel pro Win98 a v��
  unix password sync = yes                # synchronizovat unixov� hesla s hesly Samby
  ; pam password change = yes             # unixov� hesla m�nit pomoc� PAM

  ## Domain Control

  ; domain logons = yes                   # Samba jako Primary Domain Controller
  ; logon script = %m.bat                 # logovac� skripty zvlṻ pro jednotliv� stroje
  ; logon script = %U.bat                 # logovac� skripty zvlṻ pro jednotliv� u�ivatele

  ## tisk

  load printers = yes                     # automaticky na�te p�i startu tisk�rny
  ; printing = bsd                        # tiskov� subsyst�m: bsd, sysv, plp, lprng, aix, hpux, qnx
  ; printer admin = root, +ntadmin        # u�ivatel� a skupiny administruj�c� tisk�rny

  ## Winbind(umo��uje u�ivatel�m Windows NT Domain logov�n� na unixov� stroj)

  ; winbind uid = 50000-65000             # uid rezervovan� pro WinNT u�ivatele
  ; winbind gid = 50000-65000             # gid rezervovan� pro WinNT u�ivatele
  ; winbind template homedir = /home/%D/%U  # home adres��e WinNT u�ivatel�
  ; winbind template shell = /bin/sh      # shell WinNT u�ivatel�
  

nastaven� sd�len�ch prost�edk�

Ka�d� sd�len� prost�edek m� v smb.conf vlastn� sekci. Jedinou v�jimku tvo�� sekce [homes] a [printers], kter� zastupuj� skupiny sd�len�ch prost�edk�.

  [homes]
  comment = Home Directories
  browseable = yes
  writable = yes
  valid users = %S
  create mode = 0664
  directory mode = 0775

  # pomoc� sekce printers m��eme nastavit sd�len� v�ech tisk�ren bez nutnosti uv�d�t zde ka�dou z nich
										   
  [printers]
  comment = All Printers
  path = /var/spool/samba
  browseable = no
  # Set public = yes to allow user 'guest account' to print
  guest ok = no
  writable = no
  printable = yes

  # p��klad adres��e pro do�asn� soubory

  [tmp]
  comment = Temporary files
  path = /tmp
  read only = no
  public = yes

  # tisk�rna p��stupn� jen n�kter�m u�ivatel�m
	
  [HPlaser]
  comment = HP LaserJet
  valid users = root, user
  path = /homes/laser
  printer = laser
  public = no
  writable = no
  printable = yes

  # nasd�len� disku Windows pro u�ivatele guest
	
  [deimos]
  comment = R.I.P. Tudle sou mrtvy WINDOZE(pristupne pres guest uzivatele)
  path = /mnt/deimos/
  public = no
  available = yes
  browseable = yes
  writeable = no
  guest ok = yes
  username = guest
  


Testov�n� a spou�t�n� Samby

Zda b�� na po��ta�i Samba server ozkou��me p��kazem smbclient -L localhost. Kompletn� p�ehled mo�n�ch parametr� z�sk�me vyps�n�m tohoto p��kazu bez parametr�.

Spou�t�n� prov�d�me ru�n� superu�ivatelem pomoc� t�chto p��kaz�:

# /usr/local/samba/bin/smbd -D
# /usr/local/samba/bin/nmbd -D


Odkazy

www.samba.org
SMB howto
O'Reilly: Using Samba
http://whatis.techtarget.com/
The Requests for Comments (RFC) documents
Understanding the Network Neighborhood