Samba

Daniel Bardyn, xbardyn@fi.muni.cz


Obsah


Co je Samba

Samba je balik programu, ktery implementuje SMB (Server Message Block) protokol na unixovych stanicich. O tomto protokolu se nekdy take mluvi jako o CIFS (Common Internet File System), LanManager nebo take NetBIOS protokol.

Instalace

Potrebny balik je soucasti instalace RedHat Linuxu. Jinak nejnovejsi verzi si muzete stahnou zde , stejne jako dasli utilitky souvisejici se Sambou.

Komponenty Samby

Jak jsem se jiz zminil, Samba se sklada z nekolika casti. Nyni tedy nasleduje strucny popis nekterych z nich:
 
  • smbd - je daemon, ktery obsluhuje SMB clienty jako jsou MS Windows, LanManager nebo unixovy smbclient
  • nmbd - je daemon, ktery implementuje NetBIOS nameserver a stara se take o prochazeni sdilenymi adresari
  • smbclient - je jednoduchy klient a'la ftp, ktery umoznuje pripojeni k SMB serverum
  • testparm - tato utilitka umoznuje otestovani konfiguracniho souboru smb.conf
  • smbstatus - vypise seznam pripojeni k vasemu SMB serveru
  • smbpasswd - umoznuje zmenit zakodovane SMB hesla na Samba serveru a Windows NT(tm)
  • nmblookup, make_smbcodepage

  • Podrobnejsi informace samozrejme najdete v manovych strankach. (man samba, man smbd, ....)


    Konfigurace

    Konfigurace Samby je ulozena v souboru smb.conf, ktery je v drtive vetsine pripadu ulozen v adresari /etc. Samozrejme, je mozne mit konfiguraci v jinem souboru.
    Dale je mozne definovat v souboru '/etc/smbpasswd' uzivatelske ucty a hesla, ktere mohou byt pouzity pro pristup ke sdilenym datum. Detaily o tomto souboru lze najit jak jinak nez v manovych strankach (man smbpasswd);

    Format souboru smb.conf

    Tento soubor se sklada z konfiguracnich casti a parametru. Jednotlive casti zacinaji nazvem v hranatych zavorkach a konci  na zacatku dalsi casti. Parametry jsou ve tvaru 'nazev = hodnota'. V nazvech jednotlivych casti a parametru se nerozlisuji mala a velka pismena. Vsechny radky zacinajici znakem ';' nebo '#' jsou ignorovany, stejne jako radky prazdne.

    Kazda cast (krome casti [global])popisuje sdilenou polozku. Jmeno casti je jmenem sdilene polozky a parametry v teto castini obsazene popisuji atributy sdileni. Dale jsou zde tri pecialni casti, a to [global], [homes] and [printers].


    Cast [global]

    V teto casti se nastavuje bezpecnostni strategie,  sitove prvky, konverze  kodovani nazvu souboru , sprava browse-listu a vubec vse, co se tyka serveru jako celku. Do samby se da zakompilovat i SSL podpora, jejiz nastaveni se taky pisi do teto casti.

    Strucny popis nekterych parametru:

    auto services
    je seznam sdilenych polozek, ktere se maji automaticky pridat do browse-listu.
    Priklad: auto services = obrazky dokumenty
    include
    umoznuje zahrnout v konfiguraci dalsi soubor
    local master
    pokud je povolen, pak se  nmbd pokusi stat master browserem na lokalni podsiti
    Priklad: local master = yes
             local master = no
    netbios name
    zde se nastavuje jmeno, pod kterym bude server vystupovat v NetBIOSu
    Default: netbios name = DNS jmeno stroje
    Priklad: netbios name = MYNAME
    root directory
    server provede po startu 'chroot()' do tohot adresare
    Priklad: root directory = /home/samba
    security
    toto je zakladni nastaveni bezpecnostni politiky serveru
    Moznosti: user, share, server domain
    Default: security = user
    smb passwd file
    soubor, ktery obsahuje zakodovane smb-hesla
    Default: smb passwd file = <zakompilovano v serveru>
    socket options
    zde jsou nastaveni soketu, ktera se maji pouzit pri komunikacis klientem (detaily viz. 'man setsockopt')
    wins server
    adresa WINS serveru, u ktereho se ma server registrovat


    Podrobnosti viz. 'man smb.conf'.



    Konfigurace sdilenych polozek

    Strucny popis nekterych parametru:

    path
    cesta ke sdilene polozce
    Priklad: path = /arch/doc
    browseable
    tady se nastavuje, zda ma byt sdilena polozka viditelna v browse-listu
    Default: browseable = yes
    guest account
    uzivatelske jmeno, ktere se ma pouzit pri pristupu k polozkam, ktere maji nastaveno 'guest ok'
    Default: guest account = (zakompilovano do serveru, obvykle 'nobody')
    guest ok
    pokud je nastaveno na 'yes' pak k pristupu k polozce neni pozadovano heslo
    Default: guest ok = no
    writeable
    povoleni (zakazani) zapisu a zmen souboru (adresaru).
    Default: writeable = no
    read only
    povoluje (zakazuje) cteni z dane sdilene polozky.
    create mask
    nastaveni prav, ktera se maji pouzit pri vytvoreni souboru
    Default: create mask = 0744
    directory mask
    jako 'create mask', jen pro adresare.
    Default: directory mask = 0755
    hosts allow
    seznam adres, ze kterych lze pristupovat k dane sdilene polozce
    Priklad: hosts allow = stroj1, stroj2
             hosts allow = 150.203. EXCEPT 150.203.6.66

     
    hosts deny
    seznam adres, ze nelze pristupovat k dane sdilene polozce
    Priklad: hosts deny = stroj1, stroj2
             hosts allow = 150.203.4. badhost.nekde.cz


    Podrobnosti viz. 'man smb.conf'.



    Cast [homes]

    Pokud je tato cast uvedena v konfiguracnim souboru, pak server autorizovanym uzivatelum nasdili i jejich domovsky adresar.
     

    Cast [printers]

    Zde se nastavuje sdileni tiskaren.


    Spusteni serveru

    Jsou dve moznosti. Server je bud spusten jako daemon (resp. deamoni smbd, nmbd),  nebo funguje jako inetd sluzba. Pro spusteni v rezimu deamonu je v RedHatu jiz vytvoren startovaci skript. Pokud vsak chceme Sambu pouzivat jako inetd sluzbu, je potreba do souboru /etc/inetd.conf pridat dva nasledujici radky:
     
    netbios-ns      dgram   udp     wait    root    /usr/sbin/tcpd nmbd
    netbios-ssn     stream  tcp     nowait  root    /usr/sbin/tcpd smbd

    Upozornuji, ze je treba mit 'netbios-ns' a 'netbios-ssn' definovane v souboru /etc/services, coz je vsak v RedHatu prednastaveno ihned po instalaci.


    Zdroje