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 l'invio che la ricezione di file: per questa ragione è ancora largamente utilizzato per applicare aggiornamenti a siti internet ospitati presso un provider Internet (o qualsiasi altra entità che ospita siti web). In questi casi l'accesso è reso sicuro dall'impiego 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, proftpd, wu-ftpd e così via). 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.