MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20090629114806_1831161964_20090629114705_1767412428_server_download2.png

Guida completa: come predisporre un server FTP sul proprio PC

a cura di Zane
19/10/2009 - articolo
Tecniche Avanzate - Desiderate trasferire file via Internet o rendere disponibili documenti particolarmente voluminosi senza imbattervi nei tanti limiti dei servizi di web hosting? FTP è un protocollo robusto e affidabile, in grado di offrire una serie di vantaggi di primo piano. Grazie ad un potente software open source, è possibile predisporre un server con la massima sicurezza e semplicità: vediamo come procedere.

Al giorno d'oggi, fra messaggistica istantanea, protocolli di filesharing P2P, file hoster via web ed eccellenti soluzioni come DropBox, i metodi per scambiare file in rete sono davvero moltissimi.

Ciò nonostante, la predisposizione di un server FTP sul proprio PC rimane un'operazione altamente consigliata, perlomeno per gli utenti più esigenti.

Questo approccio ha infatti una serie di vantaggi sicuramente notevoli rispetto a tutti gli altri elencati:

Vi sono però anche alcuni aspetti negativi;

A mio personale parere, i vantaggi sono tali da portarmi ad evitare quasi sempre l'impiego dei web hoster, se non in casi eccezionali.

Siete convinti? Vediamo come preparare il tutto.

Spiacente, utenti Fastweb

Per poter consentire il collegamento al vostro server FTP, è necessario aprire e rendere possibile la connessione ad una porta TCP (la numero 20, per impostazione predefinita).

Il sistema Fastweb ad IP mascherato, inibisce questa possibilità.

L'unico modo per risolvere il problema è quello di richiedere all'operatore un (costoso) IP pubblico, oppure sfruttare le 20 ore mensili di IP pubblico comprese nell'abbonamento e rendere disponibile il proprio FTP solamente in tali momenti.

L'alternativa è costituita dalla creazione di una VPN con soluzioni quali Hamachi: ne ho parlato nell'articolo "Realizzare VPN in pochi clic: guida rapida ad Hamachi".

FileZilla Server

Sebbene siano numerose le soluzioni software atte allo scopo (in passato abbiamo proposto una approfondita guida anche a Serv-U, ad esempio), la mia prima scelta per predisporre server FTP è senza dubbio alcuno FileZilla Server.

Si tratta di uno strumento leggero ma allo stesso tempo potente, altamente configurabile e con il vantaggio della licenza open source GPL, grazie alla quale è possibile utilizzare il programma liberamente anche in ambienti professionali

FileZillaServer.MAIN.jpeg

Installazione

Per prima cosa, è necessario scaricare il programma di installazione dal sito ufficiale ed avviare il setup.

Le prime schermate sono quelle tradizionali: scelta dei componenti da installare (selezionateli tutti), percorso in cui copiare i file, accettazione della licenza d'uso e via dicendo.

La prima videata interessante è Startup settings relativa appunto alle modalità con cui avviare il server.

FileZillaServer.Install.1.jpeg

Personalmente sono allergico al software che parte automaticamente all'avvio del PC, e preferisco piuttosto attivare manualmente i vari programmi alla bisogna.

Se volete adottare il mio approccio, selezionate Do not install as service... In caso contrario lasciate la scelta di default.

Ricordate comunque che questo tipo di avvio è raccomandabile solamente in caso vogliate mantenere il massimo controllo sul programma, e non è indicato per calcolatori adibiti strettamente a lavorare come server remoti.

Se avete optato per l'avvio manuale, suggerisco di selezionare Start manually alla schermata successiva.

FileZillaServer.Install.2.jpeg

All'ultima videata della procedura d'installazione, lasciate attiva la voce proposta per attivare immediatamente il programma.

A questo punto, potreste essere accolti da un avviso di Windows Firewall: accettate la possibilità che FileZilla Server possa accedere alla rete e aprire porte in ingresso

FileZillaServer.Install.3.jpeg

Apparirà ora la finestra di dialogo seguente: sebbene non approfondiremo questo aspetto nel corso della guida, è infatti possibile amministrare anche installazioni di FileZilla Server remote.

Lasciate tutto come sta, attivate l'opzione Always connect to this server e confermate

FileZillaServer.Options.jpeg

Dovreste poter vedere ora la schermata principale del programma: il server è attivo, anche se non ancora accessibile.

Selezionate la terza icona della barra degli strumenti, e potrete così accedere alle opzioni del programma.

