back to top

Installare un server FTP con proFTPD

Tra le funzioni più comuni richieste ad un server c’è sicuramente quella di trasferire file da e verso i propri client. Il protocollo principale per il trasferimento di file è FTP (File Transfer Protocol), nel quale sicuramente tutti noi ci siamo imbattuti almeno una volta.

All’interno della nostra guida alla configurazione di un server Linux, ovviamente, non potevano mancarte delle lezioni relative all’implementazione di un servizio FTP. Vediamo, di seguito, un po’ di teoria prima di passare alla pratica.

FTP: un po’ di teoria

Prima di tuffarci nell’installazione del software, approfondiamo più nel dettaglio cosa succede in una tipica sessione FTP.

Per prima cosa il client deve fornire il nome o l’indirizzo del server con il quale vuole comunicare, passandogli poi anche le credenziali di autenticazione per ottenere le autorizzazioni a scambiarsi dati con esso (anche se, come vedremo, questo non è sempre obbligatorio).

L’utente interagisce con il server FTP tramite un client software, sia questo grafico o con terminale a carattere.

ftp

Il protocollo FTP utilizza due connessioni TCP parallele: connessione di controllo (control connection) e connessione dati (data connection).

La prima è utilizzata per le funzioni di controllo come l’invio di username e password del client, l’invio di comandi per il download o l’upload dei file, l’invio di comandi per muoversi all’interno delle directory remote e altro.

Il secondo canale di connessione invece è quello utilizzato per il vero e proprio scambio di dati.

Quando un utente apre una sessione FTP con un server remoto, come prima cosa il client inizializza una connessione di controllo con il server sulla porta TCP numero 21.

A questo punto, il server che ha ricevuto sulla connessione di controllo un comando di trasferimento file, inizializza con il client una connessione dati TCP.

connessioni

FTP invia un file per ogni connessione dati. Ad ogni successivo trasferimento, viene aperta una ulteriore connessione dati. Se, nel corso della stessa sessione, l’utente volesse trasferire un altro file, FTP aprirebbe infatti una ulteriore connessione dati.

Notiamo quindi che, mentre la connessione di controllo rimane aperta per l’intera durata della sessione client, si crea invece una nuova connessione dati per ogni file trasferito, ed è per questo che le connessioni dati sono dette non persistenti.

A differenza di quanto accade con HTTP, per tutto l’arco di una sessione il server FTP deve mantenere lo stato dell’utente.

Installare ProFTPD

In questa guida andremo a installare e configurare un server FTP sul nostro server Ubuntu Linux.

Esiste una vasta gamma di server FTP per ogni sistema operativo, e ovviamente Linux non fa eccezione.

Per questa guida la scelta ricade su ProFTPD, un software scritto per sistemi operativi Unix-like ampiamente utilizzato e, come vedremo, molto flessibile grazie alla sua modularità. Rispetto alle installazioni classiche, dove gli utenti che usufruiscono del servizio FTP sono utenti di sistema, in questa guida utilizzeremo utenti virtuali registrati sul fedele database MySQL, seguendo quindi la filosofia adottata anche nell’installazione di Postfix nella precedente parte della nostra guida.

Questo approccio, oltre ad essere più performante, ci permetterà di gestire un gran numero di utenti in modo veloce e ben organizzato.

Procedura d’installazione

Per procedere all’installazione del nostro server FTP abbiamo bisogno di aver già installato sulla nostra macchina MySQL e, per pura comodità, il software di gestione phpMyAdmin. Se avete seguito la nostra guida sin dall’inizio, i pacchetti necessari dovrebbero già essere installati e funzionanti.

Una volta fatte le opportune verifiche circa la presenza di MySQL e phpMyAdmin, possiamo procedere con l’installazione del software oggetto della nostra guida: proftpd.

Oltre al pacchetto base, aggiungiamo all’installazione anche il pacchetto proftpd-mod-mysql che contiene i moduli personalizzati per l’integrazione con il databse:

sudo apt-get install proftpd-mod-mysql

Ci viene richiesto in quale modalità vogliamo installare il nostra server FTP. Selezioniamo standalone (autonomo nella traduzione italiana).

standalone
Pubblicitร