FTP in modalita’ attiva e passiva
Mercoledì, Febbraio 18th, 2009FTP e’ un servizio basato esclusivamente su TCP.
FTP e’ un servizio inusuale perche’ utilizza 2 porte: una porta ‘dati’ ed una porta ‘comandi’ o porta di ‘controllo’.
Sono quindi attive 2 connessioni: una comandi e risposte, l’altra relativa ai dati.
Tradizionalmente la porta 21 e’ la porta comandi la 20 la porta dati.
La confusione inizia quando non sempre la porta 20 e’ la porta dati (”vedi sotto”).
FTP attivo:
In questa modalita’ il cliente (ad esempio il programma Unix ftp) si connette da una porta random non privilegiata, cioe’ con N maggiore di 1024, alla porta comando del FTP server cioe’ alla porta 21. Poi inizia ad ascoltare dalla porta (M) e la invia il comando del protocollo:
“PORT M”
al FTP server dalla connessione di controllo.
Il server si connettera’ indietro alla porta dati specificata dal client dalla sua porta dati locale cioe’ dalla porta 20.
Problema sui firewall:
Il principale problema con FTP in modalita’ attiva cade sulla configurazione del firewall nel lato client del ftp.
Il programma FTP client non esegue la connessione alla porta dati del server ma semplicemente esso dice al server quale porta sta “ascoltando” e poi e’ il server FTP a iniziare a connettersi alla porta specificata dal client.
In questo caso la configurazione del firewall lato cliente “va” aperta su una porta random (M) altrimenti potrebbe rifiutarla come richiesta di connessione “non sollecitata”.
FTP passivo:
Per risolvere il problema di un server che si connette al client, un metodo differente e’ stato sviluppato per le connessioni FTP denominato “passivo” o PASV dal comando ftp utilizzato dal client per dire al server che utilizza il modo passivo.
In questo modo, il client inizia ambedue le connessioni al server risolvendo il problema dei firewall, lato client, che bloccano le connessioni provenienti da sistemi “sconosciuti”, nel caso dell’active, quella appunto proveniente dal ftp server.
Quando inizia la connessione FTP, il client apre due porte random, non privilegiate cioe’ maggiori di 1024, la N e la (M).
La prima connessione contatta il server sulla porta 21 ma poi invece di inviare il comando PORT e permettere al server di connettersi all’indietro con la sua porta dati, esegue il comando PASV. (spiegazione tratta da wikipedia: PASV mette il server in ascolto su una porta che non e’ quella predefinita in attesa di una connessione dati))
Il server FTP ricevuto questo comando apre una porta random non privilegiata cioe’ maggiore di 1024 (P) ed invia il comando PORT P indietro al client.
Il client a questo punto inizia la connessione dalla porta (M) alla porta P del server per trasferire i dati.
Problema sui firewall:
La configurazione del firewall lato client non ha problemi con la modalita’ passiva perche’ e’ il firewall lato server che deve essere “aperto” per accettare richieste di connessioni a porte “random” (la porta P ne nostro caso).
Popolarità: 12% [?]