Sebbene la completezza di quanto offerto possa disorientare, vi sono in vero solamente un pugno di impostazioni che risulta interessante modificare.

Welcome message

A scope prettamente dilettevole, potete modificare il messaggio di benvenuto visualizzato dai client subito dopo la connessione

FileZillaServer.Options (2).jpeg

Ricordate che quanto inserito in quest'area non verrà mostrato a coloro i quali utilizzassero un tradizionale navigatore web per accedere ai file offerti, ma solamente ai client FTP dedicati.

Prestate attenzione inoltre a non rivelare password o altre informazioni riservate! Il messaggio verrà infatti mostrato prima dell'autenticazione, e sarà quindi pubblico!

IP Filter

La Rete è piena di scocciatori che, utilizzando automatismi di vario tipo, finiranno per scoprire l'esistenza del vostro server e inizieranno a provare svariate combinazioni di nomi utente e password per tentare di garantirsi l'accesso.

Potete mettere alla porta tali utenti semplicemente elencando, uno dopo l'altro, i loro IP nella prima casella di testo del ramo di opzioni IP Filter. Potrete prendere nota degli IP degli aggressori tenendo d'occhio la schermata principale di FileZilla Server, oppure agire preventivamente bloccando il traffico da Stati esteri secondo quanto proposto da Blockacountry.com.

Siete veramente paranoici? Allora bloccate qualsiasi connessione inserendo nella prima casella 0.0.0.0-255.255.255.255, e quindi inserite solamente IP italiani e degli Stati dai quali contate di ricevere connessioni nella casella sottostante, sempre utilizzando Blockacountry.com come fonte informativa. Ricordatevi però di questo limite, quando andrete in vacanza negli Stati Uniti e vorrete caricare le foto via FTP!

Passive mode settings

La spiegazione teorica della modalità passiva legata al protocollo FTP è oltre gli scopi di questa guida (per maggiori informazioni, si veda la buona spiegazione proposta da Wikipedia Inglese).

Per il momento, basti dire che, operando dietro un router con firewall, è necessario impostare FileZilla Server di modo che possa offrire la connessione passiva su una porta alternativa.

Nel ramo di opzioni in questione, abilitate quindi Retrieve external IP address from: senza modificare l'indirizzo proposto.

Spuntate quindi Use custom port range: e specificate due porte a piacere, maggiori di 1024. Nel prosieguo userò 2121 e 2122

FileZillaServer.Options (4).jpeg

Ricordate che, in caso aveste problemi di connessione, sarà probabilmente questo il ramo di opzioni da verificare.

Miscellaneous

Il pannello di amministrazione di FileZilla Server parte, per impostazione predefinita, ridotto a icona nell'area delle notifiche.

Se avete optato per l'avvio manuale del programma durante la fase di installazione, suggerisco di disabilitare l'opzione Start minimized presente in questo gruppo di impostazioni

FileZillaServer.Options (5).jpeg

Non modificate altro in questo ramo e proseguite oltre.

Speed Limits

Piuttosto importante è la schermata relativa ai limiti di velocità, ed in particolare quello legato alla velocità massima di download dal vostro server.

Se non imposterete un limite infatti, un singolo client connesso mediante una tradizionale ADSL potrebbe saturare completamente la vostra banda in upload, rendendo la tradizionale navigazione in Internet dal vostro PC particolarmente lenta (o peggio).

Se utilizzate una ADSL italiana di taglio medio (velocità di upload nominale: 384 kbit/s), impostate Download Speed Limits - Constant Speed Limit al valore 32, mentre se siete sottoscrittori di abbonamenti da 20 Mega (velocità di upload nominale: 1 Mbit/s ma che difficilmente supera i 5-600), potete digitare 64

FileZillaServer.Options (6).jpeg

Non ritengo particolarmente utile impostare un limite massimo per l'upload: perché un client riesca a saturare la banda di download di una ADSL di taglio medio sarebbe necessario caricare ad oltre 5 Mbit per secondo: questo significa che dovrebbero essere connessi al vostro FTP più di 13 client impegnati in attività di upload contemporaneo.

Se temete questa eventualità comunque, impostate Upload Speed Limits - Constant Speed Limit al valore 512 (1500 per le 20 Mega).

Filetransfer compression

