Condivisione file in una rete eterogenea composta da pc con Windows, Linux, MacOS X attraverso i protocolli SMB, NFS e AFP

Supponiamo di avere una LAN eterogenea, formata sia da computer con S.O Microsoft Windows che da computer con GNU/Linux e da altri con MacOS X. Come facciamo a condividere file tra essi? Abbiamo a disposizione diversi protocolli: * Server Message Block (SMB): protocollo utilizzato dai computer con S.O Microsoft Windows * Network File System (NFS): protocollo utilizzato dai computer che usano sistemi operativi Unix/Linux * Apple Filing Protocol (AFP): protocollo utilizzato dai computer con MacOS X.Le prove sono state effettuate utilizzando le versioni inglesi di Windows XP, GNU/Linux Debian Sid e Ubuntu 8.04 (Hardy Heron) e Mac OS X Leopard 10.5 Server. Da questo momento, quando si parlerà di Windows, Linux e Mac si intenderanno automaticamente le suddette versioni, in caso contrario sarà espressamente specificato.Per quanto riguarda Linux, le seguenti istruzioni dovrebbero essere uguali o molto simili anche nelle altre distribuzioni Debian-based, ma non si garantisce niente a riguardo; per le altre distribuzioni la procedura dovrebbe seguire pressappoco il seguente schema, ma i comandi potrebbero essere anche molto diversi; in ogni caso potete sempre sfruttare questa guida come schema di base e vedere o approfondire l’implementazione di ciascun aspetto sulle numerose guide che ci sono on line per ogni distribuzione.Per quanto riguarda MacOS X Leopard normale (non server), dovrebbe valere quanto descritto per la versione Server, in caso contrario verrà specificato.Le informazioni sono alquanto generiche nella parte che riguarda Mac e Windows, sia perchè questi due sistemi operativi sono di per sé più semplici, che perchè l’obbiettivo primario della guida è lavorare con successo su Linux. Quindi considerate la presente come una guida di partenza.SMBCome già detto è il protocollo utilizzato di default dai computer con Windows per la condivisione dei file. Sia Linux che MacOS X lo supportano senza problemi.In questo paragrafo descriveremo come si comporta SMB lato server, cioè come mettere in condivisione file e cartelle a cui i client posso accedere. Per prima cosa occorre dire che, se avete attivato un firewall, è necessario aprire le porte giuste per il protocollo SMB: da 135 a 139 e 445.Windows, dato che SMB è proprio il protocollo di condivisione usato dai computer con questo sistema operativo, supporta nativamente il protocollo, basta mettere in condivisione i files e le cartelle richieste.Anche MacOS X Server supporta nativamente il protocollo SMB, bisogna solo attivarlo da Server Admin, impostare degli Share Points (cartelle da condividere) e renderli accessibili mediante SMB attraverso il pannello Protocol Options. Se invece avete MacOS X normale (non la versione Server), dovete condividere le cartelle che volete mediante l’apposito pannello di controllo presente nel menu Mela → Preferenze di sistema → Sharing e inserire il supporto a SMB nelle impostazioni avanzate.LINUX -> In questo caso bisogna installare SAMBA, mediante il comandosudo apt-get install samba smbfsAdesso dobbiamo inserire l’utente di rete, andiamo inSystem → Administration → Users and Groups → Add UserInserire samba come username e samba come password. Nel pannello “User Privileges”, deselezionare tutto. Nel pannello Advanced, selezionare /bin/false come shell e users come Main Group. Adesso da terminale digitaresudo smbpasswd -a sambae inserire la password desiderata.Questi sono username e password che verranno richiesti quando vogliamo connetterci al nostro computer.Editare il file smbusers mediantesudo gedit /etc/samba/smbusersInserire questosamba=”samba”Salvare il file e uscire.A questo punto dovete condividere qualcosa: cliccare su qualsiasi cartella col tasto destro e selezionare “Share Folder”. Nella finestra che si apre, dall’elenco “Share through” selezionare SMB ed eventualmente deselezionare “Read only”. Se cliccando col tasto destro sulla cartella non compare nessuna voce che riguardi la condivisione, selezionare “Properties” e lì dovrebbe esserci qualche voce a riguardo. Se neanche lì si trova un’apposita funzione, lanciare in alternativa il comandoshares-adminin modo da avere a disposizione un pannello di controllo a cui è possibile aggiungere le cartelle da condividere.Abbiamo finito.Per sicurezza, facciamo prima un restart di Samba, attraverso il comandosudo /etc/init.d/samba restartQuesta è solo una configurazione di base, che permette di accedere al computer Linux attraverso un generico utente “samba” e di controllare le cartelle che si è deciso di mettere in condivisione. Si può tuttavia fare di più, per esempio facendo in modo che ogni utente si connetta da remoto e abbia accesso alla propria home, ma ciò esula dallo scopo semplicistico di questa guida. In genere è possibile sistemare tutti questi parametri attraverso il file /etc/samba/smb.conf. Per maggiori informazioni si rimanda al sito web di Samba e alla seguente pagina.SMB come clientAdesso vediamo come usare SMB lato client, cioè come accedere alle cartelle condivise mediante SMB in un altro computer che fungerà quindi da server.Se il client è un computer con Windows, basta aprire Start → Esegui e scrivere \\indirizzo , inserendo eventuali nome utente e password.Se il client è un computer con Mac OS X (sia server che normale) basta aprire Finder e nella barra in alto andare in Go → Connect to server e inserire l’indirizzo smb://indirizzo, ad esempio smb://192.168.0.1, inserendo eventuali nome utente e password.Se invece il client è un computer con Linux bisogna premere ALT+F2 per aprire la finestra Esegui e inserire smb://indirizzo, ad esempio smb://192.168.0.1, inserendo eventuali nome utente e password. Ho notato talvolta alcuni problemi ad accedere da Linux tramite questo approccio, in tal caso un’alternativa consiste nel ricorrere al terminale e montare la cartella condivisa in un percorso locale, ad esempio così:#mkdir prova#sudo mount -t cifs -o username=username //indirizzo_server/sharedfolder provaIn particolare, se mentre scrivete il comando precedente premete il tasto Tab dopo aver scritto indirizzo_server/ dovrebbe comparirvi un elenco con le possibili cartelle da condividere, da sostituire nel comando a sharedfolder. Ho inoltre notato che potrebbe volerci un po’ di tempo per instaurare la connessione in qualche caso.Dovreste così poter visualizzare i file condivisi. I vostri permessi sui file condivisi potrebbero essere più o meno limitati, dipende dai permessi settati quando avete condiviso la cartella.N.B. Quando cercate di connettervi ad un server con Windows, può succedere che vi vengano chiesti nome utente e password che non avete mai stabilito durante la condivisione delle cartelle, in tal caso scrivete qualsiasi cosa, dovrebbe connettersi senza problemi.N.B. Ci potrebbero essere problemi per accedere a computer con Windows Vista, per ulteriori informazioni vedere:http://www.builderau.com.au/blogs/codemonkeybusiness/viewblogpost.htm?p=339270746NFS come serverCome già detto è il protocollo utilizzato di default dai computer con sistemi operativi Unix/Linux per la condivisione dei file.In questo paragrafo descriveremo come si comporta NFS lato server, cioè come mettere in condivisione file e cartelle a cui i client posso accedere. Per prima cosa occorre dire che, se avete attivato un firewall, è necessario aprire le porte giuste per il protocollo NFS: 32771, 111 e 2049.Per quanto riguarda Windows, per utilizzare il protocollo NFS come server bisogna installare un programma di terze parti come nfsAxe e mettere in condivisione dei file mediante esso. Non entreremo nei dettagli di questa operazione.Per quanto riguarda MacOS X Server, bisogna attivare il protocollo NFS da Server Admin, impostare degli Share Points (cartelle da condividere) e renderli accessibili mediante NFS attraverso il pannello Protocol Options. Non so se la stessa operazione è possibile anche se si utilizza MacOS X normale, tuttavia esiste un’applicazione molto semplice ed efficace che permette di gestire questo aspetto, utilizzabile sia sulla versione Server che su quella normale. Il suo nome è NFS Manager e può essere scaricata dal sito http://www.bresink.com/osx/NFSManager.htmlPer quanto riguarda Linux, bisogna installare NFS, mediante il seguente comando:sudo apt-get install nfs-kernel-server nfs-common portmapA questo punto bisogna condividere qualcosa: cliccare su qualsiasi cartella col tasto destro e selezionare “Share Folder”. Nella finestra che si apre, dall’elenco “Share through” selezionare NFS e scegliere a questo punto gli host con cui condividere la cartella. Se cliccando col tasto destro sulla cartella non compare nessuna voce che riguardi la condivisione, selezionare “Properties” e lì dovrebbe esserci qualche voce a riguardo. Se neanche lì si trova un’apposita funzione, lanciare in alternativa il comandoshares-adminin modo da avere a disposizione un pannello di controllo a cui è possibile aggiungere le cartelle da condividere.Lanciare il comandosudo exportfs -aper aggiornare la lista di cartelle condivise.Per sicurezza, fare un restart di NFS, attraverso il comandosudo /etc/init.d/nfs-kernel-server restartNFS come clientAdesso vediamo come usare NFS lato client, cioè come accedere alla roba condivisa tramite NFS in un altro computer.N.B. Un client può accedere ad una cartella condivisa tramite NFS solo se il server in fase di condivisione ha deciso di inserirlo tra gli host consentiti.Se il client è un computer con Windows, basta aprire il prompt di MS-DOS e lanciare il comandonet use w:\\indirizzo_server\sharedfolderche monterà la cartella condivisa sharedfolder in un drive di rete w: (si può impostare qualsiasi lettera, tranne ovviamente quelle già usate).Se invece volete accedere alle cartelle condivise del server NFS da un client Linux, dovete dapprima installare il pacchetto nfs-common, mediante il comandosudo apt-get install nfs-commonSubito dopo bisogna aprire il terminale e montare la cartella condivisa in un percorso locale, ad esempio così:#mkdir prova#sudo mount indirizzo_server:/sharedfolder provaIn particolare, se mentre scrivete il comando precedente premete il tastp Tab dopo aver scritto indirizzo_server:/ dovrebbe comparirvi un elenco con le possibili cartelle da condividere, da sostituire nel comando a sharedfolder (togliere l’eventuale / che compare alla fine).Se il client è invece un computer con MacOS X Server ci potrebbe essere qualche problema: i comandi da utilizzare dovrebbero essere gli stessi di quelli appena visti per il client Linux, ma stranamente nelle mie prove non hanno funzionato a dovere. Tuttavia anche qui possiamo usare l’applicazione NFS Manager di cui abbiamo parlato prima. E’ molto semplice da usare, basta scrivere l’indirizzo del server NFS e si aprirà una finestra che mostrerà le cartelle che avete condiviso in esso e che potrete montare dove preferite in cartelle locali nel vostro Mac. Troverete inoltre il server nella lista a sinistra nell’applicazione Finder, da cui potrete vederne il contenuto.AFP come serverAFP è il protocollo utilizzato dai Mac per le connessioni tra server e client. In questo paragrafo descriveremo come si comporta AFP lato server, cioè come mettere in condivisione file e cartelle a cui i client posso accedere. Per prima cosa occorre dire che, se avete attivato un firewall, è necessario aprire la porta 548.Nel caso di Mac OS X Server, questo sistema operativo chiaramente supporta AFP nativamente, quindi è sufficiente, come per gli altri due protocolli, attivare il protocollo AFP da Server Admin, impostare degli Share Points (cartelle da condividere) e renderli accessibili mediante AFP attraverso il pannello Protocol Options. Se invece avete MacOS X normale (non la versione Server), dovete semplicemente condividere le cartelle che volete mediante l’apposito pannello di controllo presente nel menu Mela → Preferenze di sistema → Sharing ed esse verranno automaticamente condivise mediante il protocollo AFP.Nel caso di Linux, l’attivazione di questo protocollo non è affatto semplice, ma è possibile. Bisogna installare l’applicazione Netatalk, ma prima di farlo bisogna scaricare il pacchetto e modificarlo in modo da aggiungere il supporto al modulo DHX (non presente di default né su Ubuntu né su Debian), necessario per criptare le password. Ecco i passaggi:#mkdir prova#cd prova#sudo apt-get source netatalk#sudo apt-get install devscripts fakeroot openssl cracklib2 dpkg-dev#sudo apt-get install libpam-cracklib cracklib2-dev libssl-dev#sudo apt-get build-dep netatalk#cd cartella_netatalkAdesso modificare il file debian/rules aggiungendo la rigaDEB_BUILD_OPTIONS=ssl debuildUscire dall’editor e lanciare il comandodpkg-buildpackageIncrociate le dita, perchè qui potreste ottenere errori di compilazione, oppure la compilazione terminerà correttamente ma con qualche warning, in quest’ultimo caso non fa niente.Adesso lanciare i comandicd ..dpkg -i netatalk_2.0.3-4_i386.debper effettuare l’installazione. Dopo di essa, il demone del programma verrà avviato automaticamente, qui potreste ottenere qualche errore, in tal caso editare il file /etc/netatalk/atalkd.conf e inserire alla fine semplicementeeth0salvando e chiudendo alla fine il file.Adesso occorre editare il file /etc/netatalk/afpd.conf, inserendo alla fine la riga-noddp -uamlist uams_randnum.so,uams_dhx.soRiavviare Netatalk, mediante il comando/etc/init.d/netatalk restartAdesso il server AFP dovrebbe essere attivo sul vostro computer Linux. Per completare, lanciare unecho “netatalk hold” | sudo dpkg –set-selectionsin modo da dire al sistema di non aggiornare Netatalk automaticamente, per evitare che venga installata una versione priva di supporto a DHX.Nel caso di Windows, questo SO non supporta nativamente AFP (a parte alcune versioni di Windows Server che comunque sembrano dare un supporto solo parziale ad esso). Di conseguenza occorre installare un programma aggiuntivo che funga da server AFP, come MacServerIP oppure ExtremeZ-IP. Tuttavia non scenderemo nei dettagli di queste applicazioni.AFP come clientAdesso vediamo come usare AFP lato client, cioè come accedere alla roba condivisa mediante AFP in un altro computer.Se il client è un computer con Mac OS X Server, è facilissimo usarlo come client AFP, basta aprire Finder e nella barra in alto andare in Go → Connect to server e inserire l’indirizzo afp://indirizzo, ad esempio afp://192.168.0.1Se il client è un computer con Windows, bisogna anche qui usare un programma che funga da client AFP, come MacServerIP oppure ExtremeZ-IP, come già detto prima.Se il client è invece un computer con Linux, bisogna installare un client AFP, come afpfs-ng, perfetto compendio del server AFP Netatalk, scaricabile da http://sourceforge.net/projects/afpfs-ng/Nel nostro caso (distribuzione Ubuntu/Debian), scaricare il file con estensione .deb e installarlo mediantesudo dpkg -i afpfs-ng_0.8.1-1_i386.debIn caso di problemi, si può anche scaricare il sorgente e compilarlo.A questo punto, se volete accedere ad una delle cartelle condivise, bisogna prima montarla: aprire il terminale e montare la cartella condivisa in un percorso locale, ad esempio così:mkdir provamount_afp afp://username:password@151.97.9.181/cartella_da_montare provaN.B. Non usare il “sudo” per il comando mount_afp, perchè non dovrebbe essere necessario e se usato potrebbe rendere il mountpoint inaccessibile. Tenere conto che afpfs-ng è ancora in una fase preliminare di sviluppo, di conseguenza i bug possono essere frequenti.Maggiori info alla pagina http://alexthepuffin.googlepages.com/ConclusioniConcludendo, sembra che tutti e tre i sistemi operativi supportino tutti e tre i protocolli, anche se alcune delle soluzioni affrontate sono ancora giovani e quindi sicuramente non esenti da bug. Risulta semplicemente fantastico il supporto di MacOS X a tutti e tre i protocolli, supportati in maniera semplice e completa. Linux fa una buona figura, supportandoli tutti e tre, ma in mariera a volte macchinosa e non esente da bug: è necessario prendere MacOS X come esempio se si vuole migliorare. Windows di suo fa la solita figuraccia, dimostrando che se non fosse per le soluzioni di terze parti supporterebbe solo SMB, ossia il suo protocollo, ad ulteriore prova di come Microsoft abbia sempre in grande considerazione la concorrenza ;-)Qualche altra considerazione di tipo operativo:se avete una rete di soli Mac, consiglierei di usare AFP, dato che sembra che offra prestazioni superiori agli altri protocolli (anche se non ho verificato personalmente), inoltre sembra che in qualche caso gli altri protocolli potrebbero avere qualche problemino con le informazioni presenti nei file Mac, cosa che ovviamente con AFP non succede. * Se avete una rete di soli computer con Windows usate SMB * se avete una rete di soli computer Linux usate SMB e/o NFS * Se avete computer con Windows, Linux e MacOS X, usate SMB e/o NFS. Se in particolare il server è il computer Windows, condividete tramite SMB, così i computer con Debian/Ubuntu (penso anche le altre distribuzioni) e il Mac potranno accedervi mediante smb://indirizzo, senza installare nulla. Se avete almeno due Mac attivate anche il protocollo AFP, da usare per condividere file tra i soli Mac.Autore : Giacomo Fazio aka l3golas

Officin@Informatica

Blogged with the Flock Browser
About these ads

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

%d blogger cliccano Mi Piace per questo: