Archivio per la categoria ‘samba’

Post

Server membri di dominio

In samba on gennaio 26, 2009 di poyblog Messo il tag: , ,

Un server linux, connesso ad un domino WINDOWS (il cui controllore di dominio è un Windows SERVER), è in grado di partecipare al dominio come un membro dello stesso.

Aggiungere una nuova macchina ad un dominio è come aggiungere un nuovo utente, la cosa interessante è che prima in istanza tale macchina o utente deve essere creata sul controllore di dominio.

Samba 3.0 e Windows NT domain 4.0 usano il meccanismo di RPC  (Remote procedure Call) per comunicare. In particolare tramite questo canale i due server possono traferirsi informazioni sicure, permettendo al controllore di dominio windows di accettare la richiesta di aggiuntaa dominio di una nuova macchina proveniente dal server membro di dominio samba.

Ecco di seguito cosa accade in teoria quando un utente di dominio sul client FOX si connette ad un file server (Samba, lo chiameremo FSS) membro del dominio mantenuto da un controllore Windows (lo chiameremo CDW):

  • Il client FOX si connette a FSS
  • FSS inoltra al CDW le credenziali di Fox
  • Una volta che CDW ha riconosciuto le credenziali di FOX, comunica al server FSS che può accettare la richiesta di FOX
  • FSS fornisce la condivisione a FOX

Nel caso di autenticazione Kerberos, il server membro di dominio non deve interrogare il controllore, ma è sufficiente che decifri il ticket inviatogli dal client e verificare che:

  1. sia ancora valido
  2. sia stato validato dal Server Controllore di Dominio

Samba supporta due metodi per partecipare ad un dominio come membro, tale operazione viene effettuata dalla voce in smb.conf:

  1. security = domain
  2. security = ads

La differenza fra le due voci è che la seconda supporta l’autenticazioe Kerberos, LDAP e AD (Active Directory)

Una cosa molto importante da controllare quando si utilizza il secondo metodo è sincronizzare i tempi di sistema fra il controllore e il membro di dominio, ovviamente per la validità temporale dei ticket.

Come già accennato nei vecchi articoli, ogni utente che accede a samba deve possedere un utente locale (uid e gid di riferimento). Questo vale sia nel caso di autenticazione locale che di autenticazione validata da un controllore di dominio. Questo comporta numerose ripetizioni di credenziali nel caso in cui esista un controllore di dominio e uno o più membri di dominio. In questo caso co viene in aiuto winbindd, che è in grado di generare delle mappe uid e gid che si svincolano completamente dal sistema di account unix.

Post

Client Unix

In samba on gennaio 26, 2009 di poyblog Messo il tag: ,

In questa sezione scorrerò velocemente le caratteristiche del filesystem SMB/CIFS

Innanzitutto il supporto per tale filesystem è compreso in tutti i kernel 2.6, e nei più aggiornati fra i 2.4.

SMB/CIFS, non è altro che l’aggiornamento di SMBFS, ricordo però, che sebbene SMBFS è ancora presente in quasi tutte le distribuzioni e viene spesse volte preinstallato, è consigliabile utilizzare CIFS, dato che SMBFS non è più mantenuto e aggiornato.

SMB/CIFS può essere utilizzato per montare su macchine linux, unix e MacOSx le condivisioni samba, ecco la sintassi corretta:

mount -t cifs //server_name/share mount_point [-o optios]

La voce //server_name/share non è altro che il percorso della risora di rete, mount_point e il punto di mount locale.

L’opzione -o permette di specificare:

  • user=nome_utente
  • dom=nome_dominio
  • pass=password
  • cred=nome_file (nome del file che contiene le credenziali di autenticazione)
  • ip=server_ip_address
  • uid=uid_utente_locale
  • gid=gid_utente_locale
  • file_mode=permessi_sui_file (0644)
  • dir_mode=permessi_sulle_directory (0775)

E’ possibile inserire lo script cifs in fstab, per permettere il mount automatico delle cartelle all’avvio del pc. Il vantaggio di tale configurazione è che per l’utente finale lavorare sul cartelle locali o remote ha lo stesso effetto.

smbclient è uno strumento che permette l’accesso ftp-like ad un server samba. Può essere utile sfruttare questo strumento per effettuare dei backup in rete.

Post

Controllori di dominio

In samba on gennaio 15, 2009 di poyblog Messo il tag: ,

Una delle caratteristiche peculiari dei controllori di dominio è quella di eliminare la ridondanza delle credenziali di autenticazione, infatti si occupano solo tali controllori della procedura di autenticazione.


Il vantaggio indubbio è che i terminali coinvolti nella autenticazione non devono mantenere un set di credenziali di rete, ma delegano tutto al server controllore di dominio.