FileZilla Server offre la possibilità di comprimere "al volo" ed in modo completamente trasparente i file in transito, qualora anche il client supporti a propria volta tale modalità. Questo significa una mole di dati minori da veicolare e, quindi, trasferimenti più rapidi (soprattutto per i file non già compressi, quali documenti di testo, immagini bitmap o RAW e via dicendo).

Potete attivare questa opzione spuntando Enable MODE Z support nel ramo Filetransfer compression

FileZillaServer.Options (7).jpeg

Il rovescio della medaglia è un (concreto) aumento nell'uso del processore durante il trasferimenti dei file più corposi.

Il mio suggerimento è comunque quello di attivare tale opzione, a meno chè non utilizziate lo stesso calcolatore anche per eseguire applicazioni voraci di risorse come i videogiochi tridimensionali: in tutte le altre occasioni infatti, l'impatto sulla CPU non è tale da compromettere l'usabilità della macchina.

Autoban

Un importante meccanismo difensivo reso disponibile da FileZilla Server è l'autoban, ovvero il blocco di ulteriori tentativi di connessione da parte di quei client che fornissero credenziali di accesso errate per un numero troppo elevato di volte consecutive (possibile segnale di un attacco a forza bruta in corso).

Impostando il valore 25 nel primo campo (di modo da non escludere a priori gli amici più imbranati) e 2 nel secondo, farete sì che tutti i client che sbaglino l'autenticazione per più di 25 volte in una sola ora vengano bloccati per ulteriori 2 ore

FileZillaServer.Options (8).jpeg

Fine delle opzioni

La configurazione delle opzioni è terminata. Passiamo ora a creare gli utenti.

Arrivati a questo punto, abbiamo configurato il nostro server. Tuttavia, non è possibile accedervi dall'esterno, poiché, ancora, non abbiamo predisposto alcun utente.

Utenti sì, gruppi... dipende

FileZilla Server rende disponibili tre modalità di gestione degli utenti e dei relativi permessi: per singolo utente, per "gruppo" oppure utilizzando entrambi.

Con l'approccio "per utente", è possibile realizzare molteplici utenti cui assegnare direttamente i permessi di accesso desiderati.

Ragionando per gruppi invece, non si assegnano i privilegi ai singoli account, ma, piuttosto, ad un "gruppo": tutti gli utenti che faranno parte di tale gruppo, ne erediteranno i permessi.

L'ultimo approccio (quello che più sconsiglio) è ibrido: gli utenti fanno parte di gruppi, ma taluni account hanno privilegi personali ulteriori a quelli del gruppo.

In questo specifico ambito, reputo maggiormente funzionale il primo approccio, ovvero creare singoli utenti dotati di privilegi personali, da distribuirsi a seconda del tipo di impiego.

Un account chiamato "Amico" ad esempio, darà accesso a pressoché tutte le foto, i filmati, gli scherzi e gli altri documenti multimediali. Uno chiamato "Collega", garantirà la disponibilità dei file professionali. Un altro ancora, denominato "MegaLab.it", potrà essere usato per condividere materiale con il team alle spalle di questo sito.

I vantaggi? una lista di utenti minore e nettamente più maneggevole. Gli svantaggi riguardano invece la necessità di notificare ad un ampio numero di utenti in seguito ad una singola variazione di password, e l'impossibilità di risalire con esattezza a chi ha trasferito un certo file.

Nel prosieguo dell'articolo ignorerò quindi la funzionalità di gestione dei gruppi. Utilizzare questa caratteristica in caso di necessità (penso ad esempio alle realtà aziendali o ai server FTP più trafficati) è comunque molto semplice: basta configurare il gruppo (utilizzando il quarto pulsante della barra degli strumenti) come faremo per l'account utente fra poco, e quindi assegnare ogni utente a tale gruppo utilizzando l'opzione User should be member of the following group: nella finestra di dialogo relativa all'utente stesso.

Qualisasi cosa scegliate, vi sconsiglio l'approccio ibrido: è davvero complicato da gestire, ed il rischio che un privilegio personale dimenticato vada ad imporsi su una regola d'accesso del gruppo è sempre in agguato.

Creazione di un nuovo utente

Per creare un nuovo utente, cliccate sul quarto pulsante presente nella barra degli strumenti del programma. Individuate quindi il pulsante Add (a metà del riquadro di destra) e cliccatelo.

Digitate ora il nome dell'utente che desiderate creare

FileZillaServer.User.jpeg

Una volta premuto OK, potete modificare le opzioni dello specifico account.

