Active FTP

FTP maakt in tegenstelling tot veel andere protocollen gebruik van twee communicatie poorten. Om te beginnen maakt de FTP-client zoals bijvoorbeeld Filzilla of WS-FTP(maar ook Frontpage heeft een FTP functie) een verbinding met een FTP-server op poort 21. Dat is de zogenaamde command-port ofwel de poort waarnaar de opdrachten worden verstuurd. De client maakt die verbinding vanaf een eigen poort met een nummer dat ligt boven de 1024, bijvoorbeeld 1027 (poortnummers tot en met 1024 zijn gereserveerd, nummer 20 en 21 voor FTP). Vervolgens geeft de client het commando PORT met het nummer van de poort waarop de client gaat luisteren. Dit is de data-port en is dus niet dezelfde als de command-port. Daarom heeft deze data-port ook een ander nummer, bijvoorbeeld 1028. De server maakt vervolgens vanaf poort 20 een verbinding met de client op deze poort. Dat betekent dus dat de data-verbinding tussen client en server wordt geïnitialiseerd door de server. En dat is iets dat een firewall aan de kant van de client normaal gesproken juist voorkomt, het is tenslotte een verbinding van buitenaf. Het gevolg is dat er geen data-verbinding tot stand komt en er geen bestanden geupload of gedownload kunnen worden. Bij dergelijke problemen is een passieve verbinding beter.

Passive FTP

Om er voor te zorgen dat er een data-verbinding is, die niet door de firewall geblokkeerd wordt, moet de data-verbinding door de client geïnitialiseerd worden. Dat gebeurt als volgt. Eerst maakt de client vanaf bijvoorbeeld poort 1027 een verbinding met de server op poort 21. Daarbij wordt het commando PASV gegeven in plaats van het commando PORT. De server antwoordt via deze verbinding met PORT plus het nummer van de server-poort (ook boven 1024) waarop de client een data-verbinding kan maken. Dit wordt vervolgens door de client gedaan. Het resultaat is een command-verbinding en een data-verbinding, beide geïnitialiseerd door de client. De firewall zal nu niets blokkeren.

Was dit antwoord nuttig? 3 gebruikers vonden dit artikel nuttig (3 Stemmen)