Capitolo 15. FTP

File Transfer Protocol (FTP) è uno dei protocolli più vecchi e usati in Internet. Il suo compito è quello di trasferire i file tra host su di una rete in modo sicuro, senza richiedere all'utente di eseguire un log direttamente nell'host remoto o di sapere come usare il sistema remoto. Esso permette agli utenti di accedere i file su sistemi remoti, usando un insieme di comandi molto semplici.

Questo capitolo riporta le informazioni di base del protocollo FTP, insieme con le opzioni di configurazione per il server FTP primario presente con Red Hat Enterprise Linux, vsftpd.

15.1. Il File Transport Protocol

FTP usa un'architettura server client per trasferire i file usando il protocollo di rete TCP. Poichè FTP è un protocollo più vecchio, viene usato un metodo di autenticazione password e nome utente non cifrato. Per questa ragione, viene considerato un protocollo non sicuro, e dovrebbe essere usato solo se necessario. Un sostituto idoneo per FTP è sftp, dalla suite OpenSSH dei tool. Per informazioni su come configurare OpenSSH, consultare il capitolo intitolato OpenSSH in Red Hat Enterprise Linux System Administration Guide. Per informazioni sul protocollo SSH, consultare Capitolo 20.

Tuttavia, poichè FTP è prevalentemente presente su Internet, viene richiesto spesso di condividere alcuni file con il pubblico. Gli amministratori del sistema, dovrebbero essere a conoscenza delle caratteristiche uniche del protocollo FTP.

15.1.1. Porte multiple, Modalità multiple

Diversamente dai protocolli usati su Internet, FTP necessita di porte di rete multiple per funzionare in modo corretto. Quando una applicazione del client FTP inizia un collegamento ad un server FTP, verrà aperta sul server la porta 21 — conosciuta come porta di comando. Questa porta viene usata per emettere tutti i comandi al server. Qualsiasi dato richiesto dal server, viene ritornato al client tramite una porta dati. Il numero della porta per i collegamenti dei dati e il modo con il quale i suddetti collegamenti vengono inizializzati, varia a seconda se il client richiede i dati in modalità attiva o passiva.

Di seguito viene riportata la descrizione delle suddette modalità:

modalità attiva

La modalità attiva è il metodo originale usato dal protocollo FTP per il trasferimento dei dati all'applicazione del client. Quando il trasferimento dei dati della modalità attiva viene iniziato dal client FTP, il server apre un collegamento dalla porta 20 sul server per l'indirizzo IP, e una porta non privilegiata randomica (maggiore di 1024) specificata dal client. Questo significa che la macchina del client deve essere abilitata ad accettare i collegamenti attraverso qualsiasi porta al di sopra di 1024. Con la crescita delle reti non sicure, come ad esempio Internet, l'uso dei firewall per proteggere le macchine dei client è molto importante. Poichè questi firewall spesso impediscono i collegamenti in entrata provenienti dai server FTP in modalità attiva, è stato ideata la modalità passiva.

modalità passiva

La modalità passiva, come quella attiva, viene iniziata dall'applicazione client FTP. Quando si richiedono dati al server, il client FTP indica che desidera accedere ai dati in modalità passiva, e il server fornisce l'indirizzo IP e una porta non privilegiata e randomica (maggiore di 1024) sul server stesso. Il client si collega sulla porta presente sul server, per scaricare le informazioni richieste.

Anche se la modalità passiva risolve le problematiche dovute all'interferenza dei firewall con i dati di collegamento, tale modalità può complicare la gestione dei firewall del server. Limitando la gamma di porte non privilegiate offerte per i collegamenti passivi nel file di configurazione del server FTP, rappresenta un modo per limitare il numero di porte aperte su di un server, e semplifica il compito di creazione delle regole del firewall per il server. Consultare la Sezione 15.5.8 per maggiori informazioni su come limitare le porte passive.