Sinceratevi che Enable account sia abilitato, così come l'opzione Password, e digitate quindi la parola d'ordine che questo utente dovrà fornire nell'omonimo campo.

FileZillaServer.User (1).jpeg

Personalmente, andando contro a qualsiasi norma di sicurezza, sono solito riportare nel campo Description la password per l'utente in questione, di modo che sia immediatamente visibile in caso fosse necessario ricordarla al contatto.

Lo spazio FTP

È senza dubbio una buona idea isolare i singoli utenti all'interno di una struttura di cartelle riservate, andando in seguito ad aggiungere semplici "Collegamenti" a tutte le altre directory cui questi devono poter accedere.

Create quindi una directory chiamata UtentiFTP sul vostro disco, all'interno della quale andremo a posizionare diverse sotto-cartelle che portino lo stesso nome di ogni utente abilitato ad accedere al server FTP: rifacendosi all'esempio precedente, avremo quindi d:\UtentiFTP\Amico, d:\UtentiFTP\Collega, d:\UtentiFTP\MegaLab.it e via dicendo.

All'interno di ognuna di queste, posizionate un file chiamato Se mi vedi, sei collegato correttamente!.txt, contenente un testo a piacere: aiuterà i client a capire che tutto sta funzionando a dovere.

A fianco di tale documento, predisponete una sottocartella chiamata scrivibile: questa è l'unica area in cui il client potrà caricare i nuovi file, evitando così che qualche burlone possa scrivere documenti qua e là sul vostro PC.

Ultimato il lavoro, vi troverete con una struttura simile alla seguente:

FileZillaServer.User (4).jpeg

I privilegi d'accesso

Tornate ora a FileZilla Server, selezionate l'account appena creato dalla lista sulla destra, portatevi nel ramo di opzioni Shared Folder e premete il pulsante Add.

Navigate ora fino ad individuare la cartella all'interno di SpazioFTP che porta lo stesso nome dell'utente corrente

FileZillaServer.User (2).jpeg

Confermate la vostra scelta e la directory verrà aggiunta alla lista di quelle accessibili. Sinceratevi ora di selezionarla e premere Set as home dir: questo farà si che, subito dopo il login, l'utente si trovi all'interno di questa specifica cartella.

Per quanto dicevamo in precedenza, la prima cartella dovrà avere essere accessibile solamente in lettura, mentre l'utente sarà autorizzato a caricare i propri file all'interno di scrivibile: ripetiamo quindi l'operazione precedente per aggiungere anche questa seconda directory all'elenco.

FileZillaServer.User (3).jpeg

Dopo averlo fatto, selezionatela e ponete la spunta a tutte le caselle di controllo sulla parte destra: in questa cartella infatti, l'utente avrà ogni privilegio di modifica.

Premete ora OK in basso a sinistra e avete creato il vostro primo utente!

Potete, ora o in seguito, ripetere la stessa procedura per aggiungere ulteriori utenti a piacere.

Configurare la rete

Possiamo ora configurare la rete, operazione indispensabile prima di effettuare la prima connessione vera e propria.

Arrivati a questo punto, il server è completamente pronto. Passiamo quindi a configurare la rete, e sarà possibile collegarsi anche dall'esterno.

In particolare, dobbiamo aprire le porte utilizzate dal server FTP sul firewall: si tratta principalmente della 21 TCP, ma, per come abbiamo configurato l'applicativo, sarà necessario abilitare anche la 2121 TCP e la 2122 TCP per consentire l'accesso da parte di quei client che richiedessero la connessione in modalità passiva.

Per quanto riguarda lo strumento di sicurezza in dotazione a Windows, abbiamo dettagliato la procedura in "Come aprire determinate porte su Windows Firewall".

Se per il collegamento ad Internet utilizzate un router, sarà necessario configurare anche l'inoltro delle stesse porte (port forwarding) verso il PC su cui è in esecuzione FileZilla Server.

La procedura purtroppo varia da modello a modello. Per quanto riguarda il diffusissimo Alice Gate fornito in comodato da Telecom Italia, è disponibile l'articolo "Aprire porte TCP/UDP su modem-router Alice gate 2 Plus e 2 Plus Wi-Fi" mentre per tutti gli altri, dovrete fare riferimento al libretto di istruzioni.

In linea di massima comunque, si opererà su una schermata simile a questa

PortFowarding.jpeg

Ottenere un nome a dominio dinamico

Per poter raggiungere il vostro PC dall'esterno, risulta particolarmente comodo l'utilizzo di un nome a dominio dinamico: NO-IP è sicuramente un ottimo strumento atto allo scopo.

Raccomando quindi di seguire le indicazioni riportate nello specifico articolo prima di proseguire.

Nel prosieguo, darò per scontato che il sistema remoto sia raggiungibile all'indirizzo miopc.no-ip.org.

Breve approfondimento: perché non aprire la 20?

Non è necessario aprire la porta 20 TCP per far funzionare correttamente il server FTP.

Tale porta infatti, è utilizzata solamente dal client quando richiede la connessione in modalità attiva, e non c'entra assolutamente niente con il server.

Nemmeno è saggio configurare la 20 lato-server come porta su cui accettare le connessioni in modalità passiva: sebbene la cosa possa portare ai risultati cercati, secondo gli standard promulgati da Internet Assigned Numbers Authority (IANA), tale porta è adibita esplicitamente a gestire la connessione di controllo FTP in modalità attiva.

Arrivati a questo punto, tutto è pronto! Possiamo sicuramente provare a collegarci.

Per il nostro test, useremo l'utility FTP a riga di comando di Windows: uno strumento spartano ma ottimo per fare qualche prova veloce.

Lanciamo il prompt dei comandi, quindi impartiamo ftp miopc.no-ip.org. Ricordo che gli hostname dinamici non funzionano a dovere dall'interno della rete LAN: se, come nell'esempio sottostante, state provando ad accedere ad un altro PC della vostra rete locale, dovrete usare il nome attribuito alla macchina da Windows, come ad esempio ftp pc-zane.

Se volete testare il servizio dalla stessa macchina sulla quale è in esecuzione il server, usate invece ftp localhost.

Se avrete configurato tutto correttamente, dovreste visualizzare il messaggio di benvenuto precedentemente impostato, quindi la richiesta di username seguita dalla password.

Nel caso in cui tutto vada per il verso giusto, impartite il comando ls per richiedere la lista di tutti i file disponibili: con vostra somma gioia, riceverete in output un elenco composto dalla cartella scrivibile e dal file Se mi vedi, sei collegato correttamente.txt che avete creato in precedenza

FileZillaServer.Test.LoginOk.jpeg

Provate ora a scaricare tale file: impartite get "Se mi vedi, sei collegato correttamente!.txt" e date quindi un'occhiata alla vostra cartella dei documenti.

Perché non caricare ora un file? Il comando è semplicissimo: put "c:\file che voglio caricare.txt". Se non ne avete uno a portata di mano, caricate l'eseguibile di esplora risorse con put "c:\windows\explorer.exe".

Sorpresa! Non funziona, e il server risponde Permission Denied

FileZillaServer.Test.WriteDenied.jpeg

Il motivo è presto detto: abbiamo configurato il server di modo che il client sia autorizzato a scrivere solamente all'interno della sotto-cartella scrivibile: digitiamo quindi cd scrivibile per spostarvici e tentiamo nuovamente il caricamento

FileZillaServer.Test.WriteAllow.jpeg

Ottimo! Ora tutto funziona come sperato. Possiamo uscire dal client con il comando bye, e verificare che il file sia stato effettivamente copiato sul server.

Client FTP grafici

Chiaramente sono disponibili client grafici molto più evoluti e pratici da usare rispetto a quello appena trattato: provate ad esempio ad aprire il vostro browser web e collegarvi a ftp://nome-utente@miopc.no-ip.org (oppure ftp://nome-utente@pc-zane o ftp://nome-utente@localhost, secondo quanto detto in apertura)

BrowserAsClient.jpeg

L'unico limite è costituito dal fatto che, dopo aver fornito le opportune credenziali d'accesso, sarà possibile scaricare i file dal server, ma non eseguire l'upload.

Potrebbe quindi essere una buona idea suggerire ai nostri contatti di utilizzare un client FTP dedicato: ne abbiamo parlato nell'articolo "Come accedere ad un server FTP".

Finito... oppure no?

Il vostro server è ora operativo, e potete già utilizzarlo per scambiare file con i sistemi remoti.

È però possibile apportare ancora migliorie e ottimizzare ulteriormente alcuni aspetti.

Abbiamo detto in apertura che uno dei vantaggi di FTP è la possibilità di esercitare un maggior controllo sugli accessi. Ma.. come fare per garantire ad un utente anonimo la possibilità di scaricare qualche file?

