File Transfer Protocol – FTP

::jseblod::article::/jseblod::
::panel_article:: ::/panel_article::
::wysiwyg_introtext::

Il trasferimento di file è tra le applicazioni TCP/IP più usate e rappresenta gran parte del traffico di rete su Internet. Diversi protocolli standard di trasferimento di file esistevano anche prima che Internet fosse disponibile a tutti e sono state queste prime versioni del software di trasferimento di file che hanno contribuito a creare lo standard odierno noto come File Transfer Protocol (FTP). Le specifiche più recenti del protocollo sono elencate in RFC 959.

::/wysiwyg_introtext::
::my_readmore:: ::/my_readmore::
::wysiwyg_fulltext::

Il protocollo

FTP usa TCP come protocollo di trasporto. Questo significa che FTP eredita la robustezza del TCP ed è molto affidabile per il trasferimento di file. È probabile che se scaricate dei file, avrete probabilmente usato ftp qualche centinaio di volte senza rendervene conto! E se hai un’enorme collezione di warez, allora fai un paio di migliaia di volte 🙂

L’immagine qui sotto mostra dove sta FTP in contrasto con il modello OSI. Come ho notato in altre sezioni, è importante capire il concetto del modello OSI, perché vi aiuterà molto a capire anche tutto questo:)

ftp-1

Ora, abbiamo detto che FTP usa TCP come trasporto, ma non abbiamo detto quali porte usa! Le porte 21 e 20 sono utilizzate per FTP. La porta 21 è usata per stabilire la connessione tra i 2 computer (o host) e la porta 20 per trasferire i dati (tramite il canale dati).

Ma ci sono alcuni casi in cui la porta 21 è usata per entrambi, stabilire una connessione e trasferire i dati e li analizzerò a breve.

La cosa migliore che potete fare per “vedere” voi stessi è prendere un packet sniffer che troverete comodamente nella nostra sezione download e provare a catturare qualche pacchetto mentre state ftpando un sito.

Entrambe le porte – 20 e 21 – Modalità FTP attiva

Ho incluso uno screenshot dalla mia workstation che mostra chiaramente le 2 porte utilizzate. Nell’esempio, ho fatto un ftp in ftp.cdrom.com. Cliccate qui per vedere l’immagine completa

ftp-2small

Solo porta 21 – Modalità FTP passivo

Ora, nella prossima immagine ho fatto un ftp nel mio server NetWare qui a casa e indovinate cosa…. Solo la porta 21 è stata usata! Ecco lo screenshot:

ftp-3small

Clicca qui per vedere l’immagine completa.

Lasciatemi spiegare perché questo accade:

FTP ha due modalità di funzionamento separate: Attiva e Passiva. Userai l’una o l’altra a seconda che il tuo PC sia dietro un firewall.

La modalità attiva FTP

La modalità attiva è solitamente usata quando non c’è alcun firewall tra te e il server FTP. In questi casi si ha una connessione diretta a Internet. Quando tu (il cliente) cerchi di stabilire una connessione con un server FTP, la tua stazione di lavoro include un secondo numero di porta (usando il comando PORT) che viene usato quando i dati devono essere scambiati, questo è conosciuto come il Canale Dati.

Il server FTP inizia quindi lo scambio di dati dalla propria porta 20 a qualsiasi porta designata dalla tua workstation (nello screenshot, la mia workstation ha usato la porta 1086), e poiché il server ha iniziato la comunicazione, non è controllata dal client della workstation. Questo può anche potenzialmente permettere a dati non invitati di arrivare al tuo computer da qualsiasi luogo, spacciandoli per un normale trasferimento FTP. Questo è uno dei motivi per cui l’FTP passivo è più sicuro.

FTP in modalità passiva

Utilizzando l’FTP normale o passivo, un client inizia una sessione inviando una richiesta di comunicazione attraverso la porta TCP 21, la porta che è convenzionalmente assegnata per questo uso al server FTP. Questa comunicazione è nota come connessione Control Channel.

A questo punto, viene inviato un comando PASV invece di un comando PORT. Invece di specificare una porta alla quale il server può inviare, il comando PASV chiede al server di specificare una porta che desidera utilizzare per la connessione del Canale Dati. Il server risponde sul Control Channel con il numero di porta che il client usa per iniziare uno scambio sul Data Channel. Il server risponderà quindi sempre alle richieste iniziate dal client sul Canale Dati e il firewall può correlarle.

È semplice configurare il tuo programma client FTP per usare FTP attivo o passivo. Per esempio, in Cute FTP, è possibile impostare il programma per utilizzare FTP passivo andando su FTP–> Impostazioni –> Opzioni e poi selezionando la scheda “Firewall” :

ftp4

Se rimuovete le opzioni di cui sopra, allora la vostra postazione utilizzerà (se possibile) la modalità Active FTP, e dico “se possibile” perché se siete già dietro un firewall, probabilmente non avrete modo di utilizzare Active FTP, quindi il programma passerà automaticamente alla modalità FTP passiva.

Quindi diamo un’occhiata al processo di un computer che stabilisce una connessione FTP con un server: .

……..ftp-handshake

Il precedente presuppone una connessione diretta al server FTP. Per ragioni di semplicità, stiamo guardando il modo in cui la connessione FTP viene creata e non ci preoccupiamo se è una connessione FTP passiva o attiva. Poiché FTP usa TCP come trasporto, ci si aspetta di vedere la stretta di mano a 3 vie. Una volta che questo è completato e c’è una connessione dati stabilita, il client invierà il suo nome di login e poi la password. Dopo che la sequenza di autenticazione è terminata e l’utente è autenticato al server, gli è permesso l’accesso ed è pronto a prosciugare il sito:)

Infine, ecco i comandi FTP più comunemente usati:

ABOR: annulla il precedente comando FTP

LIST e NLST: elenca file e directory

DELE: elimina un file

RMD: rimuove una directory

MKD: crea una directory

PWD: stampa la directory di lavoro corrente (mostra in quale dir. tua)

PASS: invia la password

PORT: richiede il numero di porta aperta su uno specifico indirizzo IP/numero di porta

QUIT: disconnettersi dal server

RETR: recuperare file

STOR: inviare o mettere file

SYST: identificare il tipo di sistema

TYPE: specificare il tipo (A per ASCII, I per binario)

USER: inviare il nome utente

E questo completa la nostra analisi sul protocollo FTP!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *