Configurazione di FTP Servers

Transcript

Configurazione di FTP Servers
FTP
Appunti di Sistemi
A cura del
prof. ing. Mario Catalano
Il protocollo FTP 1/2
Attraverso il protocollo FTP (File Transfer Protocol) è
possibile trasferire uno o più files di qualsiasi tipo tra due
macchine
Tale protocollo usa il modello client/server
client: è l’entità che dà luogo al trasferimento (sia in un senso
che nell’altro)
server: è l’entità remota che è in continua attesa di
connessioni FTP da parte di altre entità
I porti usati sono i numeri
20 e 21
HTTP e FTP


Entrambi trasferiscono file e utilizzano il TCP per il
trasporto
La differenza consistente:

FTP usa 2 connessioni TCP parallele




connessione di controllo: veicola informazioni di controllo del
protocollo (identificazione e comandi)
connessione dati: per il trasferimento dati vero e proprio
Per questo l’FTP si definisce con controllo fuori banda
Al contrario l’HTTP spedisce le informazioni di controllo nella
stessa connessione usata per i dati, per questo viene
definito con controllo in banda
Port utilizzati dall’FTP



Il client FTP instaura una connessione di controllo
sulla porta 21 del server che rimane aperta per tutta
la sessione
Quando viene trasferito il file viene aperta la
connessione sulla porta 20 del server che viene
chiusa a trasferimento concluso
A ogni eventuale successivo trasferimento file viene
aperta una nuova connessione TCP e poi chiusa


La connessione dati non e’ permanente
L’FTP quindi mantiene informazioni di stato
sull’utente

account, connessione e tiene traccia directory mentre
l’utente percorre albero directory
Il protocollo FTP 2/2
Lo scambio di files (eseguibili, documenti, immagini) può
avvenire sia tra macchine molto distanti tra di loro che tra
macchine direttamente connesse, sulla stessa rete locale
FTP Server
Un FTP Server è una applicazione, gestita da un
amministratore
di sistema o da un provider di servizi Internet (ISP), e
responsabile della gestione delle richieste provenienti dal
client FTP di un utente
I comandi verso il server vengono inviati come testo ASCII
sulla connessione di controllo
Anche le risposte sono costituite da testo ASCII
Le applicazioni per il trasferimento di file sono tra le più
diffuse e “antiche” di Internet: non era ancora operativo il
TCP/IP e già esistevano protocolli per lo scambio di file.
Trasferimento di file



Ci sono due diversi tipi di condivisione di file: in una il
file sta nell'HOST, ne faccio una copia locale, opero
su quella, eventualmente la modifico e la rimetto
sull'HOST;
nell'altra invece vado ad interagire direttamente con
l'HOST e uso la copia dell'HOST per leggere,
scrivere e modificare il file.
Sono due modi completamente diversi di operare: il
primo è esemplificato dall'FTP (File Transfer
Protocol) mentre il secondo è implementato dal
protocollo NFS (Network File System).
FTP e NFS

Il problema principale dell'FTP è che se due
utenti utilizzano contemporaneamente lo
stesso file e lo modificano, rimarranno
nell'HOST soltanto le modifiche di colui che
ha riscritto il file per ultimo e si perderanno le
modifiche apportate dall'altro utente. Questo
è un limite che non ha, invece, il protocollo
NFS perché non viene fatta nessuna copia
locale, ma si ha una condivisione dei file.
Altre funzioni del FTP

L'FTP svolge altre funzioni, sempre
collegate a quella del trasferimento di
file, che sono: accesso interattivo,
specificazione del formato e controllo
del autenticazione. Con quest'ultima
caratteristica l'FTP richiede ai client di
autorizzare sè stessi trasmettendo al
server un nome ed una password di
login prima di richiedere trasferimenti di
file.
Modello client-server del FTP

L' FTP segue un modello client-server. La
maggior parte delle implementazioni dell' FTP
consentono l'accesso simultaneo da parte di
più client. I client usano il TCP per connettersi
al server in quanto hanno bisogno di un
servizio affidabile. Un singolo processo
server master attende le connessioni e crea
un processo slave per gestire ciascuna
conessione. Lo slave accetta e gestisce la
connesione di controllo dal client, ma impiega
uno o più processi per gestire una
connessione di trasferimento dei dati.
Anonymous FTP

Quando vogliamo effettuare una connessione
FTP questo ci chiede sempre un nome ed
una password di login, che non viene mai
visualizzata. Soltanto in un caso non ci viene
chiesta la password: negli anonymous FTP.
Molti server FTP consentono l'FTP anonimo,
in cui l' utente per ottenere l’accesso specifica
solo un nome di login anonymous (anonimo)
ed una password guest (ospite). Il server
ammette i login anonimi, ma restringe
l'accesso soltanto ai file disponibili
pubblicamente.
TFTP (1)

La suite TCP/IP contiene un secondo
protocollo di trasferimento di file, che fornisce
un servizio poco costoso e meno sofisticato
dell' FTP. Noto come "protocollo di
trasferimento di file banale" (Trivial File
Transfert Protocol: TFTP), esso è destinato
ad applicazioni che non necessitano di
complesse interazioni tra il client ed il server.
Essendo più restrittivo dell'FTP, il software
del TFTP è molto più piccolo. La piccola
dimensione è importante soprattutto nelle
workstation senza dischi, che codificano il
TFTP nelle ROM.
TFTP (2)