La risposta è la creazione di un utente "speciale": procedete alla creazione di un account come visto in precedenza, ma accertatevi di chiamarlo anonymous e lasciare disabilitata la casella di controllo Password

FileZillaServer.Anono (1).jpeg

Aprite quindi Risorse del Computer e create la consueta cartella omonima all'interno di UtentiFTP, esattamente come visto in precedenza.

Tornati a FileZilla Server, portatevi nel ramo Shared Folder, premete il solito Add in corrispondenza della lista di cartelle cui garantire l'accesso, e specificate quindi la directory appena creata.

A questo punto, andremo a restringere pesantemente i privilegi d'accesso: è buona norma infatti consentire all'utente anonimo di accedere in modalità sola-lettura, ed impedire di ottenere la lista dei file già presenti nella sua cartella utente: in altre parole, anonymous potrà scaricare solamente specifici file di cui già conosce il nome.

Per configurare i permessi in questo modo, sinceratevi che solamente Read e + Subdirs siano attive

FileZillaServer.Anono.jpeg

Chiaramente nessuno vi vieta di assegnare privilegi meno restrittivi: potete sicuramente consentire di ottenere la lista dei file presenti nella relativa cartella (privilegio List), o, addirittura, abilitarlo a scrivere ed eliminare file in una sottocartella scrivibile, come visto in precedenza. Si tratta però di una scelta che, per evidenti motivi di sicurezza, tendo a sconsigliare.

Ultimata la configurazione dell'utente nel programma, tornate alla sua cartella di entrata e realizzate un file con un nome semplice, come pippo.txt, in cui andrete ad inserire qualche riga di testo

FileZillaServer.Anono (2).jpeg

Approntato anche questo file di prova, è tutto in regola e possiamo passare a testare l'accesso.

Testare l'utente anonimo si riduce ad effettuare nuovamente la stessa procedura da riga di comando vista in precedenza, avendo solo l'accortezza di specificare anonymous come nome utente da utilizzare.

In seconda battuta, potete realizzare una seconda prova mediante il navigatore web.

Se prima ci si collegava all'indirizzo nella forma ftp://nome-utente@miopc.no-ip.org, questa volta si tenti di aprire il solo ftp://miopc.no-ip.org (oppure ftp://pc-zane o ftp://localhost, secondo quanto illustrato nelle pagine scorse):

FileZillaServer.Anono (3).jpeg

Se avete configurato i privilegi d'accesso come indicato in precedenza, il navigatore vi ritornerà un errore. È comunque normale: il browser sta infatti tentando automaticamente di ottenere la lista dei file presenti nella cartella iniziale, privilegio che abbiamo esplicitamente negato.

Come fare quindi per accedere ad un file? è indispensabile, dicevamo, conoscere il nome del documento stesso: aggiungete quindi il nome del file di prova precedentemente creato all'indirizzo e provate nuovamente.

Dovreste ora vedere il contenuto del vostro documento

FileZillaServer.Anono (4).jpeg

Come utilizzare l'account anonimo nella pratica? semplicemente, dovrete sempre indicare al vostro contatto l'indirizzo completo del file che intendete fargli scaricare.

Ad esempio, quando il mio PC è acceso, potete liberamente scaricare la mia tesi di laurea dall'indirizzo ftp://gzz.mine.nu/Tesi.pdf: il tutto è implementato appunto mediante FileZilla Server ed un account anonimo.

Fino ad ora ci siamo limitati a consentire l'accesso ad una specifica cartella. FileZilla Server consente però anche di creare degli "Alias", ovvero dei "Collegamenti" da mostrarsi ai client, grazie ai quali gli utenti remoti potranno accedere anche a file archiviati al di fuori della cartella utente, magari su unità disco differenti o addirittura dispositivi USB esterni.

A scopo dimostrativo, pensiamo di voler permettere ad un certo utente di accedere in sola lettura anche alla cartella C:\Users\Zane\Documents, di fatto la cartella dei Documenti di Windows per l'utente "Zane".

Richiamiamo per prima cosa il pannello di gestione degli utenti in FileZilla Server (quarto pulsante della barra degli strumenti), portiamoci nel ramo Shared Folder e clicchiamo sull'utente a cui desideriamo consentire l'accesso ai Documenti.

Clicchiamo ora sul pulsante Add ai piedi della lista delle cartelle cui è consentito l'accesso e aggiungiamo la suddetta C:\Users\Zane\Documents

FileZillaServer.Alias.jpeg

