Spesso può essere utile avere la possibilità di accedere ai propri file via internet, senza necessariamente appoggiarsi a servizi esterni, per esempio per motivi di privacy. Inoltre, utilizzare un file server fatto in casa, ovvero un sistema in grado di consentire l’accesso e la gestione remota di file, può rivelarsi un’utile strumento di archiviazione, spesso più sicuro del tradizionale “hard disk portatile di backup”.
In questo articolo vedremo come mettere a punto proprio un file server, basando la nostra discussione su Samba. Si tratti di un servizio in grado di fornire funzionalità di file sharing, caratterizzato dall’essere rilasciato sotto licenza GPL. Samba è compatibile con la maggior parte dei sistemi operativi Linux moderni, ed in questo articolo vedremo come utilizzarlo su Ubuntu, sebbene ciò non vieta la possibilità di utilizzarlo pressocchè su qualsiasi altro sistema Linux.
Infine, vedremo qualche esempio di utilizzo, relativamente all’accesso al server da client Linux e Windows.
Installazione di Samba server
Le versioni server delle principali distribuzioni, in genere, includo di default una installazione di Samba. Se così non è, ed utilizziamo, come nel caso di Ubuntu, distribuzioni basate su Debian, possiamo comunque installare facilmente Samba mediante atp:
In alternativa, la maggior parte delle distribuzioni fornisce la possibilità di installare Samba facendo direttamente riferimento ai repository ufficiali. Ad ogni modo, la pagina di download del sito ufficiale del progetto fornisce una guida di massima sull’installazione mediante compilazione del codice sorgente
Una volta terminato il processo di installazione, avviamo il demone di Samba:
In alternativa possiamo utilizzare:
Adesso possiamo passare alla fase di configurazione.
Configurazione iniziale
Il principale file di configurazione di Samba, in genere, è situato in /etc/samba/smb.conf. Dovremo quindi modificare questo file per personalizzarlo secondo le nostre esigenze. Prima, però, è bene prevenire qualsiasi problema, effettuando una copia di backup del file originale. Per farlo, utilizziamo il seguente semplice comando:
Così facendo, salviamo una copia del file originale con il nome smb.conf_backup gedit
sudo gedit /etc/samba/smb.conf
A questo punto, non ci resta che modificare i parametri che ci interessano. Il primo fra questi è il nome del workgroup
workgroup = WORKGROUP
e modifichiamola a nostro piacimento. Se vogliamo che il server appartenga al workgroup GruppoHTML
workgroup = GruppoHTML
Se pensiamo di volere accedere al nostro server tramite sistemi MS Windows, può essere necessario far coincidere il nome del workgroup della rete Windows con quello impostato in smb.conf server string Risorse di Rete
Impostati i nomi, non resta che occuparci degli utenti e delle risorse da condividere.
Risorse condivise e utenti
Per quanto riguarda le risorse, si tratta di dichiarare, nel file smb.conf, il path, i permessi ed i nomi pubblici delle directory che si vogliono rendere accessibili dall’esterno. Per farlo, ad ogni directory associamo una struttura così fatta:
Il parametro public yes writable = yes smb.conf
Una volta dichiarate tutte le cartelle da rendere pubbliche, non resta che pensare agli utenti
smbpasswd -a nome_utente
Quest’ultimo associerà all’utente nome_utente
È anche possibile riferirsi a più utenti, ciascuno dei quali può accedere o meno alla propria home directory. Possiamo modificare l’accessibilità a tali directory private, modificando la sezione [homes]
[homes] comment = Home Directories browseable = no writable = yes
Il parametro browseable = no
Vale la pena sottolineare che le password di accesso al sistema e quelle per l’utilizzo di Samba possono essere completamente diverse (ed è bene che lo siano), ma comunque ad ogni utente Samba deve corrispondere un utente del sistema. Se se ne vuole creare uno, si può utilizzare il comando useradd pagina di manuale
A questo punto, terminata la configurazione, riavviamo Samba:
In alternativa, possiamo usare anche:
Utilizzo del File Server da client Windows
Siamo finalmente pronti ad utilizzare il nostro file server. Vediamo, quindi, un esempio riassuntivo, che spiega come accedervi direttamente da piattaforme MS Windows.
Supponiamo di avere creato l’utente vito, e di avere utilizzato, per le directory home, le impostazioni viste al paragrafo precedente. Assumiamo, inoltre,di avere valorizzato come segue alcuni parametri:
Per accedere, da Windows 7, alla directory pubblica Computer Connetti unità di rete 192.168.1.64
Cliccando su Fine, ci verranno richieste le credenziali di accesso, e da questo momento in poi sarà possibile accedere al file server con la stessa facilità di accesso ad un hard disk locale.
Se vogliamo accedere alla home directory (assumendo, come abbiamo fatto, che ciò sia consentito), inseriremo l’indirizzo della macchina seguito dal nome dell’utente, come mostrato nella figura seguente:
Utilizzo del File Server da client Linux
Sebbene OpenSSH sia, probabilmente, la soluzione migliore per la gestione di un file server Linux nel caso di sistemi con client Linux, è comunque possibile utilizzare Samba, in modo da rendere agevole l’utilizzo del server in maniera multi-piattaforma. Vediamo, quindi, come accedere ad una directory pubblica mediante un client Linux.
Samba ci mette a disposizione un semplice comando in grado di effettuare il mount di una directory condivisa su una directory locale: si tratta di smbmount. In maniera quasi trasparente all’utente che utilizza la condivisione, è possibile aggiungere, modificare o eliminare file dalla directory montata. La sintassi è la seguente:
Nell’esempio precente, supponendo che l’utente sia vito 1234 /mnt/condivisione smbmount 192.168.1.64
mkdir /mnt/condivisione smbmount //192.168.1.64 /mnt/condivisione –o username=vito,password=1234,rw
Le due lettere rw
Accesso da remoto ai file Samba
Non è un caso che, nei due esempi precedenti, abbiamo utilizzato degli indirizzi IP locali per la macchina del server. Se vogliamo avere accesso ai nostri file anche remotamente, ed abbiamo un router NAT, abbiamo bisogno innanzitutto di reindirizzare le richieste al file server, verso il nostro computer. È necessario aprire alcune porte per consentire il corretto funzionamento del protocollo SMB/CIFS su cui si basa Samba. Esse sono:
- 137, 138 e 139 per i protocolli TCP e UDP;
- Potrebbero essere necessarie anche le porte 445, 389 e 901, in TCP, in base ai servizi utilizzati; in alcuni casi, vengono utilizzate diverse porte successive alla 2000.
Una volta aperte le porte, può essere una buona norma utilizzare un servizio di DNS dinamico, in modo da rendere statico e più user-readable l’indirizzo del file server.
Rimandiamo un’analisi più approfondita di questi dettagli alla documentazione ufficiale