Sei sulla pagina 1di 9

LEZIONE

TRASFERIMENTO DI FILE: FTP

IN QUESTA LEZIONE IMPAREREMO...


il c l i e n t e i l s e r v e r

FTP

le m o d a l i t d i c o l l e g a m e n t o
i comandi

FTP

FTP

Generalit
E difficile avere un'idea del numero di file che sono oggi "sparsi" nelle memorie degli host computer
connessi tra loro i n Internet, tra programmi, immagini, documenti, suoni, filmati ecc., cos come
tcile calcolare proprio i l numero degli host presenti sulla rete, numero che aumenta giorno per
giorno.
"_aza timore di eccedere possiamo affermare che milioni di file sono condivisi i n rete e i n ogni
;iite una parte d i essi viene scambiata tra calcolatori presenti i n Internet, sia tra macchine molto
distanti tra di loro che tra macchine direttamente connesse, presenti nello stesso locale.
D protocollo utilizzato a livello applicativo per trasferire i file i l File Transfer Protocol, comunemente chiamato FTP, che si basa su TCP ed stato definito nel 1984 nell'RFC 959.
Gli obiettivi principali dell'FTP, descritti nella sua specifica ufficiale, sono:
promuovere la condivisione di file (programmi o dati);
incoraggiare l'uso indiretto o implicito di computer remoti;
I risolvere in maniera trasparente incompatibilit tra differenti sistemi di deposito file;
trasferire dati in maniera affidabile ed efficiente.
differenza d i altri protocolli, FTP per trasportare
un file utilizza due canali TCP separati che agiscono
in parallelo, cio una connessione di controllo e una
connessione dati;
la prima connessione usata per spedire le informazioni di controllo tra client e server, come l ' i dentificazione dell'utente, password, comandi per

OUT OF BAND
Dato che l'FTP usa una connessione di controllo separata, si dice che l'FTF invia le
sue informazioni di controllo
fuori banda (out-of-band).

263

Lo strato di applicazione

la variazione della directory remota ecc.): viene normalmente chiamata control connection o
command channel;
I la seconda connessione quella effettivamente utilizzata per i l trasferimento dei file: viene normalmente chiamata data connection o data channel.

Connessione di controllo

Connessione dati
Client FTP

Server FTP

Il server e il client F T P
Il protocollo FTP si riferisce a u n modello di tipo client/server dove la macchina host destinata a
svolgere la funzione d i server ha i n esecuzione uno specifico programma che pu essere fornito
direttamente col sistema operativo oppure istallato i n u n secondo tempo.
Per poter realizzare la connessione FTP entrambe le macchine devono avere istallato u n software
FTP, rispettivamente u n FTP client e u n FTP server.

File transfer

User at host

Locai file system

F T P Server
Esistono i n distribuzione parecchi software FTP validi, sia distribuiti gratuitamente con licenza
open source, sia a pagamento, come per esempio:
I Filezilla Server;
Bulletproof Ftp Server;
Golder Ftp Server;
I Globalscape Secure Ftp Server;
Cerberus Ftp Server;
I Gene Ftp Server;
Serv-U Ftp Server;
Wftpd;
Surgeftp.
II software FTP server mette a disposizione dei client molteplici opzioni per interagire con l'insieme
dei file condivisi nel suo file system, tra cui:
download/upload di file;
recupero (resum) d i trasferimenti interrotti;

264

Trasferimento di file: FTP |

rimozione e rinomina d i file;


I creazione di directory;
navigazione tra directory.
L'accesso al FTP server viene effettuato mediante u n sistema d i autenticazione e i n base alle credenziali possono essere assegnati determinati privilegi agli utenti registrati per poter operare sul file
system: spesso anche possibile effettuare l'autenticazione "anonima", cio quella che effettua u n
client che non specifica alcuna password d i accesso: i n questo caso, generalmente, gli viene concesso come privilegio quello d i poter effettuare la "sola lettura".

F T P Client
Anche la connessione da parte del client avviene mediante u n apposito software, generalmente gratuito, capace d i connettersi a u n
server e d i caricare file dal proprio computer
al server, quindi A uploadare i l contenuto
a un indirizzo web, o downloadare file da u n
server a u n particolare indirizzo IP.
Generalmente u n FTP client u n programma
costituito da due componenti:
I parte di comunicazione: implementa i l protocollo FTP;

M Uplodare Uplodare o uploadare? Sono molteplici i problemi di natura terminologica posti dagli anglicismi tra i quali
quelli dovuti ad adattamenti di grafia e
di flessione nelle famiglie formate con
corradicali, come uploadare/uplodare da
upload "caricamento" e downloadare/
downlodare da download.
Sarebbe opportuno utilizzare l'italiano
"caricare" e "scaricare" e limitare l'uso
dell'anglicismo solo ai casi in cui non si
dispone di soluzioni alternative.

> interfaccia utente: generalmente di tipo grafico agevola lo svolgimento delle funzioni offerte dal prodotto.

I diversi programmi si differenziano dalle opzioni offerte all'utente, che vanno da quella di permettere upload multipli, alla scelta della velocit, al transfer da server a server, ai componenti grafici
dello stato e dell'avanzamento dei trasferimenti, all'interfaccia grafica accattivante, alla possibilit
di interrompere i l download quando si vuole e riprenderlo senza file corrotti.
Le funzioni comuni a tutti i programmi sono le seguenti:
> connessione al server remoto;
> trasferimento di u n file dal server al client (get);
> trasferimento di u n file dal client al server (put);
> lettura dei tles presenti nella directory corrente sul server (dir);
> cambiamento d i directory corrente sul server (ed);
> disconnessione (bye).
Di seguito riportato un elenco parziale del principali client FTP:
I Ace FTP freeware;
I Directory uploader;
Racing turtle FTP;
> Filezilla;
Cute FTP;
I TRELLIAN;
I WSFTP;
Alcuni dei prodotti elencati possono faI astream netfile FTP;
re simultaneamente da server e da client,
I Blazeware FTP;
hanno cio al loro interno entrambe le funI Smart FTP;
zionalit.
I Cesar FTP.
=

265

Lo strato di applicazion

la classedclsessanta
Fjle

Modifica

Wsuafcza

/. rj?

i-

24986B0s>aruba.itpftp. Iaclasscdclscssanta.it

Irarferirnerto

Server

Segnalibri

0 * o i t *

l f

Nome u t e n t e :

Host;

FileZilla

aiuto

Eprte:

Passaprd:
V

Sito l o c a l e : ; C:\Inetpub\iAitmroot\dasse60\horne\

Sito r e m o t o : j / l a d a s s e d e l s e s s a n t a . i t / h o m e

home

Icone

jb

Icone

Images

tufo i m a g e s

_)

home

1
l Q

| Connessione rapida \\
V

_!*>

Tipofte

Dimensione file

i Nome file

armol960_l.htm

4.182

Documento H T M

05/09/

! ] a n n o 1 9 O _ 2 . htm

4.187

D o c u m e n t o HTML

05/09/

4.166

D o c u m e n t o HTML

05/09/

annol960_4.htm

4.175

D o c u m e n t o HTML

05/09/

home.htm

9.684

D o c u m e n t o HTML

05/09/

homel.htm

5.662

D o c u m e n t o HTML

05/09/

t^ home2.htm

6.989

D o c u m e n t o HTML

05/09/

home3.htm

5.164

D o c u m e n t o HTML

05/09/

home4.htm

3.908

D o c u m e n t o HTML

05/09/

afmol960_3.htm

Dimension...

Nome file

Ultima

P i .
p

mal

I_amol960_l.htm

Tipo file

Ultima me

4.182

Documento..

02/06/20:

. onnol960_2.htm

4.187

Documento..

02/06/20

armol960_3.htm

4.166

Documento..

02/06/20

annol960_4.htm

4.175

Documento..

02/06/20

home.htm

9.684

Documento..

06/06/20

homel.htm

5.662

Documento..

02/06/20

horne2.htm

6.989

Documento..

02/06/20

home3.htm

5.164

Documento..

06/06/20

home4.htm

3.908

Documento..

02/06/20

>

<
9 H e . Dimensione t o t a l e : 4 8 . 1 1 7 b y t e

9 file. Dimensione t o t a l e : 4 8 . 1 1 7 b y t e

Pue s e r v e r / l o c a l e

File

in coda

Direzione

Trasferimenti n o n

completati

File r e m o t o

Trasferimenti riusciti

t M i Coda: vuota

In figura riportata l'interfaccia grafica d i Filezilla, u t i lizzato i n questo esempio per uploadare file su un server
web: immediato individuare i l file system locale (a sinistra) e i l file system remoto (a destra).
I file vengono caricati/scaricati semplicemente mediante
operazioni di trascinamento
drag and drop ) .

A Drag and drop Drag-and- SSk


drop is the action of selecting
a virtual object by "grabbing" it and
dragging it to a different location or onto another virtual object.

La comunicazione F T P
Analizziamo ora i l funzionamento del protocollo FTP seguendo le operazioni necessarie per effettuare i l trasferimento d i un file dal server al client.
Abbiamo sostanzialmente due possibili situazioni:
O collegamento normale;
0 collegamento passivo.

Collegamento normale

(normal-mode)

Quando u n utente avvia una sessione FTP con u n server remoto, i l lato client dell'FTP come prima cosa apre due porte con numero random superiore a 1023, una per la trasmissione e ricezione dei dati e
l'altra per i segnali di controllo (nel nostro esempio utilizziamo rispettivamente le porte 1669 e 1670).
La successiva operazione del client quella di instaurare una connessione TCP d i controllo con i l
server (host remoto) sulla porta 21 del server, specificando TCP come protocollo di trasporto e i l
numero di porta dati del client mediante i l comando port 1670: i l client ottiene dal server l'autorizzazione alla connessione sulla linea di controllo (l'"OK" sulla porta 1669).

266

D client dell'I- IT invia l'identificazione dell'utente (nome utente) e la password su questa connessone di controllo, nonch gli eventuali comandi per cambiare la directory remota, sempre comunicando sulla connessione d i controllo.
Quindi i l server apre i l data channel verso la porta indicata dal client per iniziare i l trasferimento
di un file utilizzando la porta 20.
rmine del trasferimento di u n file, i l server chiude la connessione sulla linea dati.
Osserviamo che per tutta la durata della sessione la connessione di controllo rimane sempre
aperta mentre viene chiusa la
linea dati al termine del trasferimento di un file: per ricevere
un nuovo file necessario stabilire una nuova connessione dati,
sempre comunque all'interno
o
della stessa sessione:

FTP server

20
21
sata command

1669

1670

Tempo

la connessione di controllo
persistente:
la connessione dati non per
sistente.

Questo tipo d i collegamento tra client e server denominato "normale" (normal-mode).

Collegamento passivo (passive

mode o PASV mode)

Durante una sessione, i l server FTP deve mantenere lo stato dell'utente e associa a una connessione
lo specifico account dell'utente e le directory dell'host remoto: queste informazioni d i stato devono
essere mantenute per ciascuna delle sessioni dell'utente i n corso e comportano una limitazione sul
numero totale delle sessioni che l'FTP pu mantenere simultaneamente.
Per cercare di liberare i l pi possibile la banda, se non viene effettuata nessuna operazione per u n
eerto tempo, viene interrotta automaticamente la sessione FTP: questo comporta che se l'utente
vuole compiere altri trasferimenti deve riaprire nuovamente la connessione d i controllo.
Esiste anche u n metodo alternativo che viene supportato da quasi t u t t i i server FTP: la modalit denominata "passiva" (passive mode o PASV mode), che consente ai client di aprire sia la connessione
di controllo, sia quella per i dati.
Come per la connessione normale, i l client nella connessione FTP passiva alloca due porte con n u mero maggiore d i 1023 (nel nostro esempio sempre le porte 1669 e 1670), ma non viene indicato
al server i l numero d i porta riservata ai dati: i l server a comunicare al client i l numero di porta
che l u i riserva per i l trasferimento dei dati (per esempio la porta 3322), e quindi non pi la porta
numero 21 di default, come nel caso normale.

Al posto del numero di porta data, il client comunica al server il comando


l'uso della modalit passiva.

per indicare

La risposta del server comprende anche i l suo numero d i porta data 3322 i n modo che i l client attivi
la connessione anche su d i essa, inviando u n comando di richiesta di apertura per i l canale DATA
( D a t a Channel 1 6 7 0 - 3 3 2 2 ) .

20
data

21
command

1669

1670

3322
Tempo

Questo meccanismo rende


la trasmissione pi sicura di
quella normale in quanto
sempre il client
ad attivare una connessione, che
sia quella di controllo oppure quella per i dati: il client
non fornisce al server la
porta su cui accetta la connessione dati evitando cos
che dei malintenzionati possano sfruttare questa porta
"aperta" per intrufolarsi nel
sistema e sferrare un attacco "hacker".

Comandi comuni
Il client invia i comandi al server FTP come normale testo ASCI, generalmente composti da due
elementi: nome_comando < p a r a m e t r o > .
ESEMPIO

Sono riportati d i seguito a titolo di esempio u n gruppo di comandi:


U S E R <nome u t e n t e > identifica l'utente;
I PASS < p a s s w o r d >
autentica l'utente;
I LIST
elenca i file della directory corrente;
R E T R <filename>
recupera (get) u n file dalla directory corrente;
I STOR <filename>
memorizza (put) u n file nell'host remoto;
I CWD < d i r e c t o r y >
cambia directory corrente;
I QUIT
esegue la disconnessione.

Anche le risposte che i l server FTP invia al client sono costituite da testo ASCII, i n particolare hanno
una stringa composta da tre caratteri (XYZ) che assumono i l seguente significato:
> i l primo carattere X:
1 = l'azione richiesta stata iniziata;
2 = l'azione richiesta stata completata con successo;
3 = i l comando stato accettato ma i n sospeso i n quanto sono necessarie altre informazioni
quali USER, PASS;
4 = i l comando non stato accettato dato che si verificata una situazione d i errore provvisoria;
5 = i l comando non stato accettato dato che si verificato u n errore irrecuperabile;

268

ile: FTP BS3MU

Trasferimento di fil

i l secondo carattere Y:
0 = presenza d i u n errore di sintassi;
2 = d informazioni sullo stato della connessione;
3 = d informazioni sullo stato della autenticazione dell'utente;
5 = indica lo stato del file system del server;
I i l terzo carattere Z non rigidamente codificato come i primi due ma i n funzione del valore che
essi assumono.
ESEMPIO

\ ediamo alcuni esempi d i codici di stato con l'espressione d i ritorno


I 331 Username OK, password required
nome utente accettato, si attende la password
I 125 Data connection already open; transfer starting
connessione dati aperta, si inizia i l trasf.
del file
I 425 Can't open data connection
errore: non si riesce ad aprire una connessione dati (impossibile trasferire u n file)
452 Error writing file errore
non possibile scrivere i l file

presente una eccezione: il codice 220 indica accettazione della connessione e insieme a
esso viene comunicata la chiave pubblica del server.

ESEMPIO 10

Connessione

FTP

client-server

Vediamo come avviene una normale procedura di connessione tra u n client (C) e u n server (S) utilizzando i comandi sopra elencati:
C) i l client esegue una connessione al server collegandosi alla porta TCP 21
S) i l server risponde
C) i l client invia i dati necessari per identificare l'utente partendo da:
USER <nome utente>
S) i l server risponde positivamente 331 richiedendo la password
331 username ok, password required
C ) i l client invia ora la password:
PASS <password>
S

i l server risponde che l'utente correttamente autenticato, oppure nega l'accesso

C) se l'utente autenticato, i l client pu dare i vari comandi previsti dal protocollo, per esempio
con uno schema come i l seguente:
il client invia per esempio i l comando
RETR <filename>
S) i l server risponde con u n codice di stato e una descrizione
125 Data connection already open; transfer starting

Il trasferimento di file uno scambio di dati, mentre il colloquio tra client e server uno
scambio di comandi.

C) l'utente si disconnette
QUIT

269

UdA4

Lo strato di applicazione

Schematicamente abbiamo la situazione rappresentata i n figura


FTP client
Connessione TCP 21

Connessione stabilita

USER username

331 username ok, send pwd

PASS password

Client connected

QUIT

Client disconnected

Tempo

FTPS
Sempre i n termini di sicurezza, doveroso ricordare che i l protocollo FTP non prevede alcuna cifratura per i dati scambiati tra client e server e tra questi vengono scambiati nomi utenti, password, comandi, codici di risposta e file trasferiti che possono essere agevolmente "sniffati" da malintenzionati.
Per ovviare a questo problema stata definita una nuova specifica, la RFC 4217, che aggiunge al
protocollo FTP originale un layer d i cifratura ! SSL pi una nuova serie d i comandi e codici di
risposta: tale protocollo prende i l nome d i FTPS.
p

Tutti i trasferimenti TPS sono cifrati e l'algoritmo di cifratura negoziato con il server: se
| viene impostato la finestra del trasferimento mostrer un simbolo di un "lucchetto" a indicare
il trasferimento sicuro.
<'T^

SSL Short for Secure Sockets Layer, a protocol for transmitting private documents via
the Internet. SSL uses a cryptographic system that uses two keys to encrypt data - a public
key known to everyone and a private or secret key known only to the recipient of the message. Both
Netscape Navigator and Internet Explorer support SSL, and many Web sites use the protocol to obtain
confidential user information, such as credit card numbers. By convention, URLs that require an SSL
connection start with https: instead of http.
Non bisogna confondere i l protocollo FTPS dal servizio SFTP: FTPS un protocollo definito a livello
" u f f i c i a l e " che cifra solamente la sessione e non tutti i dati che vengono scambiati, al contrario di
SFTP che non altro che una sessione cifrata (SSI l) che utilizza comandi FTP-like per trasferire i files
sensibili che, quindi, sono intermanete cifrati.

270

Trasferimento di file: FTP

Zoom su.
TIPI DI C O N N E S S I O N I F T P S
Sono possibili tre diversi tipi di connessione FTPS:
solo controllo: crea una connessione sicura FTP (FTPS) con un layer i l al di sotto del protocollo standard FTP cifrando SOLO il canale di controllo.
O controllo + dati: crea una connessione sicura FTP (FTPS) con un layer SSL al di sotto del
protocollo standard FTP cifrando sia il canale di controllo sia il canale dati.
implicito: crea una connessione sicura FTP (FTPS) con un layer SSL al di sotto del protocollo
standard FTP. Questo un vecchio metodo FTPS e generalmente non raccomandato, ma
alcuni server potrebbero ancora supportarlo.

Conclusioni
Dato che i l paradigma adottato nel protocollo FTP del tipo client/server non possibile per u n
client stabilire una connessione FTP verso una qualsiasi macchina: necessario che i l server sia
stato opportunamente configurato per accettare la connessione e operare i l trasferimento dei file.
Se si tenta d i stabilire una connessione verso una macchina non abilitata a offrire i l servizio FTP la
sessione fallisce e nessun trasferimento risulta possibile: non t u t t i gli host sono configurati di default
per accettare connessioni d i tipo FTP.

Generalmente le macchine server Linux o Windows Server hanno il servizio


gi attivo,
senza che esso debba essere esplicitamente installato, mentre le macchine client dotate di
sistema Windows non accettano automaticamente connessioni
ma devono essere opportunamente configurate.

271