Guida su Samba che sorpresa, mitica suite per Linux

Samba per Linux e i suoi servizi

Introduzione su cosa è Samba e quali servizi offre

Samba è un insieme di strumenti software utilizzati in tutti i sistemi Unix per poter condividere e usare risorse condivise da altri host in un piccola rete o LAN (Local Area Network ) .

Samba è costantemente aggiornata da una organizzazione composta da diverse società ( in Italia se ne occupa la Xsec ) e si è arrivati alla attuale versione 3.0.1 sfornata il 15 Dicembre 2003 e sarà la versione spiegata in questo breve articolo.

L’insieme di piccoli strumenti creano l’interfaccia di configurazione e utilizzazione del protocollo SMB ( Server Message Block ) analogo del protocollo CIFS ( Common Internet File System ) definito principalmente per piattaforme Windows e usato fin da Windows 3.11 . Grazie a questo protocollo ( il quale verrà spiegato più ampiamente nel capitolo successivo ) è possibile condividere stampanti , file , creare gruppi di utenti per l’utilizzo di risorse o servizi resi disponibili per la LAN.

Samba quindi è lo strumento per condividere risorse da un sistema Unix o utilizzare risorse da altri host in una LAN ma anche per creare un server WINS ( Windows Internet Name Service ) oppure un server PDC ( Primary Domain Control ) cioè il server di un dominio con accesso centralizzato, dove i crediti per ogni utente del gruppo per le risorse condivise, sono verificati dal server PDC e non dalla singola macchina da cui l’utente accede alla rete.

Concetti definiti per i sistemi Windows , come Workgroup, Dominio Windows o WINS e tanti altri possono essere implementati da Samba nei sistemi Unix .

Grazie a questa suite di software quindi è possibile anche scambiarsi file o messaggi tra host all’interno della stessa LAN tra due macchine con piattaforma Unix utilizzando protocolli definiti per piattaforme Windows .

Dopo questa breve infarinatura del discorso passiamo a definire i protocolli usati e la definizione di concetti “ windowssiani “.

Chiarezza sui protocolli usati e concetti base

Il protocollo SMB utilizzato da Samba agisce al livello applicativo della scala ISO / OSI definita per la classificazione dei protocolli di rete la quale non verrà trattata in questo articolo. L’analogo di SMB è CIFS, protocollo sviluppato da Microsoft per la condivisione di file tra host all’interno di una LAN . SMB da qualcuno è considerato la versione libera e gratuita di CIFS . Entrambi comunque definiscono le regole per la condivisione di directory e file fra computer e utilizzo di stampanti da computer diversi nella stessa LAN oltre che scambio di messaggi. Si basa su una struttura client – server ( richiedente – servente ) e una logica di tipo request – response ( richiesta – risposta ) . A sua volta SMB o CIFS si appoggiano sul protocollo NetBIOS nel livello inferiore della scala ISO / OSI ( livello sessione ) diventato NetBEUI poi col tempo.

NetBIOS ( Network Basic Input Output System ) nato nel 1983 come API ( interfaccia di programmazione ) serviva per permettere lo scambio di messaggi in una LAN basandosi su nomi logici e non fisici . Nel 1985 nacque NetBEUI ( NetBIOS Extended User Interface ) che permetteva di appoggiarsi ad un data-link di tipo Token Ring o Ethernet .

Le piattaforme Windows utilizzano SMB con NetBEUI , IPX/SPX e TCP / IP .

Le piattaforme Unix e quindi Samba, utilizzano SMB NBT ( NetBIOS e TCP / IP ). In questo caso vengo definite le specifiche nelle RFC 1001 e RFC 1002 .

Il protocollo NetBIOS definisce quindi per ogni macchina che accede alla rete un nome logico e un nome di gruppo a cui appartiene la macchina chiamato Workgroup (gruppo di lavoro ). Il nome NetBIOS sarà poi quello utilizzato da SMB . Ogni macchina quando accede alla rete e al Workgroup deve registrarsi ( annunciarsi ) e sapere chi c’è nella rete . Per far questo manda una serie di messaggi broadcast ( a tutte le macchine ) tramite il protocollo NMP ( Name Management Protocol ) . Nella rete esisterà una macchina chiamata NBNS ( NetBIOS Name Server ) il quale fornirà la lista delle macchine presenti nella LAN .

In Windows questa macchina è chiamata WINS ( Windows Internet Name Service ) il quale risulta molto più efficace nelle reti molto affollate poiché identifica la rete in un insieme di nodi differenti tra loro in base ai servizi offerti i quali possono contenere a loro volta liste di macchine presenti nella rete o offrire un servizio di registrazione per altre macchine le quali a loro volta comunicheranno col WINS server.

Le estensioni proprietarie di SMB definite da Microsoft quindi sono: Dominio Windows , Browsing , Server WINS.

Il Dominio Windows è un insieme di Workgroup il cui accesso da parte degli utenti alle risorse è centralizzato in un server chiamato PDC ( Primary Domain Control ) il quale contiene il database di user e password (SAM) validi per accedere alle risorse condivise dalle singole macchine . Normalmente esiste anche un BDC ( Backup Domain Control ) che serve in caso di guasti del server PDC che causerebbe la perdita del SAM .

Il Browsing è la procedura che rende disponibile ad una nuova macchina che entra nella rete la lista di host presenti ( con nome logico e Workgroup di appartenenza ) offerta a sua volta da una macchina chiamata Local Master Browser all’interno di un Workgroup. Questa procedura per esempio viene richiesta quando si fa click su Risorse di Rete ( ammesso che si abbiano i protocolli inerenti installati sulla macchina e quindi una rete configurata esistente ) presente in qualsiasi piattaforma Windows.

Il server WINS come già spiegato è l’analogo NBNS di NetBIOS contenente le relazioni “Nome NetBIOS – IP “ .

Concludendo questo capitolo molto teorico si può dire che Samba permette di implementare:

- Server e Client per condividere e utilizzare risorse ( messaggi, files o directory , stampanti )

- Local Master Browser per un Workgroup o di un Dominio Windows

- Server WINS

In questo articolo verrà presentata una configurazione per ogni caso, si partirà con l’installazione del software.

Installazione della suite Samba

La suite di Samba è distribuita con licenza GPL e quindi scaricabile gratuitamente dalla sezione download del sito ufficiale. E’ disponibile in diversi formati: per gli utenti che usano la distribuzione Linux Debian esistono i pacchetti binari .deb, per gli utenti che usano la Red Hat esistono i file .rpm e per tutte le altre distribuzioni sono disponibili i file sorgenti. In questo capitolo verranno spiegate le tre differenti installazioni.

Per gli utenti di Debian esistono due modi differenti per installare Samba, come per qualsiasi altro software per questa distribuzione. Il primo è procurarsi i file .deb dal sito ufficiale ( cercando tra i vari formati binari ) e lanciare il comando

dpkg --install pacchetto.deb

dpkg --configure pacchetto.deb

ma poiché per installare Samba si dovranno installare tre pacchetti fondamentali più tutte le librerie necessarie , il consiglio è di avvalersi al noto strumento “apt-get” che tiene conto delle dipendenze con i pacchetti installati o non in tutto il sistema. La prima cosa da fare è cercare un mirror che renda disponibile i pacchetti Samba, e più precisamente samba-common_3.0.1-3_i386.deb, samba_3.0.1-3_i386.deb e samba-doc_3.0.1-3_all.deb. Per cercarli andare nel sito ufficiale di “apt-get” , andare nella sezione “search” digitare “samba”

e scegliere la propria architettura di processore ( normalmente un utente comune ha un processore della famiglia x86 ) . E’ un software reso disponibile da diversi siti , scegliere quello che offre la versione 3.0.1 e cliccare su “ Download as text “, compariranno le righe di testo da aggiungere al file “/etc/apt/sources.list” . Aggiunto il mirror , aggiornare la lista dei pacchetti disponibili

apt-get update

e installare i pacchetti Samba

apt-get install samba samba-common samba-doc

probabilmente una versione di Samba è già disponibile nella distribuzione Unix di base, verificabile col comando

dpkg –l | grep samba

se compariranno delle righe con “ii” come primi caratteri , allora in questo caso è consigliabile eseguire

apt-get upgrade samba samba-common samba-doc

in questo modo saranno installati i pacchetti della versione più recente disponibile.

Per gli utenti di Red Hat il procedimento è analogo a quello degli utenti Debian. La differenza è che esiste un unico file samba-3.0.1-2_rh9.i386.rpm che comprende anche tutte le librerie, trovabile dal sito ufficiale dei file .rpm oltre che tra i formati binari dal sito ufficiale di Samba, sezione download. Scaricato il file è possibile installarlo con il comando

rpm --install samba-3.0.1-2_rh9.i386.rpm

Per gli utenti che vorranno installare la suite di Samba dai sorgenti, è disponibile sul sito ufficiale il file samba-3.0.1.tar.bz2 . Dopo averlo scaricato bisogna decomprimerlo in una cartella preferita

bunzip2 –d samba-3.0.1.tar.bz2

tar –xvf samba-3.0.1.tar

verrà creata una sotto directory “samba-3.0.1” contenente sorgenti e documentazione. Per installare la suite Samba nel sistema , non c’e nessun file INSTALL da leggere, ma solo un README che spiega cosa è Samba. Come per la stragrande maggioranza dei software per Unix, eseguire la normale procedura di installazione entrando nella directory “source” e lanciare i seguenti comandi

./configure

make

make install

la procedura su un sistema con un processore lento può durare anche un ora.

L’insieme dei tool installati sono smbadduser, smbstatus, smbclient, smbumount, smbmount, testparm e i futuri demoni nmbd e smbd . Ogni tool sarà usato e spiegato quando necessario nel resto dell’articolo.

Una cosa molto importante è aver caricato nel proprio kernel il modulo smbfs , il filesystem usato da Samba per montare le directory condivise da altri sistemi all’interno della stessa LAN .

Se si pensa di non averlo installato eseguire il comando

modprobe –l | grep smbfs

per verificare se è disponibile il modulo ( se il kernel era stato compilato in modo modulare ) , se è disponibile caricarlo col comando

modprobe smbfs

in caso contrario potrebbe o già essere caricato nel kernel oppure bisognerà ricompilare il kernel e aggiungerlo nella sezione

File systems -> Network File Systems -> SMB file system support

Se esiste già una suite Samba installata nella distribuzione di base da voi usata non dovrete porvi questo problema.

Struttura del software e gestione della configurazione

La suite Samba è composta principalmente da due demoni “smbd” e “nmbd” che leggono un file di configurazione , normalmente “/etc/samba/smb.conf” e agiscono di conseguenza . Dalla versione 2.2.2 è stato aggiunto il demone “winbindd” . Esso spesso è avviato per interfacciarsi con librerie di routine da parte di server DNS o NIS per facilitare l’interfacciamento col server WINS della rete corrente. E’ molto utile nelle reti composte ma molti Workgroup interni ad un Windows Domain.

Il demone “smbd “ è quello che si occupa della gestione della sessione di comunicazione, accerta le autenticazioni necessarie per accedere alle risorse e fornisce i servizi del protocollo SMB dichiarati nel file di configurazione, per esempio una cartella condivisa o una stampante.

Il demone “nmbd ” si occupa del “Browsing” della rete quindi se attivato, l’host si comporta da Local Master Browser e gestisce l’elenco delle risorse condivise nella rete dalle altre macchine. Se configurato opportunamente può risolvere i nomi NetBIOS nella rete e quindi comportarsi come un WINS server.

Come è strutturato e come impostare il file di configurazione

Il file di configurazione è un file di testo configurabile tramite delle parole chiave. E’ strutturato in sezioni dove sono specificati i parametri che determinano il funzionamento del sistema.

E’ possibile usare le variabili di sistema e le variabili specificate da Samba. Le più usate e significative sono le seguenti:

Variabile Significato

%u nome utente corrente del sistema

%H directory personale assegnata all'utente %u

%g nome gruppo dell'utente corrente del sistema

%U utente della sessione

%G gruppo dell'utente della sessione

%D nome del Dominio Windows a cui la macchina appartiene

%S nome condivisione corrente

%v versione di Samba

%m nome NetBIOS della macchina client

%L nome NetBIOS della macchina server

%a architettura software della macchina remota

%I indirizzo IP della macchina client

%T ora e data corrente

Il file di configurazione serve per impostare le regole di comunicazione, i permessi, gli accessi, gli utenti e infine le risorse condivise, si può dire il lato server di Samba.

Il lato client è offerto da piccoli tools, comandi a riga di comando che permettono di utilizzare le risorse della rete. Spesso le variabili di Samba tornano utili per impostare i parametri di ingresso di questi tools.

