Configurare un server FTP con IIS

Pannello di Controllo di IIS 7
Pannello di Controllo di IIS 7

Il File Transfer Protocol è una pietra miliare di Internet. Dai primi anni ’70 ci da la possibilità di condividere i nostri file, di accedere alle reti aziendali, e sebbene il protocollo abbia subito dei miglioramenti nel corso del tempo, il suo funzionamento di base è incredibilmente affidabile.

Ancora oggi molte aziende si affidano al protocollo FTP per accedere a determinate aree di condivisione file, o creano un fileshare accessibile anche dall’esterno. Il cloud non è ancora riuscito a scalfire questo affidabilissimo sistema di scambio, che per ora rimane più sicuro per diversi aspetti. Uno dei vantaggi è la facile configurazione di un’area FTP sul proprio server, indipendentemente da che s.o. si utilizzi.

Oggi vediamo come configurare un server FTP sul proprio Windows Server 2008. Va detto che comunque le procedure sono estremamente simili anche per Windows Server 2003 o 2012, in quanto cambia semplicemente il pannello di controllo di IIS (che può essere alla versione 6, alla 7 o alla 7,5), ma fondamentalmente i passaggi per una corretta creazione sono gli stessi.

Installiamo il ruolo:

La prima cosa da fare è installare il ruolo sul proprio server. Se volete utilizzare l’utility per FTP fornita da Microsoft, dovrete necessariamente installare il web server IIS, che contiene un modulo dedicato al protocollo che ci serve. In realtà il server FTP non è strettamente collegato al web server, dato che poi andremo a scegliere manualmente la directory, ma è stato pensato così. Non possiamo far altro che accettare, installare il web server e, se non ci servisse, piazzarci dentro una pagina vuota o un redirect, o comunque renderlo privato/inaccessibile.

Per installare il ruolo, apriamo il Server Manager, clicchiamo su Ruoli e poi scegliamo Aggiungi Ruolo sulla destra. Scegliamo Web Server (IIS) e clicchiamo avanti. Nei servizi del ruolo cerchiamo FTP Publishing Service e selezioniamolo. A questo punto, confermiamo ed aspettiamo che l’installazione finisca. Generalmente, dopo l’installazione sarebbe meglio fare un riavvio per non incontrare errori imprevisti.

Se avevate già installato IIS per qualunque motivo, vi basta aprire il menù di Ruoli e cliccare su Web Server. Scorrete in basso, finché sulla destra non vedrete Aggiungi Servizio Ruolo. Cliccateci, e scegliete sempre FTP Publishing Service. È sempre bene fare un riavvio.

Dopo il riavvio, se non sono stati visualizzati errori, l’installazione del server FTP è andata a buon fine! 🙂 Ora dobbiamo configurarlo.

Creare un’area FTP:

Per gestire le nostre aree FTP (possiamo crearne anche più di una su un singolo server) esiste uno snap-in apposito. Per trovarlo, vi basta andare in Server Manager, dal menù scegliere Ruoli, e sotto cliccare sul menù espandibile di Web Server (IIS). Apparirà la voce Internet Information Service (IIS) Manager, cliccandoci avremo la nostra nuova pagina sulla destra. Espandendo il contenuto cliccando sul nostro nome server, vedremo la voce FTP Sites. Cliccandoci sopra, con IIS 7+ verrà caricato lo snap-in, con le versioni inferiori invece troveremo un collegamento allo snap-in esterno.

Una volta aperto lo snap-in, clicchiamo sul nostro nome server, e comparirà la cartella Siti FTP. Troveremo anche un sito di prova, ossia il Default FTP Site, che possiamo tranquillamente cancellare (o usare per fare delle prove).

Mettiamo il caso che vogliamo creare una nuova area. Clicchiamo con il tasto destro sulla cartella Siti FTP, e dal menù scegliamo Nuovo -> Sito FTP. Avremo a disposizione un semplice ed intuitivo wizard, che ci guiderà passo passo nella creazione della nostra area.

  • Per prima cosa dovremo dare un nome alla nostra area. Se questa è privata (di semplice utilizzo aziendale) è norma utilizzare il nome dell’azienda (o il nome server), ma ovviamente potete scegliere come meglio credete.
  • Dopo aver deciso il nome, dovremo definire IP e porta da utilizzare. Possiamo assegnare all’area l’IP della macchina, o scegliere tutti gli IP liberi. Questa è una scelta personale, anche se di norma è bene usare l’IP della macchina (che è uno, difficilmente modificabile sopratutto per le macchine in produzione e facilmente ricordabile). Subito sotto, il numero della porta. Se dovete creare un’area semplice, lasciate tranquillamente la 21.
  • Il concetto di User Isolation può mandare in tilt qualcuno. Si può avere la necessità di creare una cartella personale per ogni utente che ha l’accesso via FTP. A livello aziendale, per un file share semplice, è una funzionalità non strettamente necessaria, ma lo diventa quando si deve creare un FTP per, ad esempio, un sito di hosting, con molti siti su una singola macchina. Personalmente, per reti che devono solo fungere come condivisione file, scelgo sempre l’opzione Non isolare gli utenti. In questo modo, tutti gli utenti si loggheranno via FTP in una cartella comune, vedendo le varie directory condivise, alle quali potranno o non potranno accedere. La scelta ovviamente dipende dalle necessità, e le opzioni sono:
  1. Non isolare gli Utenti: Tutti gli utenti che accedono via FTP accederanno nella stessa directory, vedranno le stesse cartelle ecc.
  2. Isola gli Utenti: Ogni utente che accederà via FTP accederà ad una sua personale cartella, privata e non accessibile da nessun altro. Può comunque spostarsi nelle aree condivise. Le cartelle si assegnano dallo snap-in per la gestione FTP.
  3. Isola gli Utenti usando l’Active Directory: Come sopra, ma le cartelle utente verranno assegnate dall’Active Directory e non lo snap-in per la gestione FTP.
  • Dopo aver scelto l’opzione che più vi aggarba, dovrete inserire il path della vostra area FTP.  Detto in termini più semplici, dovete creare una cartella che sarà la radice del vostro FTP. Potete crearla ovunque, sul disco C, D, su un HD esterno o su una pennetta USB. Generalmente, dopo aver creato la radice tutte le cartelle dell’FTP verranno collocate all’interno, quindi se avete (o preventivate di avere) una grande quantità di file, scegliete bene la posizione! Solo se scegliete l’opzione con la AD dovrete prima selezionare un utente in grado di sfogliare la directory.
  • Ultima operazione necessaria è la scelta dei permessi di base. Di default Windows ci propone diritti di sola lettura, che permetteranno dunque agli utenti di accedere alla radice ma di non creare/cancellare/spostare nulla! Generalmente, è bene lasciare solo i permessi per la lettura.
  • E poi… finito! 🙂

Dopo aver completato il wizard, comparirà il nostro Sito FTP nello snap-in. Da qui noi potremo configurare e gestire al meglio le opzioni che determinano l’accesso e le utente nella nostra area.

Configurare l’area:

La configurazione dell’area FTP è abbastanza vasta, nel senso che oltre alle personalizzazioni di base (messaggi, connessioni massime ecc.) c’è anche il discorso dei permessi utenti e la creazione delle directory. Se avete scelto l’opzione Non Isolare gli Utenti, ci sarà molto meno lavoro da fare. Se invece avete scelto di isolare gli utenti, dovrete andare a creare necessariamente le home directory per ogni utente che vorrete fare loggare, altrimenti questo continuerà a ricevere una serie di errori (530) e non riuscirà ad accedere.

Proprietà del Sito:

Cliccando con il tasto destro sul nostro Sito FTP, abbiamo un paio di cose da configurare. Prima di tutto, clicchiamo su Proprietà, da dove possiamo sbrigarci delle semplici personalizzazioni.

  • Nella scheda Sito FTP possiamo modificare il nome del nostro sito FTP, cambiare l’IP o la porta. Possiamo anche decidere il numero massimo di connessioni, oltre che il formato dei log.
  • Nella scheda Sicurezza Account possiamo attivare o disattivare i login anonimi. Questo consiste nell’offrire la possibilità di accedere all’area senza disporre di un username o di una password. In alcuni contesti può tornare utile, altrimenti va disabilitato!
  • Nella scheda Messaggio possiamo personalizzare i messaggi che visualizzeranno gli utenti quando si collegano o si disconnettono dal server FTP. Il Banner è un messaggio che viene visualizzato quando si stabilisce la prima connessione con il server, e generalmente ci si scrive dentro qualche informazione (o avvertimento), o il nome dell’azienda. I campi Benvenuto ed Uscita sono facilmente comprensibili, mostrano un messaggio quando l’utente si collega correttamente e quando si disconnette.
  • Nella scheda Home Directory possiamo definire quale sia il percorso della nostra area FTP. Possiamo ad esempio cambiare l’area FTP inserendo un altro percorso, e definire i permessi che gli utenti avranno nell’area. Possiamo decidere se tenere i log delle connessioni, ed anche lo stile di visualizzazione della directory.
  • L’ultima scheda, Sicurezza Directory, può essere lasciata perdere se si decide di impostare una serie di permessi e restrizioni sugli utenti. Da qui, possiamo decidere se garantire o negare l’accesso a chiunque, e poi impostare delle restrizioni/eccezioni in base ad un IP. Se sapete di avere un utente malandrino ad esempio, potete bloccargli la connessione dalla sua postazione.

Finita questa prima parte, salviamo le modifiche e chiudiamo la finestrella.

Definire i Permessi:

I permessi di accesso all’area FTP sono molto simili alle condivisioni di Windows. Possiamo decidere quali utenti (sia locali che di dominio) fare accedere all’area, e con quali permessi. Ad esempio l’utente ftp0 può accedere con full control, mentre l’utente ftp1 ha solo i diritti di lettura.

La definizione dei permessi si può fare cliccando con il tasto destro sul nostro Sito FTP, e scegliendo l’opzione Permessi. La distribuzione dei permessi è a cascata, quindi l’utente avrà gli stessi permessi di accesso su tutte le sottocartelle della vostra area, salvo poi modifiche a singole cartelle.

Nell’area FTP possono accedere utenti locali e di dominio (oltre a quelli anonimi), quindi l’impostazione è a vostra discrezione e necessità. Si può creare un gruppo nella directory oppure dare i permessi per ogni singolo utente, o ancora creare diversi gruppi con differenti criteri di accesso.

Creare le Virtual Directory:

Dopo le prime impostazioni basilari, è il momento di creare le varie directory dell’area FTP. Stiamo parlando, molto semplicemente, delle cartelle che verranno visualizzate durante la connessione FTP, dalle quali potremo prelevare o inviare file. Non basta semplicemente creare delle sotto directory nel percorso principale della nostra area, sarebbe stato troppo semplice :)Infatti è il gestore FTP che “comanda” ques’area. Creare le cartelle non vuol dire che queste sono automaticamente associate all’area FTP. Dobbiamo pertanto usare lo snap-in per collegare una posizione effettiva, una cartella che si trova sul nostro HD, nell’area FTP. Il vantaggio delle virtual directory, e che non è necessario che la cartella che vogliamo rendere disponibili via FTP si trovino come sottocartelle dell’area FTP! Infatti, possiamo collegare una qualunque cartella, indipendentemente dove si trovi.

Dopo aver definito la struttura delle directory, e creato fisicamente le cartelle, dobbiamo tornare nello snap-in per la gestione dell’area FTP. Selezioniamo il nostro Sito FTP, clicchiamoci sopra con il tasto destro e scegliamo Nuovo -> Directory Virtuale. Vedremo comparire nuovamente il wizard, che ci semplifica di molto le cose.

  • La prima cosa che dovremo definire è l’Alias della directory. Questo non deve essere necessariamente il nome effettivo della cartella, possiamo anche usare altri nomi. Questo sarà il nome visualizzato dall’utente che si collega via FTP!
  • Subito dopo ci verrà chiesto il Path della directory. Ci basta cliccare sul bottone Cerca e scegliere quale cartella collegare a quell’Alias.
  • Infine, abbiamo nuovamente la possibilità di impostare i permessi di base per questa singola cartella.

Finito il wizard, abbiamo creato una cartella accessibile via FTP. In automatico, questa ha ereditato eventuali permessi impostati precedentemente, e possiamo sempre, cliccandoci sopra con il tasto destro e scegliendo Permessi, impostare autorizzazioni o restrizioni aggiuntive.

Configurare il Firewall:

Questa è la parte che può crearvi più noie. Tecnicamente, basta aprire la porta 21 (o la porta che scegliete di usare), ma non sempre basta questa semplice operazione.

Di default, i server FTP vengono impostati in modalità PASV (Passive Mode), per semplificare le connessioni lato client. Questa modalità utilizza un range di porte ulteriori, che vengono utilizzate in modo casuale ad ogni connessione. In pratica, dobbiamo aprire queste porte sul nostro Firewall, altrimenti non ci si riuscirà mai a connettere! In alternativa, possiamo anche buttare giù il firewall 😀
Ogni versione di IIS ha un suo range di porte passive preimpostate. Per andare sul sicuro, generalmente si apre dalla 5500 alla 5700 TCP.Potete mettervi ed aprire le porte una alla volta, oppure aprire il prompt dei comandi e dare questi comandi:

 1) cd ..
 2) cd ..
 3) cd inetpub
 4) cd AdminScript
 5) adsutil.vbs set /MSFTPSVC/PassivePortRange "5500-5700"
 6) FOR /L %I IN (5500,1,5700) DO netsh firewall add portopening TCP %I "Passive FTP"%I

I comandi vanno dati uno alla volta! I primi 4 ci fanno spostare nella cartella che contiene il file adsutil.vbs, che è un file di configurazione che verrà letto poi dal gestore FTP. L’ultimo comando invece avvia l’apertura delle porte nel firewall, in modo da non doverle inserire tutte manualmente. Un bel lavoro risparmiato!Va comunque detto che il range di porte passive può essere deciso manualmente! Quindi, volendo, potete usare dalla 60000 alla 70000, e così via 🙂 Il numero delle porte dipende da quante connessioni vi aspettate di avere: più connessioni vuol dire più porte! Se avete una rete di modeste dimensioni, basta aprirne un paio di migliaia.

Riavvio e prima connessione:

Dopo aver fatto tutte queste attività, ci siamo! Serve un riavvio del server, mettetevi l’anima in pace. Al riavvio, assicuratevi che il servizio FTP sia partito (potete avviarlo/stopparlo manualmente dallo snap-in, oppure dai Servizi), in caso contrario avviatelo manualmente e impostatelo come avvio automatico.

Da un client in rete, avviamo il nostro programma FTP (ad es. FileZilla), ed avviamo la connessione. Ricordiamo ai più che:

  • Se il login si effettua con un utente locale, basterà scrivere il suo nome utente (ad es. ftp0) e la sua passowrd;
  • Se il login si effettua con un utente di dominio, bisogna scrivere il nome del dominio prima del nome utente (ad es. azienda\ftp0) e la sua password;

Vedrete scorrere in alto il Banner che avete impostato, e i vari messaggi di richiesta user e password. Se tutto è stato configurato correttamente, riuscirete a loggarvi al primo tentativo! In caso contrario, i vari codici errori vi verranno in aiuto per risolvere il problema 🙂

Ci si potrà collegare dalla rete locale, e se la macchina dispone di un indirizzamento IP pubblico, anche da remoto. Che siate al bar con il vostro smartphone, o a casa a godervi un film, qualunque dispositivo oggi può connettersi via FTP. Si può fare direttamente via browser! Non avete più scuse se non avete a disposizione un file 😛

Come avete visto, creare e configurare un’area FTP sul proprio Windows Server è veramente semplice. Nell’arco di una giornata si può letteralmente mettere su un’area valida, versatile e accessibile. Inoltre, il protocollo è veramente funzionale, molto più di tanti servizi cloud o di fileshare che stanno uscendo ultimamente.

Questa guida è impostata per la creazione di un’area FTP senza User Isolation, ma può essere presa come spunto per tutte le installazioni sotto Win Server. Enjoy 😀

  • gianky

    H difficolta ad impostare username e password del cliente che si connette da filezilla

    • Ciao,
      potresti spiegarti meglio? Che impostazione hai usato? Ti da errori?
      🙂

  • Alessio Ferruzzi

    Ciao quando do il comando cd AdminScript mi dice Impossibile trovare il percorso specificato. come mai?

    • Ciao,
      su che versione di Windows Server?