Come configurare un SAMBA Server su linux

 

MINI GUIDA SU SERVER SAMBA

 

Introduzione

Samba è un insieme di strumenti per file e stampanti con computer che montano sistemi operativi Windows. Samba implementa il protocollo di rete SMB, il quale è il cuore del networking Windows.

Solitamente si avrà bisogno di Samba per:

·         agire come un client con server Windows: accesso a file e stampanti remote condivisi,

·         agire da server per clien Windows: condividere cartelle e stampanti, incluse pseudo-stampanti PDF,

·         agire da controllore di domini in una rete Windows (autenticazione degli utenti, etc.),

·         fare qualcosa di più complesso, come per esempio usare un controller Windows di domini per autenticare gli utenti di una macchina Linux.

Il progetto Samba è partito nel 1992 con Andrew Tridgell. Oggi è un'importante struttura software nel mondo Linux quando si vuol fare interagire due o più macchine Windows e Linux.

 

Ho davvero bisogno di Samba?

·         Se vuoi che il tuo computer Windows possa usare una stampante collegata a una macchina Linux non è necesario usare Samba. CUPS può essere configurato per rendere la stampante accessibile in rete (consultare il manuale di CUPS per maggiori informazioni).

·         Non hai bisogno di Samba per condividere cartelle tra due macchine Linux, è possibile usare NFS per questo.

 

Installare Samba

Installare Samba è davvero semplice, basta installare il pacchetto samba. Da terminale digitare:

sudo apt-get install samba

oppure è possibile usare Synaptic.

 

Configurare il computer

Avviare lo strumento Impostazioni di rete da Sistema -> Amministrazione -> Rete e selezionare la scheda Generale.

 

Ora è tempo di sistemare le configurazioni

Attenzione: il nome del computer e dell'utente è consigliato farlo identico sia per win che per linux nel caso in cui un client abbia entrambi installati, altrimenti si andrà in contro a grossi problemi di permessi!

·         Setting dell'Host (client)

      Nome dell'Host:       <tuo_computer>

      Nome Dominio:         <tuo_dominio>

·         Windows Networking Controlla che sia abilitato il windows networking

      Descizione:       <quello_che_vuoi>

      Domain/Workgroup:  <il_dominio_del_tuo_gruppo_di_lavoro>

   Se preferisci, controlla il server WINS <tuo_indirizzo_ip_o_wins_server>

Note: Se non lo conosci, chiedilo al tuo amministratore di rete. Le tipiche configurazioni per il campo del gruppo di lavoro sono"mshome" o "workgroup".

Le configurazioni più importanti qui sono il tuo hostname (nome Host), il quale dovrebbe essere gia settato, e il dominio/gruppo di lavoro. Premi OK in entrambe le finestre and e la prima parte per reti con macchine Windows è fatta.

 

Esplorare samba shares

Ubuntu e Gnome (come xfce4) rendono facili l'accesso a file in reti di condivisione windows.

Apri il menù Risorse, poi clicca su "Server Rete". Vedrai una "rete windows",aprila. La prossima finestra mostra tutti i domini/gruppi di lavoro trovati nella tua rete. Dentro ogni domain/workgroup puoi vedere tutti i computer compresi in esso (cioè quelli che condividono qualcoasa!). Doppio click sull'icona di un computer e accedi ai suoi file condivisi. Può essere più facile ?

Prima di mostrare ciò che un computer condivide, il tuo sistema potrebbe chiederti un nome ed una password. Controlla che sia valido l'user che stai immettendo per il computer al quale ti stai connettendo. Se vuoi puoi anche mettere la tua password nel tuo portachiavi!

 

Montare una condvisione samba

Montare una condivisione sul filesystem locale ti permette di lavorare intorno a programmi che non usano ancora GnomeVFS per esplorare i file condivisi remoti. Per montare una condivisione samba devi prima di tutto installare smbfs:

sudo apt-get update

 

sudo apt-get install smbfs

Per permettere ad account non root di installare condivisioni, cambia i permessi nel programma smbmnt:

sudo chmod u+s /usr/bin/smbmnt

Cio che segue monterà la cartella myshare nel myserver nella destinazione /home/yourusrname/mnt:

smbmount //myserver/myshare /home/yourusrname/mnt

Inoltre per avere una condivisione montata automaticamente ogni volta che riavvii, hai bisogno di compiere la seguente procedura:

Apri la shell come root:

sudo -s

Crea un file che contenga i dettagli del tuo Windows/Samba user:

vi /etc/samba/user

...dovrebbe contenere due linee come queste:

    username = george

    password = secret

Cambia i permessi nel file per sicurezza:

chmod 0600 /etc/samba/user

Ora crea una directory dove puoi montare la tua condivisione (per esempio /mnt/data):

mkdir /mnt/data

Ora scrivi la tabella del filesystem (/etc/fstab) ed aggiungi una linea come quella che segue:

//server/share   /mnt/data   smbfs   credentials=/etc/samba/user,rw,uid=bob   0   0