Esempi di configurazione lato server

In questo capitolo si spiegheranno le principali impostazioni di Samba e si farà un esempio di condivisione di directory e di stampanti.

Per iniziare la configurazione è possibile editare il file predefinito “/etc/samba/smb.conf” oppure avvalersi del potentissimo strumento “swat” offerto dalla suite Samba dalla versione 2.0 in avanti.

Il file di configurazione è diviso in sezioni i cui nomi sono tra parentesi quadre. Ogni sezione corrisponde alla configurazione di una risorsa condivisa, tranne la sezione “[global]” in cui si impostano le informazioni che condizionano tutto il sistema, per esempio l’impostazione del nome NetBIOS oppure il Workgroup.

Lo strumento “swat” necessita di un web browser e permette di configurare Samba con una serie di form contenuti in pagine HTML che aiutano senz’altro ad avere una idea di quali parametri impostare. Inoltre questa scelta permette di configurare la macchina anche in modo remoto e quindi da un altro punto della rete . “swat” è un demone che funziona da web server sulla porta 901 , viene avviato dal processo “inetd” ma spesso non è attivo da subito per motivi di sicurezza ( per esempio in Debian ) . Per avviarlo aprire il file “/etc/inetd.conf” e cercare la scritta

#<off># swat strema tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat

togliere “#<off># “ . Per rendere effettive le modifiche e riavviare il sistema.

Aprendo un qualsiasi web browser , puntare all’indirizzo

http://localhost:901

apparirà una schermata di autenticazione, normalmente si accede come utente “root” in modo che nessun altro utente del sistema possa modificare le impostazioni di Samba.

Da qui in avanti si tratterà un esempio di server Samba con le impostazioni base di rete e la condivisione di una directory. Verrà presentata la configurazione del file di configurazione in forma testuale e le analoghe impostazioni configurate con “swat” .

Si pensi ad una piccola LAN composta solo da due computer, uno che chiameremo “LINUXBOX” con sistema operativo Linux Debian 3.0 e un altro computer “WINBOX” con sistema operativo Windows Millennium . L’esempio vale anche per un sistema operativo Windows più avanzato oppure un’altra distribuzione Linux. La macchina “LINUXBOX“ avrà come indirizzo di rete ( basandoci su una rete di tipo Ethernet ) 192.168.0.50 mentre la seconda 192.168.0.1 . L’esempio configurerà la macchina “LINUXBOX” come server WINS , Local Master Browser e condivisione della cartella “/mnt/dati/” che verrà chiamata “DATILINUX” contente dei dati generali di una stampante “StampaLinux”. La macchina “WINBOX” condividerà una stampante e una cartella “c:\dati” che verrà chiamata “DATIWINDOW”. Entrambi appartengono al Workgroup chiamato “WINZOZ” .

Da una delle due macchine aprire da browser web la pagina all’indirizzo “http://192.168.0.50:901” se attivato precedentemente comparirà una schermata con richiesta di login e di password, procedere immettendo i dati dell’utente “root” dell’host “LINUXBOX” . Avuto l’accesso si potrà notare la barra orizzontale contenente il menù di accesso alle varie pagine di configurazione che sono :

home: pagina iniziale con accesso alla documentazione ;

globals: configurazione generale ;

shares: configurazione cartelle condivise ;

printers: configurazione stampanti condivise ;

wizard: sezione aggiunta dalla versione 3.0 di Samba, specifica la configurazione della macchina a livello rete. In questa sezione si specifica se l’host appartiene ad un dominio, se l’host è il “Domain Controller” , se è il server WINS oppure nel caso della condivisione di directory si deve aggiungere la directory “home” riservata per ogni utente del sistema oppure no. Da queste impostazioni “swat” tradurrà in parametri da scrivere nel file di configurazione di Samba

status: visualizzazione dello stato dei demoni ( se attivi o no ) e connessioni fatte, in particolare computer connessi e file letti o scritti;

view: vista del file di configurazione corrispondente alle impostazioni date nelle pagine HTML di “swat”;

password: configurazione degli utenti di Samba ;

Sezione “globals”

Un esempio del file di configurazione “/etc/samba/smb.conf” può essere il seguente:

# Global parameters

[global]

workgroup = WINZOZ

