FTP (File Transfer Protocol) è un protocollo di rete utilizzato per trasferire file tra computer attraverso una connessione di protocollo di controllo della trasmissione/protocollo Internet (TCP/IP). All’interno della suite TCP/IP, l’FTP è considerato un protocollo di livello applicativo. In una transazione ftp-server, il computer dell’utente finale è solitamente chiamato localhost. Il secondo computer coinvolto in un FTP è un host remoto, di solito un server.
Entrambi i computer devono essere collegati in rete e configurati correttamente per il trasferimento di file tramite FTP.
I server devono essere configurati per eseguire i servizi FTP e il client deve installare il software FTP per accedere a tali servizi.
Sebbene molti trasferimenti di file possano essere eseguiti utilizzando l’Hypertext Transfer Protocol (HTTP), un altro protocollo della suite TCP/IP, l’FTP è ancora tipicamente utilizzato per i trasferimenti di file back-end per altre applicazioni, come i servizi bancari.
A volte viene utilizzato anche per scaricare nuove applicazioni attraverso i browser Web.
Come funziona un ftp-server?
FTP è un protocollo client-server che si basa su due canali di comunicazione tra client e server: il canale dei comandi per gestire la conversazione e il canale dei dati per trasferire il contenuto dei file.
Di solito l’utente deve effettuare il login a un ftp-server, anche se alcuni server forniscono l’accesso a parte o a tutto il loro contenuto senza login, un modello noto come FTP anonimo.
Il client inizia la conversazione con il server quando un utente richiede il download di un file.
Utilizzando l’FTP, un client può caricare, scaricare, cancellare, rinominare, spostare e copiare file su un server.
Dopo che il client ha avviato la sessione attraverso la richiesta in una riga di comando, il server stabilisce una connessione dati con il client e inizia a trasmettere i dati.
Il server utilizza un canale di comando per inviare le informazioni necessarie al client per aprire un canale di dati.
Poiché la modalità passiva consente al client di avviare tutte le connessioni, funziona bene attraverso i firewall e i gateway di traduzione degli indirizzi di rete.
Gli utenti possono utilizzare l’FTP attraverso una semplice interfaccia a riga di comando, dalla console o dalla finestra del terminale su Microsoft Windows, Apple macOS o Linux, oppure attraverso un’interfaccia grafica specializzata.
Anche i browser Web possono funzionare come client FTP.
Caratteristiche del ftp-server
L’FTP è un protocollo di rete standard che consente ampie capacità di trasferimento di file su reti IP.
Senza ftp-server, i trasferimenti di file e dati potrebbero essere gestiti attraverso altri meccanismi, come la posta elettronica o un servizio HTTP basato sul Web, ma queste altre opzioni non hanno l’attenzione, la precisione e i controlli chiari che offre l’FTP.
L’FTP può essere utilizzato dai servizi di backup o dai singoli utenti per eseguire il backup dei dati da una singola posizione a un server di backup protetto che esegue un servizio FTP.
Simile al backup, la replica comporta la copia dei dati da un sistema all’altro, ma adotta un approccio più olistico per garantire un’elevata disponibilità e durata.
Anche l’FTP può essere utilizzato per facilitare questa operazione.
L’FTP viene utilizzato anche per accedere ai servizi di web hosting condiviso e ai servizi cloud, in quanto serve come meccanismo per caricare i dati su un sistema remoto.
Questa è la forma più elementare di FTP.
Fornisce un supporto per la trasmissione di dati senza crittografia dei dati, né l’uso di nomi utente e password.
Viene utilizzato soprattutto per caricare materiali che possono essere distribuiti senza restrizioni.
È anche un servizio FTP di base, ma richiede un nome utente e una password, anche se il servizio potrebbe non essere crittografato o protetto.
Altri aspetti
È disponibile anche sulla porta 21.
Talvolta chiamata ftp-server (FTP-SSL), questa tecnica consente di utilizzare la sicurezza del livello di trasporto (TLS) una volta stabilita la connessione FTP.
FTPS è stato originariamente utilizzato per fornire una forma più sicura di trasmissione dei dati su FTP.
Di solito utilizza la porta 990 per impostazione predefinita.
Questa tecnica consente il supporto esplicito di TLS, aggiornando la connessione FTP sulla porta 21 a una connessione crittografata.
È l’approccio comunemente utilizzato dai servizi Web e di condivisione dei file per consentire trasferimenti di file sicuri.
Tecnicamente non è il protocollo FTP, ma funziona in modo simile. L’SFTP è piuttosto un sottoinsieme del protocollo Secure Shell (SSH), che viene eseguito sulla porta 22.
SSH è generalmente utilizzato dagli amministratori di sistema per l’accesso remoto e sicuro a sistemi e applicazioni, mentre SFTP fornisce un meccanismo all’interno di SSH per trasmettere file in modo sicuro.
FTP è stato definito originariamente nel 1971, prima di TCP e IP, e da allora è stato rivisto più volte per adattarsi alle nuove tecnologie, compreso l’uso con TCP/IP, o Requests for Comments 765 e RFC 959, e IPv6, o RFC 2428.
Anche FTP è stato sottoposto a diversi aggiornamenti per migliorarne la sicurezza.
Sicurezza


Per impostazione predefinita, ftp-server non cripta il traffico e i malintenzionati possono catturare i pacchetti per leggere i nomi degli utenti, le password e altri dati.
La crittografia dell’FTP tramite FTPS o FTPES protegge i dati e limita la possibilità per gli aggressori di ascoltare la connessione e rubare i dati.
L’FTP può comunque essere vulnerabile agli attacchi brute-force per l’uso non autorizzato/la verifica della password, agli attacchi FTP-bounce o agli attacchi distributed denial-of-service.
Nascita del ftp-server
La prima specifica FTP fu pubblicata il 16 aprile 1971, sotto forma di RFC 114, da Abhay Bhushan, all’epoca studente del Massachusetts Institute of Technology.
L’idea iniziale di ftp-server era quella di consentire la trasmissione di file su ARPANET, un predecessore di Internet. Con la nascita della moderna Internet, le specifiche di FTP furono sottoposte a una serie di revisioni per conformarsi agli standard di rete, tra cui il TCP/IP.
Nel 1980, una nuova versione di FTP fu definita nell’RFC 765 da Jon Postel, allora borsista presso l’Institute for the Study of the Information Sciences della University of Southern California.
Cinque anni dopo, l’FTP è stato nuovamente ridefinito nell’RFC 959, che ha introdotto nuove funzionalità di gestione del protocollo, tra cui la possibilità di creare e cancellare una directory di file.
Le precedenti iterazioni di FTP erano in gran parte limitate allo spostamento di file all’interno e all’esterno di strutture di directory esistenti.
Nel 1997, l’RFC 959 è stato aggiornato con le nuove caratteristiche definite nell’RFC 2228, che prevedevano funzioni di sicurezza.
Due anni dopo, l’FTP è stato aggiornato con la RFC 2428 per supportare i protocolli IPv6. I client FTP sono utilizzati per scaricare, caricare e manipolare i file sul server.
Questo è un altro client FTP per Windows che supporta SSH.