1. Cos'è il Protocollo FTP
L'FTP (File Transfer Protocol) è un protocollo standard di livello applicativo progettato per il trasferimento bidirezionale di file tra un client e un server su una rete basata su IP. Funziona storicamente sfruttando due porte distinte sul server: la porta 21 per il canale di controllo e la porta 20 per il canale dati.
1. Canale di Controllo: Utilizzato per inviare comandi (es. USER, PASS, CWD) e
ricevere codici di risposta numerici.
2. Canale Dati: Aperto dinamicamente per il trasbordo effettivo dei flussi binari o
testuali dei file e delle liste di directory.
2. Modalità Attiva (Active) vs Passiva (Passive)
La gestione dell'apertura del canale dati rappresenta la principale particolarità e complessità del protocollo FTP, soprattutto in presenza di firewall e NAT:
| Modalità | Come viene aperto il Canale Dati | Criticità con Firewall / NAT |
|---|---|---|
| Modalità Attiva (PORT) | Il client comunica al server su quale porta in ascolto connettersi. È il server a inizializzare la connessione dati verso il client (porta 20 verso porta client). | Il firewall del client blocca spesso le connessioni in entrata non richieste, impedendo il trasferimento. |
| Modalità Passiva (PASV) | Il client invia il comando PASV; il server apre una porta casuale e risponde
indicando dove collegarsi. È il client a inizializzare entrambe le connessioni. |
Molto più compatibile con i firewall moderni e NAT domestici/aziendali (standard odierno). |
3. Comandi Principali e Codici di Risposta
Le interazioni lato terminale si basano su comandi testuali standard seguiti da codici numerici a tre cifre:
USER (autenticazione nome utente), PASS
(password), LIST (elenco file), RETR (scarica file), STOR
(carica file).2xx indicano
successo (es. 200 Command okay), i codici 3xx richiedono azioni
supplementari (es. 331 Password required), e i codici 4xx/5xx segnalano
errori temporanei o permanenti.4. Simulatore Interattivo: Sessione FTP e Log di Controllo
Simula una sequenza di comandi inviati da un client FTP verso un server remoto e osserva la risposta del canale di controllo.