netbios name = LINUXBOX

server string = Samba Sever %v ( %L )

interfaces = 192.168.0.50/255.255.255.0

security = SHARE

encrypt passwords = Yes

log level = 3

log file = /var/log/samba/%m-%U.log

max log size = 10000

socket options = TCP_NODELAY IPTOS_LOWDELAY

preferred master = True

domain master = True

wins server = LINUXBOX:192.168.0.50 WINBOX:192.168.0.1

panic action = /usr/share/samba/panic-action %d

guest ok = Yes

hosts allow = 192.168..

hosts deny = 192.168.0.12

 

La prima cosa da dire è che se si vogliono aggiungere dei commenti al file di testo è possibile digitando il carattere “ ; “ oppure “ # “ prima di ogni commento.

Analizzando le varie parole chiave ecco il loro significato:

workgroup : è il Workgroup di appartenenza del host, nell’esempio “WINZOZ” ;

netbios name : il nome NetBIOS con cui la macchina sarà riconosciuta all’interno del Workgroup, nell’esempio “LINUXBOX”;

server string : commento inerente alla macchina , in Windows è chiamata “descrizione computer” , nell’esempio si è scelto di visualizzare la versione di Samba in uso e nuovamente il nome dell’host;

interfaces : specifica le interfacce dell’host usate per connettersi alla rete, se si hanno più di una scheda di rete è possibile aggiungere più interfacce, quindi si specifica IP / MASCHERA , nell’esempio l’ip 192.168.0.50 e la maschera 255.255.255.0 ;

security : esistono quattro livelli di sicurezza “share” , “user” , “server” , “domain” . Il primo indica un livello di sicurezza con il controllo di accesso a “livello condivisione” . Non viene verificato il nome dell’utente ma Samba cerca di interpretarlo dal parametro “guest account” . Con sicurezza “user” si ha un controllo a “livello utente” . Per accedere alle risorse bisogna autentificarsi con “user” e “password” . Si dovrànno quindi creare degli utenti Samba , che dovranno coincidere con degli utenti del sistema Linux poiché se essi dovranno creare o modificare files all’interno del filesystem condiviso da Samba il sistema Linux dovrà assegnare dei diritti di accesso come per tutti gli altri files del sistema. Per creare gli utenti Samba si può utilizzare la sessione “password” di “swat” oppure usare il tool “smbpasswd”

smbpasswd –a user-sistema

dopo di che si inserirà la password. Il tool modificherà i file “/etc/samba/smbpasswd” e “/etc/samba/smbusers” . Con sicurezza “server” si avrà un accesso a “livello user” ma gli utenti saranno su un server di tipo PDC e si dovrà specificare poi il nome del server col parametro “password server” . Infine con sicurezza di tipo “domain” si ha il controllo di accesso a “livello utente” ma è il server Samba che si comporta da PDC. In questo caso si potrà aggiungere l’utente col comando “smbpasswd” seguito dalle seguenti opzioni

smbpasswd –j nome-dominio –U nome-utente%password –r nome-server

nome-dominio sarà il Workgroup specificato e nome-server il nome Net-BIOS della macchina stessa.

Nelle ultime versioni è stato aggiunto il livello di sicurezza “ADS” con controllo di accesso a “livello utente” analogo di un server di tipo PDC ma usato per interfacciarsi con sistemi operativi di tecnologia NT , come WindowsXP o Windows2000

encrypt passwords : mettendo “yes” a questo parametro, si permette la compatibilità con i sistemi più moderni ( Windows XP e Windows 2000 ) che cifrano le password di autenticazione, in questo esempio si poteva anche mettere “no” poiché non si effettua un controllo a “livello utente” ;

log level : questo parametro imposta il dettaglio del file di log, un file che annota le operazioni che avvengono durante le connessioni tra l’host e la rete. Il livello di dettaglio va da 0 ( nessun messaggio ) a 10 il massimo del dettaglio, 3 è un livello intermedio;

log file : imposta il nome del file di log, registratore di eventi. In questo esempio si differenziano i file di log in base all’utente che si collega e l’host da cui fa accesso;

max log size : imposta la lunghezza massima del file di log in kilobyte, arrivati alla grandezza massima il programma cancella gli eventi vecchi e scrive i nuovi;