Il TFTP, all'avvio, carica nella memoria RAM
il sistema operativo, o parte di esso,
direttamente dal server.
Il TFTP generalmente non usa per il
trasferimento il TCP, ma l' UDP; trasferisce
un pacchetto alla volta ed utilizza un sistema
"stop and wait" per il riscontro dei pacchetti.
Il TFTP che utilizza per il trasferimento il
protocollo UDP viene sempre utilizzato in reti
locali e ciò permette di ridurre ritardi ed errori
sui pacchetti.
FTP client

i programmi (client) per fare FTP si
dividono in due categorie: quelli che
dispongono di una interfaccia a
caratteri, e quelli con una interfaccia
grafica.
FTP a caratteri

I client FTP con interfaccia a caratteri
possono sembrare un po' ostici, ma sono
molto efficienti e versatili. Il client FTP fornito
di serie con le recenti versioni di Windows.
Principali comandi FTP (1)


get nome_file preleva un file. Se il file non è
un semplice testo, è buona norma far
precedere questo comando dal comando 'bin‘
bin imposta la trasmissione in modalità
binaria, ovvero la modalità adatta a
programmi, immagini digitali, ecc. Alcuni
server FTP commutano automaticamente in
'binary mode' quando si preleva uno di questi
file
Principali comandi FTP (2)



cd nome_directory cambia directory.
Da notare che quando si vogliono
indicare anche le sottodirectory, vanno
separate con la barra inclinata a destra
cd up(oppure cd . oppure ancora cd ..)
sale di una directory.
dir visualizza il contenuto di una
directory
Principali comandi FTP (3)


put nome_file questo comando
consente di trasferire un file dal proprio
computer al server FTP cui si è
connessi. Solitamente è utilizzabile solo
in sessioni FTP con account e
password
quit chiude una sessione FTP
FTP a interfaccia grafica




Ce ne sono diversi, per tutti i sistemi
operativi; Ad esempio…
il client FTP inserito in Internet Explorer
CuteFTP, per Windows
WSFTP con perfetta integrazione con il
modulo 'Gestione risorse' di Windows
Internet Explorer e l'FTP
Il client FTP di Internet Explorer, è fortemente integrato
con le altre funzionalità del programma. Per
collegarsi con un sito FTP tramite Internet Explorer è
sufficiente inserire la URL del sito che vogliamo
raggiungere.
E’ possibile inserire la URL completa di path, così da
saltare direttamente alla sub-directory che ci
interessa.
Con Internet Explorer la procedura iniziale di login,
durante la quale solitamente si inserisce 'anonymous'
alla voce utente e il proprio recapito e-mail in luogo
della password, si salta: provvede il programma a
spedire automaticamente queste informazioni.
Internet Explorer e FTP con
account

Il funzionamento di Internet
Explorer in una sessione FTP
con account, ovvero in un
collegamento nel quale si deve
possedere un nome utente e
una password per accedere, è
identico a quello di una sessione
anonima. L'unica differenza
consiste nel fatto che, dopo aver
digitato la URL del server FTP,
Internet Explorer fa apparire una
schermata come quella
riprodotta nella figura.

Tipica
sessione
FTP
(1)
Client
Server
Cntrl
Cntrl
Ascolto sulla porta 21
Dati
Dati
Connessione
alla porta 21
Cntrl
Dati
21
Cntrl
Dati
Tipica sessione FTP (2)
Il client non parla mai con una porta non privilegiata di
un server non considerato sicuro.
Richiesta di LIST
Cntrl
21
Cntrl
Comando PORT OK
Dati
20
Lista di file
21
Cntrl
Dati
Cntrl
Comando PORT OK
Dati
Molti dati
20
Dati
Sessione FTP passiva
Si usa la connessione passiva se il server non può iniziare una
connessione al client, ad esempio per la presenza di un firewall.
Cntrl
PASV
1025
21
Cntrl
Richiesta al
file LIST
Dati
Cntrl
1025
1673
Dati
1522
ll a weri f
Dati
Modalità
passiva, 4107
21
Cntrl
4107
Lista di file
Dati
Telnet (1)

Consente agli utenti di collegarsi a un
host remoto.

Si basa su TCP.

Trasmette i dati in formato NVT
(Network Virtual Terminal): ASCII
esteso.

Richiede l’autenticazione tramite nome
Telnet (2)

Passa le sequenze di tasti digitate sul client
al sistema remoto e riporta l’output generato
dal sistema remoto allo schermo dell’utente.

Offre due servizi base:

Un terminale di rete virtuale, interfaccia standard al
sistema remoto.

Un meccanismo per gestire le opzioni di
comunicazione, che tratta simmetricamente entrambe
Telnet (3)


Il processo TELNET del client si collega
al TELNET del server
Il server ascolta sulla ben nota porta (23)
le connessioni in ingresso.
fine