IL SOFTWARE
Articoli, tips, recensioni e news sul mondo del software

FTP (File Transfer Protocol )

 
Il File Transfer Protocol (FTP) (protocollo di trasferimento file), è un Protocollo per la trasmissione di dati tra host  basato su TCP.

FTP è uno dei primi protocolli definiti ed ha subito una lunga evoluzione negli anni. La prima specifica, sviluppata presso il MIT, risale al 1971 (RFC-114). L'attuale specifica fa riferimento all' RFC-959.

Gli obiettivi principali di FTP descritti nella sua RFC ufficiale sono:

    * Promuovere la condivisione di file (programmi o dati)
    * Incoraggiare l'uso indiretto o implicito di computer remoti.
    * Risolvere in maniera trasparente incompatibilità tra differenti sistemi di stoccaggio file tra host.
    * Trasferire dati in maniera affidabile ed efficiente.

 
Dove:

    * PI (protocol interpreter) è l'interprete del protocollo, utilizzato da client (User-PI) e server (Server-PI) per lo scambio di comandi e risposte. In gergo comune ci si riferisce ad esso come "canale comandi".
    * DTP (data transfer process) è il processo di trasferimento dati, utilizzato da client (User-DTP) e server (Server-DTP) per lo scambio di dati. In gergo comune ci si riferisce ad esso come "canale dati".

Funzionamento generale.
 
FTP, a differenza di altri protocolli come ad esempio HTTP, utilizza due connessioni separate per gestire comandi e dati. Un server FTP rimane tipicamente in ascolto sulla porta 21 TCP a cui si connette il client. La connessione da parte del client determinerà l'inizializzazione del canale comandi attraverso il quale client e server si scambieranno comandi e risposte. Lo scambio effettivo di dati (come ad esempio file) richiederà l'apertura del canale dati il quale può essere di due tipi.

In un canale dati di tipo attivo il client apre una porta tipicamente random, tramite il canale comandi rende noto il numero di tale porta al server e attende che esso si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettua il binding della porta sorgente alla porta 20 del server FTP. A tale scopo possono venire impiegati i comandi PORT o EPRT, a seconda del protocollo di rete utilizzato (tipicamente IPv4 o IPv6).

In un canale dati di tipo passivo il server apre una porta tipicamente random (> 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che esso si connetta. A tale scopo possono venire impiegati i comandi PASV o EPSV, a seconda del protocollo di rete] utilizzato (tipicamente IPv4 o IPv6).

Sia il canale comandi sia il canale dati sono delle connessioni TCP; FTP crea un nuovo canale dati per ogni file trasferito all'interno della sessione utente, mentre il canale comandi rimane aperto per l'intera durata della sessione utente, in altre parole il canale comandi è persistente mentre il canale dati è non persistente.

Un server FTP offre svariate funzioni che permettono al client di interagire con il suo filesystem e i file che lo popolano, tra cui:

    * Download/upload di file.
    * Resume di trasferimenti interrotti.
    * Rimozione e rinomina di file.
    * Creazione di directory.
    * Navigazione tra directory.


FTP fornisce inoltre un sistema di autenticazione (N.B. in chiaro) degli accessi. Il client che si connette potrebbe dover fornire delle credenziali a seconda delle quali gli saranno assegnati determinati privilegi per poter operare sul filesystem. L'autenticazione cosiddetta "anonima" prevede che il client non specifichi nessuna password di accesso e che lo stesso abbia privilegi che sono tipicamente di "sola lettura".

Comandi.



Livello applicazioni     DHCP, HTTP, HTTPS , SMTP, POP3, IMAP, FTP, SFTP, DNS, SSH, IRC, SNMP, SIP, RTSP, Rsync, Telnet, HSRP, RTP, BGP, RIP, IGRP, VoIP,...
Livello di trasporto     TCP, UDP, SCTP, DCCP ...
Livello di internetworking     IPv4, IPv6, ICMP, ICMPv6, IGMP, IPsec, OSPF ...
Livello di collegamento     Ethernet, WiFi, PPP, Token ring, ARP, ATM, FDDI, LLC, SLIP, WiMAX, HSDPA, MPLS ...


La specifica originale di FTP non prevede alcuna cifratura per i dati scambiati tra client e server. Questo comprende nomi utenti, password, comandi, codici di risposta e file trasferiti i quali possono essere "sniffati"  o visionati da malintenzionati in determinate situazioni (esempio: ambienti intranet).

Il problema è comune a diversi altri protocolli utilizzati prima della diffusione di SSL quali HTTP, TELNET e SMTP. Per ovviare al problema è stata definita una nuova specifica che aggiunge al protocollo FTP originale un layer di cifratura SSL/TLS più una nuova serie di comandi e codici di risposta. Il protocollo prende il nome di FTPS ed è definito nella RFC-4217. Da non confondersi con SFTP che è comunque una valida alternativa per ovviare al problema descritto.
Per FTP si intende il protocollo di Internet che permette di trasferire documenti di qualsiasi tipo tra siti differenti. L'accesso ad un sito FTP può essere di due tipi: validato, cioé in una modalità che chiede all'utente di inserire il nome e la password, o anonimo cioé in una modalità che non richiede autenticazione alcuna e che di solito si utilizza per avere accesso ad aree che il gestore del server ha definito come pubbliche.

Quest'ultima modalità è la più utilizzata per il reperimento dei files shareware o di pubblico dominio. FTP é insomma il protocollo con cui classicamente avviene lo scambio di programmi e documenti via Internet (un po’ come succede con la posta elettronica), tuttavia, a differenza della posta elettronica che permette lo scambio di files tra un numero limitato di utenti (tipicamente due, il mittente ed il ricevente) FTP é un servizio che un singolo, un ente od un provider, mettono a disposizione di tutta la comunità Internet. In un sito FTP anonimo troverete tipicamente aggiornamenti software e documentazione. Anche se per l'accesso ad un sito FTP anonimo non è richiesto l’inserimento di nome e password, occorre comunque rispettare una regola fondamentale della netiquette ed inserire anonymous (digitato esattamente così) come username, quindi il proprio indirizzo email come password.

Indice dell’articolo

Come usare FTP.

Le versioni più recenti dei browser web (Explorer 4 e Navigator o Communicator 4) permettono l'accesso alle directory FTP direttamente dalla finestra del browser. Questo semplifica notevolmente l'accesso ai file in FTP per l'utente alle prime armi, tuttavia chi desideri utilizzare al meglio gli strumenti dell'FTP potrà prendere in seria considerazione i programmi dedicati alla gestione di questo protocollo.

Dopo aver avuto accesso ad un server FTP dal browser web è possibile caricare i file nel sito semplicemente trascinandoli (trascinando la cartella che li contiene) nella finestra del browser da File Manager o da Gestione risorse in Windows, oppure dal Finder in MacOs.

Tra i più diffusi programmi dedicati per "fare FTP" (detti Client FTP) troviamo su Macintosh Fetch e Anarchie e su PC WS_FTP e CuteFTP. Si tratta di prodotti shareware, basati cioé sul concetto "prima prova e poi paga" e sono reperibili in vari siti sulla rete (tra cui ovviamente anche il nostro).

Utilizzando un browser web, l'accesso in FTP si stabilisce scrivendo nella barra dell'indirizzo il protocollo ftp:// seguito dall'indirizzo del sito, per esempio

ftp://ntc.it è l'indirizzo del nostro sito FTP anonimo. Utilizzando il browser non è necessario inserire anonymous come nome e il proprio indirizzo email come password, ci penserà il browser stesso utilizzando quello che avrete inserito nelle sue preferenze.

Accedere in FTP con Communicator.

Le pagine con le directory FTP in Communicator possono apparire formattate in modo un po' spartano. Quando possibile la finestra di navigazione mostrerà tipo, dimensione, data e breve descrizione di ciascun file incluso nelle directory. Le directory sono presentate sotto forma di elenco di link, dove ciascun link è preceduto da un'icona ad indicare un'altra directory o un altro file. Se si fa clic sul link ad una directory, verrà visualizzata la sua sottodirectory. Di norma, all'inizio della sottodirectory è incluso un link alla directory principale. Dopo aver avuto accesso ad un server FTP è possibile prelevare files o caricare (inviare) un file sul sito trascinando e rilasciando il file dal desktop sulla finestra del browser.

Si noti che occorre "scrivere" i privilegi sul server FTP (cioé entrare con una password e non come utenti anonimi) per poter inviare dei file. Come utenti anonimi sarà possibile soltanto il prelievo dei files.

Accedere in FTP con un Client FTP.

La figura mostra come stabilire una connessione FTP validata da nome e password. La password è in questo caso la stessa password usata per accedere in PPP al nostro server.

Nel caso di accesso anonimo basterà inserire, oltre il nome dell'Host, "anonymous" come username (di solito per farlo si può anche lasciare il campo bianco) ed il vostro indirizzo email come password.

Eventualmente nel campo Path si può indicare il percorso nelle directory. Se non si immette un percorso, i client FTP vi condurranno comunque alla directory principale, a partire dalla quale potrete spostarvi manualmente nella gerarchia del sito aprendo le varie directory col mouse. Salvando il bookmarks (segnalibro) sul vostro disco rigido, potrete in futuro ricollegarvi a quel sito FTP semplicemente facendo un doppio clic sull'icona di quel segnalibro.

Alcuni client FTP permettono di salvare lo stato di un trasferimento file senza terminarne il download (anche se questo non funziona sempre) e consentono quindi di non dover ricominciare da capo il prelievo di un documento nel caso che la connessione si interrompa.

Per capire come funziona l'FTP potete, da Fetch, Anarchie o WS_FTP provare a prelevare qualche file da uno dei molti indirizzi salvati come bookmarks che questi programmi includono.

Inviare con FTP le pagine Web personalizzate nella vostra directory

FTP è il protocollo da usare anche per trasferire le vostre pagine web sul nostro sito.

In ogni caso possiamo brevemente dire che posto un utente con userid "pippo" e password "pluto", abbonato con Netcom, la finestra di connessione del client FTP sarà la seguente:

Dove la parola "pluto" è inserita nel campo password. Una volta stabilita la connessione, si devono trasferire i documenti dentro la directory "public_html".

Nel caso disponiate di un vostro dominio, la procedura è la seguente, posto un dominio pippo.com dell'utente pippo con password pluto:

Alcuni client FTP chiedono di conoscere prima il protocollo da usare per l’invio dei files, in caso di dubbi specificate il formato Raw data.


zanox_set3_300x250_it-become-a-publisher
zanox_set1_300x250_it