Poiché abbiamo detto che per questo esempio vogliamo permettere l'accesso in sola lettura, non modificheremo alcun privilegio: si noti però che, senza disabilitare + Subdirs, l'utente remoto potrà accedere liberamente anche a tutte le sotto-directory della cartella in questione.

La cartella ha ora i giusti permessi d'accesso ma, trattandosi di una directory esterna alla cartella utente, il client non ha ancora modo di raggiungerla: dovremo quindi creare un collegamento (un "alias", per usare la terminologia formalmente più corretta di FileZilla Server) a tale cartella all'interno della directory dell'utente.

Clicchiamo ora con il pulsante destro sull'elemento C:\Users\Zane\Documents della lista e selezioniamo la voce Edit aliases

FileZillaServer.Alias (1).jpeg

Ora la parte concettualmente meno immediata: dovremo infatti inserire il percorso completo per la cartella FTP dell'utente corrente (nel nostro esempio, si tratterà di d:\UtentiFTP\mr.tfm\) seguito dal nome che desideriamo assegnare all'alias: a scopo di esempio, la chiameremo AliasDocumenti.

Per quanto appena detto, andremo quindi ad immettere la stringa d:\UtentiFTP\mr.tfm\AliasDocumenti

FileZillaServer.Alias (2).jpeg

Subito dopo la conferma, notate che la colonna Alias relativa riporterà quanto appena inserito.

FileZillaServer.Alias (3).jpeg

Confermate nuovamente per uscire dalla videata di gestione degli utenti, e abbiamo concluso.

Testare l'alias

Possiamo provare la nuova funzionalità ripetendo lo stesso test già visto alle pagine precedenti: scopriremo così che l'utente remoto vede la cartella AliasDocumenti proprio come una qualsiasi altra directory, e può accedervi in modo analogo

FileZillaServer.Alias (4).jpeg

Una volta effettuata qualche prova, potete seguire le medesime istruzioni per aggiungere ogni altra cartella cui desiderate consentire l'accesso.

Se configurato con attenzione così come indicato fino ad ora, il server FTP è un applicativo che possiamo considerare "affidabile".

È però afflitto da un problema di sicurezza che potrebbe mettere in pericolo la riservatezza della comunicazione: tutti i dati viaggiano "in chiaro".

Un utente che riuscisse a sniffare ("intercettare") i pacchetti in transito, potrebbe facilmente leggere sia i documenti, sia le credenziali utilizzate per autenticarsi al server FTP stesso.

Questa possibilità può essere considerata alquanto remota fino a quando il client utilizza una rete cablata all'interno di una abitazione o un piccolo ufficio, ma costituisce un pericolo concreto in caso il computer fosse a contatto con calcolatori potenzialmente ostili o, peggio ancora, il client accedesse al server sfruttando una connessione wireless.

SSL/TLS

Per proteggere la comunicazione, è necessario abilitare una funzionalità in grado di crittografare in tempo reale i dati scambiati: in questo modo, anche in caso l'aggressore riuscisse ad intercettare i paccetti, si ritroverebbe con lunghe serie di byte privi di significato.

Per farlo, aprite nuovamente il pannello delle opzioni del server (Edit -> Settings), portatevi al ramo di opzioni SSL/TLS settings, ed abilitate la casella di controllo Enable SSL/TLS support

FileZillaServer.SSL-TLS.jpeg

Cliccate quindi sul pulsante Generate new certificate.., compilate tutti i campi richiesti (anche informazioni di fantasia vanno benissimo), indicate il percorso in cui desiderate salvare la chiave in Save key and certificare to this file e quindi completate il processo con Generate certificate

FileZillaServer.SSL-TLS (1).jpeg

Notate il valore Key size: più il numero di bit impiegato è elevato, maggiormente difficile è "craccare" a forza bruta la chiave di codifica. Poiché utilizzare chiavi crittografiche più lunghe ha però un impatto notevole sulla CPU, raccomando di utilizzare il valore di default 1024 bit, già di per sé impossibile da craccare in un tempo accettabile.

Una volta generata la chiave, i campi verranno automaticamente compilati con gli opportuni percorsi.

Compatibilità contro sicurezza

Per poter sfruttare le funzionalità crittografiche, sarà necessario collegarsi al server utilizzando un client FTP dedicato: questo significa che non potrete sfruttare questa interessante caratteristica utilizzando un browser web o l'utilità da linea di comando.

