Sei sulla pagina 1di 9

LEZIONE 4

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 FTP
i comandi 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, comune-
mente 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 OUT OF BAND


un file utilizza due canali TCP separati che agiscono Dato che l'FTP usa una con-
in parallelo, cio una connessione di controllo e una nessione di controllo separa-
connessione dati; ta, si dice che l'FTF invia le
la prima connessione usata per spedire le infor- sue informazioni di controllo
mazioni di controllo tra client e server, come l ' i - fuori banda (out-of-band).
dentificazione dell'utente, password, comandi per

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 nor-
malmente 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

m
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 cre-
denziali 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 conces-
so come privilegio quello d i poter effettuare la "sola lettura".

F T P Client
Anche la connessione da parte del client av-
viene mediante u n apposito software, gene- M Uplodare Uplodare o uploadare? So-
ralmente gratuito, capace d i connettersi a u n no molteplici i problemi di natura termi-
server e d i caricare file dal proprio computer nologica posti dagli anglicismi tra i quali
al server, quindi A uploadare i l contenuto quelli dovuti ad adattamenti di grafia e
di flessione nelle famiglie formate con
a un indirizzo web, o downloadare file da u n
corradicali, come uploadare/uplodare da
server a u n particolare indirizzo IP.
upload "caricamento" e downloadare/
Generalmente u n FTP client u n programma downlodare da download.
costituito da due componenti: Sarebbe opportuno utilizzare l'italiano
I parte di comunicazione: implementa i l pro- "caricare" e "scaricare" e limitare l'uso
tocollo FTP; dell'anglicismo solo ai casi in cui non si
> interfaccia utente: generalmente di tipo gra- dispone di soluzioni alternative.
fico agevola lo svolgimento delle funzioni of-
ferte dal prodotto.

I diversi programmi si differenziano dalle opzioni offerte all'utente, che vanno da quella di permet-
tere 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;

I
Cute FTP;
I TRELLIAN;
I WSFTP;
Alcuni dei prodotti elencati possono fa-
I astream netfile FTP;
=

re simultaneamente da server e da client,


I Blazeware FTP;
hanno cio al loro interno entrambe le fun-
I Smart FTP;
zionalit.
I Cesar FTP.

265
Lo strato di applicazion

la classedclsessanta 24986B0s>aruba.itpftp. Iaclasscdclscssanta.it FileZilla


Fjle Modifica Wsuafcza Irarferirnerto Server Segnalibri aiuto

i- /. rj? 0 * o i t * l f
Host; Nome u t e n t e : Passaprd: Eprte: | Connessione rapida \\

Sito l o c a l e : ; C:\Inetpub\iAitmroot\dasse60\horne\ V 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 V

_) home A O home

1 Icone jb Icone
l Q Images tufo i m a g e s

_!*>
V
3 mal v

Nome file Dimension... Tipo file Ultima me


i Nome file Dimensione file Tipofte / Ultima

P i .
I_amol960_l.htm 4.182 Documento.. 02/06/20:
p armol960_l.htm 4.182 Documento H T M 05/09/
. onnol960_2.htm 4.187 Documento.. 02/06/20
! ] a n n o 1 9 O _ 2 . htm 4.187 D o c u m e n t o HTML 05/09/
armol960_3.htm 4.166 Documento.. 02/06/20
] afmol960_3.htm 4.166 D o c u m e n t o HTML 05/09/
annol960_4.htm 4.175 Documento.. 02/06/20
annol960_4.htm 4.175 D o c u m e n t o HTML 05/09/
home.htm 9.684 Documento.. 06/06/20
home.htm 9.684 D o c u m e n t o HTML 05/09/
homel.htm 5.662 Documento.. 02/06/20
homel.htm 5.662 D o c u m e n t o HTML 05/09/
I horne2.htm 6.989 Documento.. 02/06/20
t^ home2.htm 6.989 D o c u m e n t o HTML 05/09/
home3.htm 5.164 Documento.. 06/06/20
home3.htm 5.164 D o c u m e n t o HTML 05/09/
home4.htm 3.908 Documento.. 02/06/20
home4.htm 3.908 D o c u m e n t o HTML 05/09/

< >
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 Direzione File r e m o t o

File in coda Trasferimenti n o n completati Trasferimenti riusciti

t M i Coda: vuota

In figura riportata l'interfaccia grafica d i Filezilla, u t i -


A Drag and drop Drag-and- SSk
lizzato i n questo esempio per uploadare file su un server drop is the action of selecting
web: immediato individuare i l file system locale (a si- a virtual object by "grabbing" it and
nistra) e i l file system remoto (a destra). dragging it to a different location or on-
I file vengono caricati/scaricati semplicemente mediante to another virtual object.
operazioni di trascinamento drag and drop ) .

La comunicazione F T P
Analizziamo ora i l funzionamento del protocollo FTP seguendo le operazioni necessarie per effet-
tuare 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 co-
sa 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'autoriz-
zazione 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 connes-
sone di controllo, nonch gli eventuali comandi per cambiare la directory remota, sempre comuni-
cando 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.

FTP server Osserviamo che per tutta la du-


rata della sessione la connessio-
ne di controllo rimane sempre
aperta mentre viene chiusa la
linea dati al termine del trasfe-
rimento di un file: per ricevere
20 21
un nuovo file necessario stabi-
sata command 1669 1670
lire una nuova connessione dati,
sempre comunque all'interno o
della stessa sessione:
la connessione di controllo
persistente:
Tempo 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 de-
nominata "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 per indicare
l'uso della modalit passiva.
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 ) .

Questo meccanismo rende


la trasmissione pi sicura di
quella normale in quanto
sempre il client ad atti-
vare una connessione, che
sia quella di controllo oppu-
20 21 re quella per i dati: il client
data command 1669 1670
non fornisce al server la
porta su cui accetta la con-
nessione dati evitando cos
che dei malintenzionati pos-
3322 sano sfruttare questa porta
"aperta" per intrufolarsi nel
Tempo
sistema e sferrare un attac-
co "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 8
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 9
\ 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 pas-
sword
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 connes-
sione 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) uti-
lizzando 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

I 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 cifra-
tura per i dati scambiati tra client e server e tra questi vengono scambiati nomi utenti, password, co-
mandi, 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 pro-
tocollo 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 op-
portunamente configurate.

271