...dove 'bob' è un non-root user con il quale ti sei loggato in ubuntu, 'server' è il nome o l'indirizzo della macchina windows and 'share' è il nome della condivisione.

Ora per montare share esegui il comando seguente, sempre da root. Verrà montata automaticamente al riavvio successivo.

mount /mnt/data

to be continued...

 

Configurazione del server Samba

La prossima parte non ha un'applicazione grafica ottimale, purtroppo, Dovremo quindi utilizzare la riga di comando. Non è difficile, ma sarà necessario essere molto accorti agli errori di battitura.

Prima di tutto apri un terminale: Applicazioni > Strumenti di sistema > Terminale e poi apri con l'editor "Nano" il file smb.conf digitando:

sudo nano -w /etc/samba/smb.conf

Come salvare: Per savare in nano premete "ctrl/o" quindi "ctrl/x".

Note Qui trovi una Guida all'uso dell'editor Nano => NanoGuida

Tip: Potete tranquillamente usare gedit al posto di nano se preferite.

Il file *smb.conf* è suddiviso in sezioni come segue:

    Global Settings

    Debugging/Accounting

    Authentication

    Printing

    File sharing

    Misc

    Share Definitions

Inizialmente abbiamo i Global Settings. qui potete osservare alcune righe, visibili anche tramite l'interfaccia grafica networktool come workgroup e il wins server. Se siete già in grado di cambiare qualsiasi cosa a vostro piacimento, potete saltare questa sezione, in altro modo cambiamo cosa vi serve.

Se non sapete il significato delle singole parti, potete consultare e verificare le parti principali nell'how-to ufficiale http://www.samba.org/samba/docs/using_samba/ch06.html` instead of randomly changing them. It will save you trouble-shooting later.

Una sezione molto importante per noi è File sharingDobbiamo quindi cambiare:

    ![homes]

        comment = Home Directories

        browseable = no

    # By default, the home directories are exported read-only. Change next

    # parameter to 'yes' if you want to be able to write to them.

        writable = no

    # File creation mask is set to 0700 for security reasons. If you want to

    # create files with group=rw permissions, set next parameter to 0775.

        create mask = 0700

    # Directory creation mask is set to 0700 for security reasons. If you want to

    # create dirs. with group=rw permissions, set next parameter to 0775.

    directory mask = 0700

Questa descrive la vostra cartella /home. Abitualmente questa viene condivisa in rete, in quanto conterrà i file condivisi. Per fare questo, fate i seguenti cambiamenti:

    ![homes]

       comment = Home Directories

       browseable = yes

    # By default, the home directories are exported read-only. Change next

    # parameter to 'yes' if you want to be able to write to them.

       writable = yes

    # File creation mask is set to 0700 for security reasons. If you want to

    # create files with group=rw permissions, set next parameter to 0775.

     create mask = 0775

     # Directory creation mask is set to 0700 for security reasons. If you want to

     # create dirs. with group=rw permissions, set next parameter to 0775.

     directory mask = 0775

Questo completa la condivisione della vostra /home. L'ultima cosa che dobbiamo fare è creare gli utenti con relativi permessi. Aggiungeremo gli utenti abilitati ai file condivisi con il comando 'smbpasswd'.

sudo  smbpasswd -a username

New SMB password:

Retype new SMB password:

Added user username.

Riavviate Samba per ogni cambiamento ad utenti/password o 'smb.conf'

sudo /etc/init.d/samba restart

Questa era la base delle condivisioni Samba. Ogni commento è ben accetto.

 

Complichiamo appena le cose

Siamo partiti dalle basi delle condivisioni samba. Tutto ciò che abbiamo detto è abbastanza per partire con una condivisione. Ora aggiungeremo ulteriori dettagli che potrebbero, come non potrebbero servire.

 

Se possedete più di una scheda di rete

Se possedete più di una scheda di rete (o interfaccia) allora dovete definire dove volete che giri samba. In smb.conf dentro la sezione [global], aggiungete:

"interfaces = 127.0.0.1, 192.168.0.31/24"

 "bind interfaces only = yes"

Il primo indirizzo (127.0.0.1), è il loopback network connection (la macchina stessa o localhost che dir si voglia).

Il secondo indirizzo (192.168.0.31), è l'indirizzo della scheda di rete ove samba girerà, il secondo numero (24) è la sottorete di default per reti di CLASSE-C . Potrebbe variare dipende dalla tipologia della vostra rete.

Con "bind interfaces only" limiterete le richieste SMB ad una singola scheda.

Potete limitare gli indirizzi IP che si potranno connettere al vostro server Samba aggiungendo queste righe:

"hosts allow = 127.0.0.1, 192.168.0.31, 192.168.0.32"

 "hosts deny = 0.0.0.0/0"

L'indirizzo di loopback deve essere presente nella prima linea. La seconda linea nega l'accesso a tutti gli indirizzi IP non presenti nella prima.

 

Ulteriori risorse

·         Sito web di Samba

·         "Using Samba", di Ts Eckstein, e Collier-Brown (O'Reilly)

·         Sito web di CUPS