FileZilla Server consente di gestire questa situazione in due modi differenti: rifiutare le connessioni da client sprovvisti di tale caratteristica, oppure ripiegare sulla tradizionale connessione "in chiaro" in caso l'utente remoto impiegasse un programma senza supporto SSL/TLS.

Per esperienza, posso dire che la maggior parte di coloro i quali utilizzeranno il vostro FTP lo faranno via browser web. È quindi saggio, a meno che non si debbano scambiare informazioni veramente riservate, utilizzare la scelta più compatibile.

A tale scopo, sinceratevi che Allow explicit SSL/TLS on normal connections sia abilitata, di modo che qualsiasi client opportunamente configurato possa utilizzare la crittografia anche sulla porta standard, ma che Force explicit SSL/TLS sia disattivato: in caso contrario, i client meno sofisticati visualizzeranno un messaggio d'errore simile a questo

FileZillaServer.SSL-TLS (2).jpeg

Fortemente consigliato abilitare Force PROT P...: come illustrato dallo sviluppatore in questa discussione, tale opzione costringe i client a stabilire connessioni sicure non solo per quanto riguarda la control connection, ma anche per quella che veicola i dati veri e propri.

Cancellate infine il numero di porta proposta in Listen for SSL/TLS-only...: poiché i client dotati delle opportune funzionalità potranno utilizzare la crittografia già sul canale standard, non v'è infatti bisogno di utilizzare, rilanciare ed aprire alcun ulteriore socket.

Potete ora confermare e tentare di collegarvi.

Testare il servizio

Come già notato in precedenza, sarà necessario utilizzare un client dedicato per avvalersi della connessione sicura.

Dopo averne scelto uno, procedete a configurarlo per collegarsi al vostro server utilizzando FTPES - FTP over explicit TLS/SSL (i passaggi sono differenti a seconda del software impiegato).

Con tutta probabilità, il client mostrerà un avviso simile a questo:

FileZillaServer.SSL-TLS (3).jpeg

Confermate e non ve ne preoccupate: è tutto regolare, poiché stiamo utilizzando un certificato SSL "fatto in casa", e non rilasciato da una vera Certification Authority.

A questo punto, dovreste poter accedere al server: verificate solamente nell'interfaccia di FileZilla Server che sia presente un comando AUTH TLS

FileZillaServer.SSL-TLS (4).jpeg

Avrete così la sicurezza che tutte le informazioni scambiate d'ora in avanti saranno al riparo da occhi indiscreti.

Forzare SSL/TLS per alcuni account

Se desiderate avere la certezza che taluni account possano essere utilizzati solamente in modo sicuro (quello di amministratore con accesso totale al sistema, ad esempio), potete abilitare l'opzione Force SSL for user login disponibile nel ramo General della videata di gestione degli utenti

FileZillaServer.SSL-TLS (5).jpeg

Tutti i client che provassero ad usare tale utente su connessione "in chiaro", verranno immediatamente respinti.

Siamo arrivati alla fine di questo lungo articolo. Se mi averete seguito fino a qui, avrete a disposizione un server FTP potente, sicuro, veloce quanto basta da non disturbare la navigazione della postazione stessa, accessibile sia da browser web, sia con client dedicati, sia disponendo di opportune credenziali, sia in maniera anonima.

I complimenti sono quindi d'obbligo!

Cosa fare in caso di problemi

FileZilla Server è un software particolarmente stabile e ben realizzato. Il protocollo FTP stesso, dal canto suo, risale al 1985 ed è quindi ben rodato.

In caso di problemi quindi, vi sono ottime possibilità che siano localizzati o nella configurazione del server o, ancora più probabile, nella configurazione della rete.

La prima cosa da capire è se collegandovi dalla stessa macchina su cui è in esecuzione il server (ftp localhost da linea di comando oppure ftp://nome-utente@localhost da navigatore web) riuscite ad avere accesso.

In caso negativo, provate a verificare attentamente il messaggio di errore: dovete capire in particolare se il server stesso non risponde (e quindi o il processo del server non è in esecuzione o vi è un firewall particolarmente aggressivo che blocca la porta) oppure se il server risponde ma vi nega l'accesso (quindi dovrete agire sulla configurazione del programma).

Nell'eventualità che l'accesso locale funzioni, ma quello dagli alri PC no, allora si tratterà di un errore nella predisposizione del router: tornate alla pagina "Configurare la rete" ed eseguite nuovamente tutti i passaggi.

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati