Cos’è una porta FTP?
L’FTP, o File Transfer Protocol, rende possibile agli utenti lo scambio di file tra i loro personal computer e server remoti con l’aiuto di strumenti software specializzati chiamati client FTP. Attraverso gli strumenti software FTP gli utenti possono stabilire connessioni con una macchina remota di loro scelta ed eseguire qualsiasi trasferimento di dati necessario. Le connessioni FTP vengono eseguite attraverso certe porte, che sono le porte TCP predefinite o porte personalizzate impostate da un amministratore.
Eseguire una connessione alla porta FTP attraverso un client è un processo in due fasi che richiede l’uso di due porte diverse. Una volta che l’utente inserisce il nome del server e le credenziali di accesso nei campi di autorizzazione del client FTP, la connessione FTP viene stabilita e viene aperta la porta di controllo FTP del server FTP (la porta predefinita per l’invio di comandi è la 21). Poi una seconda connessione al server viene effettuata dal client, seguita da una risposta del server FTP dalla porta per l’invio dei dati (la porta predefinita per l’invio dei dati è la 20), quando inizia effettivamente il trasferimento dei file.
Risolvere i problemi con una porta FTP bloccata
Come abbiamo già detto, la porta di comando predefinita per le connessioni FTP è la porta 21, quindi, è importante controllare se il tuo ISP non sta bloccando l’accesso a quella porta. Per controllare se il tuo router o ISP sta bloccando la porta 21, dovresti usare telnet. A seconda del tuo sistema operativo, puoi aprire un terminale (Linux, OSX) o un prompt dei comandi (Windows XP, Vista, Windows7) e digitare la linea seguente.
Un esempio di comando telnet per controllare la porta 21 FTP
telnet my-best-domain.net 21
Se la connessione viene aperta con successo, il risultato dovrebbe essere simile.
Risultati del controllo della porta 21
telnet my-best-domain.net 21
Provando 192.128.34.174…
Connesso a my-best-domain.net.
220 ProFTPD 1.2.10 Server (my-best-domain.net)
Se non hai stabilito una connessione FTP usando telnet, dovresti controllare il tuo software firewall e aggiungere il tuo client FTP nella lista bianca / esclusione dei programmi che possono aprire porte. Se la tua porta FTP è già elencata lì e non riesci ad aprire una connessione FTP usando telnet, contatta il tuo ISP e chiedi loro di aprire la porta 21.
Se ti connetti al server FTP usando telnet, ma hai problemi a stabilire una connessione FTP usando il tuo software FTP, fai come segue:
- controlla i dettagli del tuo account FTP per eventuali errori
- controlla le impostazioni di connessione del client FTP
- disabilita i trasferimenti FTP simultanei
- imposta il numero delle connessioni FTP al minimo consentito
Se tutti questi consigli non ti permettono di connetterti al server, prova a impostare il tuo client FTP in modalità passiva.
Connessioni FTP in modalità attiva e passiva
Qual è la differenza tra una connessione FTP attiva e una passiva e come funzionano è una delle domande più frequenti. È bene avere un host FTP che fornisce supporto per entrambi, perché ci sono casi in cui uno funziona e l’altro rifiuta una connessione. Questi casi si verificano a causa di firewall e router non correttamente configurati dalla parte del cliente o nella rete ISP del cliente.
Quindi, qual è la differenza tra le connessioni FTP attive e passive? – La risposta è nelle connessioni della porta FTP. L’FTP è un servizio TCP che utilizza 2 porte. La prima porta FTP è la ‘porta di comando’ che utilizza la comunicazione tra il server FTP e il client FTP. La seconda porta è la porta di ‘trasferimento dati’ dove avviene il vero trasferimento dei file. Tipicamente, la porta di comando è impostata sulla porta 21 e la porta di trasferimento dati è la porta 20, ma in realtà, a seconda della modalità di connessione, la porta di trasferimento dati può essere cambiata.
La connessione in modalità attiva
Quando cerchi di stabilire una connessione FTP in modalità attiva, per prima cosa devi controllare le impostazioni del tuo software FTP se la “Modalità attiva” è abilitata. Nei programmi FTP gratuiti più diffusi la modalità attiva è abilitata di default. Se è disabilitata, attivala e procedi con il riempimento dei dettagli del tuo account FTP.
Guarda il log della connessione qui sotto per vedere come procede la connessione. Noterai che il client invia un comando PORT che contiene il numero della porta dinamica su cui è in ascolto sul flusso di controllo e aspetta una connessione dal server FTP. Quando il server FTP inizia la connessione dati al client FTP lega la porta sorgente alla porta 20 sul server FTP.
Un esempio di log di una connessione FTP usando una modalità attiva
Stato: Risoluzione dell’indirizzo di my-best-domain.net
Status: Connessione a 66.40.34.171:21…
Status: Connessione stabilita, in attesa del messaggio di benvenuto…
Risposta: 220 ProFTPD 1.2.10 Server (sc109.info)
Comando: USER demomovie
Risposta: 331 Password richiesta per demomovie.
Comando: PASS *****
Risposta: 230 Utente demomovie loggato.
Comando: SYST
Risposta: 215 Tipo UNIX: L8
Comando: FEAT
Risposta: 211-Features:
Risposta: 211-MDTM
Risposta: 211-REST STREAM
Risposta: 211-SIZE
Risposta: 211 End
Status: Connesso
Stato: Retrieving directory listing…
Command: PWD
Risposta: 257 “/” è la directory corrente.
Comando: TIPO I
Risposta: 200 Tipo impostato su I
Comando: PORT 10,1,242,250,180,46
Response: 200 Comando PORT riuscito
Comando: LIST
Risposta: 150 Apertura connessione dati in modalità ASCII per il file list
Risposta: 226 Trasferimento completato.
Stato: Elenco cartelle riuscito
Ma spieghiamo le cose più in dettaglio. Per prima cosa, il client apre una porta dinamica casuale, per esempio la porta 1025, e si connette alla porta 21 del server. Poi il client apre una porta dati (la porta di comando + 1 = 1026) e invia un comando PORT al server FTP. Poi il server si connette di nuovo alla porta dati 1026 del client usando la sua porta dati locale 20 e inizia il trasferimento.
La connessione in modalità passiva
Le connessioni FTP in modalità passiva sono progettate per risolvere problemi con firewall e router che non permettono di stabilire una connessione attiva.
Se non puoi connetterti al server in modalità attiva, devi abilitare l’opzione “Force Passive mode” del tuo client FTP. Allora il client inizierà entrambe le connessioni al server, il che può risolvere il problema anche se ci sono alcune limitazioni imposte dalla rete del tuo ISP o dal tuo firewall personale.
Vediamo come funziona la modalità passiva. Per prima cosa, il client FTP apre due porte dinamiche – una porta di comando (per esempio la porta 1025) e una porta di trasferimento dati (la porta di comando +1 = porta 1026). Poi il client collega la sua porta di comando alla porta 21 sul server, ma invece di usare un comando PORT, invia un comando PASV che dice al server che la connessione è impostata in modalità passiva. Quando legge il comando PASV, il server apre una porta dinamica casuale (per esempio 1027), che viene inoltrata alla porta 20 (la porta di trasferimento dati predefinita del server), e la rimanda al client. Poi il client FTP inizia la connessione dalla sua porta dati (porta 1026) alla porta dati del server (porta 1027) e inizia il trasferimento dei dati.
Questa modalità è un ottimo metodo per risolvere i problemi con i firewall che filtrano la connessione della porta dati in entrata al client dal server. Controlliamo come appare il log della connessione:
Un esempio di log della connessione FTP in modalità passiva
Stato: Risoluzione dell’indirizzo di my-best-domain.net
Status: Connessione a 66.40.34.171:21…
Status: Connessione stabilita, in attesa del messaggio di benvenuto…
Risposta: 220 ProFTPD 1.2.10 Server (sc109.info)
Comando: USER demo
Risposta: 331 Password richiesta per demomovie.
Comando: PASS **********
Risposta: 230 Utente demo loggato.
Comando: SYST
Risposta: 215 Tipo UNIX: L8
Comando: FEAT
Risposta: 211-Features:
Risposta: 211-MDTM
Risposta: 211-REST STREAM
Risposta: 211-SIZE
Risposta: 211 End
Status: Connesso
Stato: Retrieving directory listing…
Command: PWD
Risposta: 257 “/” è la directory corrente.
Comando: TIPO I
Risposta: 200 Tipo impostato su I
Comando: PASV
Risposta: 227 Entrare in modalità passiva (66,40,34,171,137,225).
Comando: LIST
Risposta: 150 Apertura connessione dati in modalità ASCII per file list
Risposta: 226 Trasferimento completato.
Status: Directory listing successful