FTP (File Transfer Protocol) è uno dei primi protocolli di Internet (la RFC 959 è stata rilasciata nel 1985!). È stato utilizzato per distribuire i file ancor prima che il Web nascesse (il protocollo HTTP è stato creato nel 1990 e formalmente definito nella sua versione 1.0 dalla RFC 1945 rilasciata nel 1996).
Questo protocollo consente sia caricamento che lo scaricamento di file: per questa ragione è ancora largamente utilizzato per rilasciare aggiornamenti ad un sito internet ospitato presso un servizio di provider Internet (o qualsiasi altra entità che ospita siti web). In questi casi l'accesso è permesso mediante l'uso di un identificativo utente ed una password. Dopo l'autenticazione il server FTP garantisce l'accesso in lettura e scrittura alla directory home dell'utente.
Altri server FTP vengono impiegati principalmente per distribuire file scaricabili dal pubblico (i pacchetti di Debian sono un buon esempio). Il contenuto di questi server è recuperato da altri server lontani geograficamente che a loro volta rendono disponibili i file agli utenti a loro più prossimi. Questo significa che l'autenticazione del client non è richiesta: conseguentemente questa modalità operativa è conosciuta come "FTP anonimo". Per essere precisi i client si autenticano con il nome utente anonymous
e spesso, per convenzione, la password impiegata è l'indirizzo email dell'utente, anche se il server lo ignora.
Molti server FTP sono disponibili in Debian (ftpd(-ssl), proftpd-basic, pure-ftpd e così via) e forniscono tutti il pacchetto virtuale ftp-server. Notare che il pacchetto pyftpd è stato rimosso da Debian poiché non è più mantenuto attivamente e perché è incompatibile con Python 3. Gli amministratori della Falcot Corporation hanno scelto vsftpd perché utilizzano il server FTP unicamente per distribuire alcuni file (incluso un repository dei pacchetti Debian); dato che non necessitano di funzionalità avanzate, hanno scelto di concentrarsi sugli aspetti di sicurezza.
Installando il pacchetto viene creato un utente di sistema ftp
. Questo account viene utilizzato per le connessioni FTP anonime, e la sua directory home (/srv/ftp/
) è la radice dell'albero reso disponibile agli utenti che si collegano al servizio. La configurazione predefinita (in /etc/vsftpd.conf
) richiede alcune modifiche per soddisfare il semplice bisogno di rendere disponibili file di grandi dimensioni per il download pubblico: l'acesso anonimo deve essere abilitato (anonymous_enable=YES
) e l'accesso in sola lettura degli utenti locali deve essere disattivato (local_enable=NO
). Quest'ultima è particolarmente importante dal momento che il protocollo FTP non usa alcuna forma di crittografia e la password utente potrebbe essere intercettata.
È possibile accedere alle risorse FTP e FTPS con diversi client, con o senza interfaccia grafica, ed è anche possibile montarle localmente usando il comando curlftpfs
dall'omonimo pacchetto.