Lo svantaggio è che se cade il controllore di dominio, nessuna macchina è in grado di visualizzare le risorse di rete.


In questo articolo evidenzierò alcuni dei passi principali da intraprendere per configurare samba e rendere un server Linux un PDC (Primary Domain Controller).


Samba 3.0 è in grado di replicare le funzionalità di un server Windows NT 4.0 su un server Linux, non è in grado però di implementare il protocollo di replicazione SAM (System Account Manager), ed in sostanza non è in grado di convivere con un altro DC Windows nel medesimo sistema.

Continua a leggere »

Post

Risoluzione dei nomi e navigazione in rete

In samba on gennaio 5, 2009 di poyblog Messo il tag: ,

La risoluzione dei nomi è un’operazione critica, dato che viene utilizzata per scovare i server che forniscono le condivisioni di file e stampanti.

Ecco subito una precisazione:

  1. I sistemi unix in origine erano pensati per essere utilizzati in piccoli gruppi, ben mantenuti e sempre disponibili, basati su un indirizzamento statico
  2. I sistemi windows invece sono stati sviluppati per lavorare in sistemi di pari, senza strutture gerarchiche.

Le reti samba sono invece dinamiche, i pc possono lasciare e riallacciarsi alla rete in continuazione, spesso senza avvisare.

La risoluzione dei nomi non è altro che il processo che permette di associare ad un indirizzo IP un nome umanamente comprensibile.  I sistemi Windows utilizzano una combinazione di questa serie di protocolli quando devono risolvere un nome:

  • Cercare il nome nella cache, per vedere se recentemente è stato contattato il pc ricercato
  • Interrogare un server DNS
  • Utilizzare il file hosts
  • utilizzate il file lmhosts
  • utilizzare il broadcast (in questo caso viene inviata una richiesta a tutte le unità che compongono la rete)

I sever dns sono molto in voga in questo periodo, e sono dei sistemi in grado di risolvere indirizzi IP in nomi. Un client in questo caso deve solo interrogare il server DNS ed ottenere l’ip desiderato.

Distinguiamo subito fra wins client e wins server, il primo fornisce solo il proprio nome associandolo all’indirizzo ip assegnato; il secondo è in grado di rispondere alle richieste del primo, fornendo l’ip di un sistema terzo dato il nome. Il server samba può fare le veci di un wins server impostando la direttiva wins support = yes . Samba può anche essere istruito per utilizzare un wins server specifico con la voce wins server = ip

La navigazione di rete è stata introdotta da Microsoft per facilitare gli utenti nella ricerca delle risorse condivise in rete. Tutto ciò è reso possibile da un pc, denominato Local Master Browser LMB che detiene una lista di sistemi attualmente disponibili in rete. Nel caso della presenza di un dominio o di più domini, il Primary Domain Controller PDC, diviene anche Domain Master Browser DMB, in grado di legare due sottoreti diverse, permettendo l’interazione fra LMB di reti diverse.

Quando non c’è nessun LMB in una rete viene utilizzato un procedimento di elezione, che alla fine determina quale dispositivo diventerà LMB. In particolare ongi server che fa parte di una rete, annuncia la propria presenza permettendo ai sistemi del gruppo di accedere alla proprie condivisioni grazie al LMB.

Samba può partecipare all’elezione del Local Master Browser, impostando i valori salienti del processo di ‘elezione:

  • local master
  • os level
  • preferred master

Samba può anche assumere il compito di Domain Master Browser. Questo processo non è automatico grazie ad una elezione, ma deve essere forzato dall’amministratore di rete con la direttiva:

domain master = yes

Tre regole da ricordare quando si sta creando un dominio o un gruppo di lavoro che spazia su più sottoreti:

  1. deve essere presente in ogni sottorete un sistema samba o windows NT in grado di assumere il ruolo di LMB
  2. deve esistere un PDC Windows o un server Samba che agisca come DMB
  3. deve esistere almeno un WINS server all’nterno della rete globale che possa essere sfruttato per la risoluzione dei nomi

Post

Stampare con samba

In samba on gennaio 2, 2009 di poyblog Messo il tag:

Questo capitolo si concentra sui passi necessari per aggiungere i servizi di stampa al file di configurazione di samba.

In verità samba non è un sistema di stampa, ma un sistema di spooling. Sostanzialmente il client apre il file di spool sul server, scrive tutto ciò che deve essere stampato; fatto ciò chiude il file indicandolo come print job pronto per essere lanciato. Ovviamente l’utente di rete deve essere in grado di scrivere all’interno del file di spool, affinché il job possa essere inviato alla stampante.

CUPS è l’unico sistema di stampa attualmente supportato direttamente da samba, questo significa che per comunicare con la stampante non è necessario utilizzare altri programmi, ma è sufficiente solo samba e le librerie CUPS in esso integrate.

Perchè una stampante possa essere raggiungibile ed utilizzabile tramite samba sono necessari 4 parametri:

  • Il nome della stampante
  • Il nome della condivisione
  • Il tipo di sistema di stampa supportato dal sistema operativo (bsd, CUPS, etc..)
  • La directory locale sul server dove possono essere depositati i jobs (tale directory deve essere accessibile in modo totale chmod 1777)

In sostanza le condivisioni delle stampanti e dei file sono molto simili, quindi le direttive valide per i file e le directory sono valide anche per le condivisioni relative alle stampanti.

Post

Dettagli sulle condivisioni

In samba on dicembre 30, 2008 di poyblog Messo il tag: , ,

In samba è possibile trovare dei nomi speciali relativi a condivisioni. Per esempio la condivisione [IPC$], è fornita da tutti i server CIFS, quindi non solo samba, ed è utilizzata per certe operazioni di rete:

  • la gestione dell’elenco di file
  • la gestione delle stampanti condivise.

Tutte quelle condivisioni definite all’interno del file di configurazione smb.conf che terminano con $, non sono visibili agli utenti windows che sfruttano explorer; ecco un elenco delle più usate:

  • C$, il contenuto completo del disco c
  • ADMIN$, la SystemRoot, ovvero la directory di sistema di windows (Windows XP c:\windows\system32)
  • PRINT$, repository per i driver delle stampanti

Principali differenze tra un filesystem Windows FAT o NTFS e le tipologie di filesystem ospitate  in server Unix:

  • caratteri validi per i nomi dei file
  • lunghezza dei nomi dei file
  • sensibilità al maiuscolo e minuscolo
  • file locking a caching
  • permessi e attributi

La gestione dei nomi è un concetto poco banale, che rappresenta il processo di trasformazione dei nomi di file e cartelle perchè siamo comprensibili ai client. La gestione dei nomi deve considerare vari parametri coma la lunghezza massima di un nome file, la sensibilità alla lettera maiuscola o meno.

Una nota importante, i sistemi linux e unix hanno sempre sofferto cartelle che contengono un numero elevato di file, combinare questa caratteristica con dei controlli aggiuntivi sulla possibilità di non considerare la sensibilità alla lettera maiuscola o minuscola renderebbe la navigazione e l’accesso ai file su server molto lenta.

E’ bene considerare come trattare i link, nessuno vorrebbe che si possa inserire un link da una cartella condivisa al file /etc/passwd . Di default samba lascia la possibilità di inserire link a cartelle esterne non facenti parte del novero delle condivise. Questo comportamento lo si può bloccare con la direttiva wide links = no , l’unico problema è che inserendo tale direttiva il demone smbd deve controllare ogni accesso ad un file condiviso per verificare se è un link oppure no.

E’ possibile nascondere i file, impostando la direttiva hide file. In più tutti i file che cominciano con il . non vengono presentati in fase di condivisione. Ricordo che nascondere un file tramite samba non significa impostare l’attributo hidden dei filesystem windows, ma significa che tali file non vengono proprio condivisi.

La gestione dei lock è una delle motivazioni per cui ho scelto di approfondire Samba. Windows e Linux gestiscono in modo differente il lock dei file. In particolare windows blocca a livello di sistema operativo l’apertura contemporanea dei file, mentre sistemi linux-unix demandano all’applicativo esecutivo . Samba lascia la possibilità di gestire delle cartelle in sola lettura, ma per quelle accessibili in scrittura, viene lasciato al sistema operativo client  in questione l’applicazione dei lock ai file accessi in lettura.

Parlando di permission, samba deve cercare di far interagire il modulo di gestione delle permission Linux-Unix con il sistema ACL di windows. Le direttive create directory e mask servono per forzare i permssi linux a cartelle condivise.

Il problema è che il sistema ACL è molto più ricco di attributi rispetto al classico sistema ottale linux-unix. La tendenza è considerare che il supporto per la lettura, scrittura e accesso completo sia sufficiente per la maggior parte delle esigenze

Microsoft Distributed File Sytem è la capacità di sistemi Microsoft di raggiungere un pc in rete passando attraverso un terzo host. Samba è in grado di emulare tale comportamento grazie alla direttiva host msdfs.

Come ultimo argomento di questo capitolo perlerò di VFS. Virtual File System . Il demon smbd interagisce con il filesystem sottostante tramite il sopracitato VFS. In particolare con questa struttura è possibile gestire:

  • il cestino di rete
  • un metodo per ricordare il log di ogni utente su una singola risorsa.

Post

File di configurazione smb.conf

In samba on dicembre 2, 2008 di poyblog Messo il tag: ,

Il file di configurazione, smb.conf solitamente si trova in /etc/samba/smb.conf, ed è suddiviso in sezioni, ognuna delle quali specifica una condivisione.

Ci sono due tipi di parametri, globali e servizi o condivisione. I parametri globali stanno nella sezione global e si applicano al comportamento del server stesso e non alle condivisioni.

I servizi o condivisioni, possono essere specificati nella sezione global (ed hanno validità per tutte le altre sezioni) o nella specifica sezione.

I vecchi sistemi operativi windows (famiglia 9x) non supportano i nomi di cartelle condivise maggiori di 12 caratteri.

Una volta cambiato il contenuto del file smb.conf quando il server samba applica le modifiche? La risposta non è banale. Nel caso in cui si cambino il nome del server o i parametri di rete, è necessario riavviare il servizio smbd. Per tutti gli altri parametri valgono le seguenti considerazioni:

  • Quando il server samba riceve una nuova connessione , il demone smbd crea un processo figlio che legge il file di configurazione, e quindi anche le modifiche apportate

  • Una volta avviati i servizi samba leggono il file di configurazione ogni tre minuti

Buona pratica quando si cambia il file di configurazione è testarlo da errori di sintassi, grazie a testparm.

Per non rendere visibile ai servizi samba il file di configurazione in fase di aggiornamento è bene lavorare su un file di configurazione diverso da quello operativo e cambiarlo solo dopo che si è sicuri della sintassi del file aggiornato.

Attenzione se esiste una cartella home ed una stampante con il medesimo nome, samba visualizzerà sempre e solo la cartella home, dato che queste hanno precedenza sulle stampanti.

Una condivisione si basa su un percorso esistente, e di default è read-only. Se l’utente connesso non ha i permessi per vedere la cartella condivisa, viene generato un errore di rete.

Di default è meglio tenere il file di log a livello 0 per poi innalzarlo fino al livello 3 per verificare gli errori

Post

Configurare client Windows

In samba on novembre 30, 2008 di poyblog Messo il tag: ,

La filosofia principale di samba è:

E’ meglio insegnare ad un server come comunicare con i client che lasciare che siano i client a imparare.

Per una corretta configurazione di una rete LAN è bene tenere in considerazione che è possibile assegnare solo alcuni range di indirizzi:

10.0.0.1 ↔ 10.255.255.254

172.16.0.1 ↔ 172.31.255.254

192.168.0.1 ↔ 192.168.255.254

Tutti gli altri sono globali e non utilizzabili nelle reti interne.

E’ necessario il supporto NETBios sul protocollo TCP/IP quando:

  • Si vuole accedere a pc con versioni di windows precedenti a windows 2000

  • Si vuole utilizzare Samba come controllore di dominio

  • Si vuole il supporto per la navigazione della rete

Sincronizzazione account locale windows con l’account unix del server Samba è possibile e consigliato in modo tale da dove affrontare solo una fase di autenticazione

Windwos xp Home non può entrare a far parte di un dominio, Windows Xp Professional sì. Windows Vista Home, in tutte le sue versioni, non può far parte di un dominio, mentre lo possono fare Windows Vista Business e Ultimate.

Post

Installare Samba

In samba on novembre 28, 2008 di poyblog Messo il tag: ,

In questo articolo, descriverò la procedura di installazione di samba.

Ormai quasi tutte le distribuzioni linux hanno dei pacchetti precompilati già pronti per l’installazione:

  • Ubuntu: apt-get install samba
  • Fedora: yum installl samba

Ovviamente su molti sistemi si può avere samba già installato di default. Per verificare se il demone è installato è sufficiente provare a cercare il demone smbd, se esiste ed è avviabile abbiamo un’installazione funzionante di samba, in caso contrario vale la pena reinstallare.

Informo i lettori che questo articolo non è completo, o meglio non è una guida esaustiva sull’installazione di samba, ma riguarda solo alcuni aspetti dell’installazione e della configurazione che mi sono sembrati degni di nota.

Comando utile per verificare dove è il file di configurazione smb.conf è:

smbd -b | grep CONFIGFILE

Samba può essere installato con il supporto per le ACL (Access Control List)

SWAT, è un tool web-based che aiuta l’utente nella fase di configurazione di samba. Tale servizio risponde sulla porta 901.

Creazione dell’utente e della password samba (le password sono cifrate):

smbpasswd -a username

Un comando utile per testare il file di configurazione è testparm:

tesparm -s path/to/smb.conf | more

Per testare se i demoni samba sono in esecuzione è utile il comando:

smbclient -L localhost -N

Iscriviti

Get every new post delivered to your Inbox.