socket options : è una impostazione del protocollo TCP/IP in base ai ritardi che potrebbero esserci per una rete di grandi dimensioni con centinaia di hosts. Nell’esempio riportato si usano le impostazioni “ TCP_NODELAY “ e “ IPTOS_LOWDELAY ” che va bene nella maggior parte dei casi , e cioè nelle reti con pochi hosts ( nell’esempio ce ne sono solo due ) ;

os level : indica il livello di elezione del Browser Master Location , cioè quello con priorità più alta. Più è alto il livello e più probabile è che sia Samba quello predefinito. Col valore 20 Samba ha la prevalenza sui sistemi operativi Windows standar ma non sui sistemi con teconologia NT;

preferred master : se messo a “true” cioè vero , indica che Samba è il Master Local Browsing predefinito ( dipende ovviamente anche dal “os level” ) nel Workgroup di appartenenza della macchina ;

domain master : come per i Workgroup è l’analogo Master Local Browsing nei Windows Domain, di default il valore è “auto” , nell’esempio è stato impostato a “yes” ma non influenza il funzionamento del solo Workgroup ;

wins server : questo parametro imposta Samba come server WINS e obbliga la scelta di “wins support = NO “ . La lista di “nome NetBIOS:IP” specifica le corrispondenze tra nome NetBIOS e l’ ip della macchina. In questo esempio si è preferito il server WINS su macchina Linux piuttosto che Windows ;

wins support : questo parametro è la variabile booleana che il demone “nmbd” testa per verificare se l’host è un WINS server oppure no. Essa se settata a “yes” vuol dire che l’host non è un WINS e che bisogna cercare al trove il WINS server e quindi che non c’è nessuna altra macchina nella sottorete dell’host. E’ un caso particolare trovare questo parametro uguale a “yes” è più pratico usare Samba come “WINS” e settare questo parametro uguale a “no” ;

panic action : indica l’azione da fare se un demone va in crash, nell’esempio si esegue uno script messo a disposizione da Samba che notifica l’evento ;

guest ok : questo parametro è obbligatorio se si sta usando un controllo di sicurezza a “livello condivisione” e con il parametro “guest account” ( nell’esempio impostato a “nobody” ) si indica l’ipotetico utente, ma non è un utente predefinito e quindi tutti possono accedere ;

hosts allow : indica quali hosts nella rete possono accedere alle risorse condivise , si possono tralasciare alcuni quartetti per indicare tutta una sottorete , nell’esempio possono accedere tutte macchine con ip nel range tra 192.168.0.1 e 192.168.255.255 ;

hosts deny : indica quali hosts non possono accedere alle risorse condivise. Se lo stesso ip compare sia nell’impostazione “hosts allow” che “hosts deny” prevale quest’ultimo. Nell’esempio l’hosts con ip 192.168.0.12 non può usufruire delle risorse condivise.

Dopo questa breve spiegazione va detto che i parametri configurabili sono molti ma molti di più, basta cliccare su “Advanced” per farsi un’idea. In questa breve relazione si vuole solo dare la possibilità al lettore di avere una configurazione di base.

Per salvare la configurazione in “swat” cliccare su “Commit Changes“ mentre per chi ha editato il file di testo, salvare semplicemente il file.

Sezione “shares”

Supponendo di condividere una cartella “/mnt/dati/” chiamata “DATILINUX” i parametri da aggiungere al file di configurazione saranno :

[DATILINUX]

comment = Dati condivisi da samba

path = /mnt/dati

read only = yes

guest ok = yes

browseable = yes

Come si può vedere la sezione prende il nome della risorsa che potrà essere vista dagli altri sistemi nella rete, in questo caso una cartella di file condivisa. Ecco la spiegazione dei parametri più importanti:

comment : indica la stringa di commento che viene visualizzata come informazione negli altri sistemi ;

path : indica il percorso della cartella condivisa all’interno della macchina dove è installata Samba . Nell’esempio è una cartella nella cartella “/mnt/” . Va detto vengono condivisi file e sottodirectory;

read only : specifica che la cartella è in sola lettura e non è possibile modificarne il contenuto. In modo analogo si può specificare il parametro “writable = no “ ;

guest ok : se impostato a “yes” permette l’accesso a qualsiasi utente;

browseable : se uguale a “yes” indica che si può rendere visibile la risorsa dagli altri sistemi ;

In “swat” è possibile impostare i parametri spiegati sopra entrando nella sezione [shares] . Nella textbox affianco a “Create Share” scrivere il nome della risorsa , nell’esempio “DATILINUX” e cliccare su “Create Share” . Apparirà il form da completare per impostare i parametri sopra indicati.

Per salvare le modifiche cliccare su “Commit Changes“ . Anche in questo caso i parametri sono molti e una configurazione ancora più avanzata la si può avere ciccando su “Advanced” .

Sezione “printers”

Come è facile intuire questa parta di “swat” aiuta a configurare Samba per poter condividere una stampante. Supponendo di chiamare la stampante “StampaLinux” i parametri da aggiungere al file di configurazione sono i seguenti:

[global]

printcap name = /etc/printcap

printing = sysv

[StampaLinux]

comment = Stampanti offerte da Samba

path = /var/spool

printable = Yes

browseable = Yes

Usando “swat” per creare una nuova stampante condivisa, scrivere il nome ( nell’esempio StampaLinux” ) e cliccare su “Create Printer” , in questo modo apparirà il form facilitato da compilare dei parametri principali. Ecco la spiegazione dei principali:

comment : indica la stringa di commento che viene visualizzata come informazione negli altri sistemi come descrizione della stampante condivisa;

path : indica il percorso della cartella usata per la coda di stampa, in gergo detta “spool”, dove si vanno ad accodare i dati da stampare;

printable : rende attiva la coda di stampa e cioè la memorizzazione di più lavori, processati uno alla volta;

browseable : se uguale a “yes” indica che si può rendere visibile la risorsa dagli altri sistemi ;

va detto che per rendere disponibile una risorsa per stampare bisogna aggiungere alla sezione global due direttive in più:

printcap name : indica il file di configurazione delle stampanti nel sistema dove è stata installata Samba. Nell’esempio si condividono le stampanti del sistema indipendentemente da quali e quante sono ;

printing : indica il tipo di interfaccia usata per gestire la stampante del sistema. Questo parametro dipende dal sistema operativo che si sta usando. In caso di un sistema Unix le interfacce usate possono essere “sysV” o “Cups” .

se si è editato il file bisognerà salvarlo altrimenti per salvare le modifiche su “swat” cliccare su “Commit Changes“ . Anche in questo caso i parametri sono molti e una configurazione ancora più avanzata la si può avere cliccando su “Advanced” .

Per chi è alle prime armi per configurare la propria stampante in Linux può usare un tool a riga di comando molto comodo chiamato “magicfilter” oppure “kdeprinter” per chi fosse amante della veste grafica KDE .

Sezione “status”

Finito di configurare il server Samba dopo aver editato il file di configurazione è buona norma controllare la semantica e sintassi del file tramite il comando

testparm

il piccolo tool eseguito a riga di comando controlla il file di configurazione e verifica i parametri se sono impostati con dei valori corretti, in caso contrario segnala l’errore.

In “swat” il problema di sbagliare è parzialmente evitato grazie all’interfaccia grafica ma è buona norma comunque controllare.

Ora è possibile avviare i demoni “nmbd” , “smbd” e “winbindd” . Nell’esempio trattato si avvieranno solo i primi due demoni nel seguente modo:

smbd start && nmbd start

e cioè dopo che è partito il primo avvia il secondo altrimenti no. Per verificare se i demoni sono stati avviati si può usare il comando

smbstatus

se ci sono stati errori, si potranno verificare i log impostati in fase di configurazione.

In questo modo Samba ogni volta che verrà avviata la macchina su cui è stata installata si ricorderà di avviare questi due processi. Ogni volta che si apporteranno delle modifiche per sicurezza è meglio riavviare i demoni col comando

restart smbd && restart nmbd

in ogni caso Samba si preoccupa di rileggere il file di configurazione ogni 30 secondi.

Per chi usasse “swat” nella sezione “Status” si può verificare se i singoli demoni sono attivi e le connessioni attive al momento e cioè si può vedere chi sta prelevando file dalla macchina o chi sta stampando con possibilità di troncare la connessione in questione.

Analogamente è l’interpretazione del tool “smbstatus” . Dalla versione 3.0 è possibile anche riavviare tutti i demoni con “swat” ciccando su “Restart All” .

Come utilizzare le risorse condivise dagli altri Host

Samba oltre che a permettere la condivisione di risorse permette anche l’utilizzo delle risorse messe a disposizione da altri sistemi.

Utilizzo di cartelle condivise

Nell’esempio trattato si è detto che una macchina con sistema operativo Windows condivide una cartella chiamata “DATIWINDOW” ( In questo contesto si suppone che il lettore conosca la procedura per condividere una cartella in un sistema operativo Windows ) .

Samba offre diversi modi per accedere alle risorse della rete. Il primo metodo è creare una connessione col server che mette a disposizione le risorse, come se fosse un server “ftp” , ci si collega e si download o upload files.

L’utility a disposizione è “smbclient” . Con il comando

smbclient servizio [ –U utente ]

è possibile collegarsi al server, nell’esempio trattato si potrebbe lancare il comando

smbclient //winbox/datiwindow

potrebbe essere richiesta una password o anche un nome utente dipende dalla configurazione del vostro servente. Stabilita la connessione si è entrati nella directory e per avere una idea dei comandi a disposizione basta digitare “help”.

Se non si ha idea dei servizi disponibili in rete è possibile scoprirlo digitando

smbclient –L winbox

Spesso però potrebbe risultare comodo avere in automatico una connessione con un altro sistema, per far questo è possibile “montare” le directory da altre macchine sul proprio sistema grazie allo strumento “smbmount” e “smbumount” . La sintassi è la seguente

smbmount servizio punto_montaggio [ -o username=utente%password ]

pensando di montare la cartella windowssiana in “/mnt/dati-win”

smbmount //winbox/datiwindows /mnt/dati-win –o username=guest%

il vantaggio è che ora è possibile copiare file o prelevarli come se fossero integri nel sistema. Per smontare la risorsa montata si utilizza il comando

smbumount punto_montaggio

nell’esempio trattato

smbumount /mnt/dati-win

è anche possibile montare la partizione in fase di avvio aggiungendo la seguente riga nel file “fstab”

servizio punto_montaggio smbfs “username=user%password”

nell’esempio trattato

//winbox/datiwindow /mnt/dati-win smbfs guest

Utilizzo di stampanti

Per utilizzare una stampante collegata ad un altro host, bisogna utilizzare lo strumento “smbspool” .

Esso permette di mandare un documento di testo alla stampante remota, nel seguente modo

smbspool url _nome_stampante numero_job utente titolo_stampa numero_copie file_da_stampare

per esempio nell’esempio trattato se la stampante condivisa si chiamava “StampanteWin”

smbspool smb://winbox/stampantewin 1 guest “Stampa di prova” 1 file_di_prova.txt

E’ anche possibile utilizzare una stampante remota configurando opportunamente il file di tipo “printcap” ma poiché esula dal contesto “Samba” in questo articolo tale argomento non viene trattato.

Conclusioni

Samba è una suite completa e molto funzionale, l’autore di questo articolo ha voluto porre chiarezza a quello che stava dietro ad una semplice condivisione che con un sistema operativo Windowssiano tralascia la teoria e con un semplice click condivide una cartella, tralasciando problemi di sicurezza e concetti chiave per un buon servizio, che spesso lascia a desiderare … Con la suite Samba è facile colmare problemi di sicurezza e crash vari con un po’ di studio e quindi configurando in modo corretto i vari parametri. Samba inoltre è uno dei pochi modi per condividere risorse tra sistemi Unix prendendo esempio dai sistemi Windows. L’autore pera di essere stato il più chiaro possibile.

Link

Sito ufficiale di Samba da dove ci si può iscrivere alla mailing list e trovare oltre che agli aggiornamenti, tutta la documentazione in italiano

http://samba.xsec.it

Descrizione dettagliata dei protolcolli SMB, NetBEUI e NetBIOS .

http://openskills.info/view/boxdetail.php?IDbox=686&boxtype=description

Fondamenti di reti LAN e configurazione di domini per piattaforme Windows

http://www.tuttoreti.com

Specifiche rfc1001 e rfc 1002

http://www.ietf.org/rfc/rfc1001.txt

http://www.ietf.org/rfc/rfc1002.txt

Sito ufficiale per cercare i pacchetti .deb

http://apt-get.org

Sito ufficiale per cercare i pacchetti .rpm

http://www.rpmfind.net/