Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 101 reacties

Ftp bestaat zaterdag veertig jaar. Het protocol om bestanden te up- en downloaden naar en van een server werd vier decennia geleden voorgesteld door een student van de Amerikaanse universiteit MIT. Het protocol wordt nog steeds veel gebruikt.

De Amerikaanse student Abhay Bhushan stelde op 16 april 1971 de eerste standaard voor een 'file transfer protocol' voor, het protocol dat we nu kennen onder zijn afkorting ftp. "Deze paper is een eerste begin voor een protocol dat gebruikers van elke host op het netwerk toestaat om het bestandssysteem van elke host in het netwerk te gebruiken"

De ftp-standaard die Bushan voorstelde lijkt niet meer op de standaard die in 2011 wordt gebruikt. De laatste versie voegde in 1998 onder meer ondersteuning toe voor ipv6. Ftp is niet meer het belangrijkste protocol op internet, maar speelt nog altijd een belangrijke rol bij het up- en downloaden van bestanden. Vooral ontwikkelaars van websites maken veel gebruik van het veertig jaar oude protocol.

Met zijn veertig jaar is ftp een van de oudste protocollen op internet. Het protocol voor sites op internet, http, dateert van 1991. Chatprotocol irc dateert van 1988. Bhushan was naast schrijver van het ftp-protocol ook betrokken bij diverse e-mailprotocollen. Hij is nu actief in een stichting die verbonden is aan zijn eerste opleiding.

Moderatie-faq Wijzig weergave

Reacties (101)

En nu maar hopen dat het snel een zachte dood zal sterven!

FTP is een leuk protocol voor iets dat 40 jaar oud is.. totdat je naar het hedendaagse internet gaat kijken; NAT gebruik, firewalls, portforwards, (default) cleartext, etc. Om nog maar niet te spreken van anonymous ftp, en de ellende die dat kan veroorzaken als dat perongeluk openstaat en gebruikt wordt voor minder legale zaken.

Verder heb je dingen als passive/active, binary/ascii, en dat zijn gewoon settings die een user nooit zou moeten aanraken. Dat het protocol over (minimaal) 2 poorten loopt is ook nog eens zoiets, dat gaat zo vaak fout met NAT dat er speciale modules voor geschreven moeten worden. Bedenk dan een protocol dat gewoon eenvoudig is, makkelijk te gebruiken, goed met het hedendaagse internet overweg kan en standaard encryptie heeft.

FTP werkt prima in een afgesloten netwerk waarbij je snel wat wil overzetten (ook al zijn daar ook andere, betere tools voor), maar het is niet een protocol dat op het hedendaagse internet goed uit de voeten kan.

Gelukkig ondersteunen de meeste clients ook sftp (ssh ftp) wat al deze dingen al heeft, en ik hoop dan ook echt dat de FTP servers volledig verdwijnen, en dat er alleen dingen als sftp overblijven. Dan zou de wereld weer een hoofdpijn minder hebben.

[Reactie gewijzigd door Kees op 16 april 2011 14:00]

Uiteraard is FTP een flink gedateerd protocol, maar het overstappen naar sftp/scp is zeker geen fijn alternatief.

Zaken als NAT en port forwarding zullen in de toekomst al steeds meer worden opgelost door het gebruik van ipv6, en de meeste FTP servers hebben ook nog steeds een direct benaderbaar ipv4 adres en ondersteunen een PASV command van de client die vaak achter NAT zit.

Het feit dat FTP by default cleartext is, is uiteraard een probleem op het internet. Maar dit wordt beter opgevangen door FTP over SSL te doen (ftps/ftpes) dan te werken met sftp.

Wat betreft de meerdere poorten heb je een heel goed punt, in Linux heb je wel zaken als nf_conntrack_ftp modules in de kernel, maar op BSD is dit uberhaupt niet te firewallen. Enige waar je op kan matchen is dat de source poort altijd 20 is.

Maar waarom is SFTP/SCP dan ook geen goed alternatief? Voornamelijk omdat het een laag over SSH heen is, en SSH geeft _veel_ meer toegang dan alleen het transferren van bestanden. Nu weet ik wel dat je de user shell gewoon op sftp only kan zetten, maar dat neemt niet weg dat andere gebruikers over SSH wel volledige toegang tot een server hebben.

Ik kan met SSH niet een aparte daemon starten op een andere poort waar ALLEEN file transfers over worden toegelaten. Ik werk in de hosting wereld, waar FTP voor iedereen open moet staan omdat er veel gebruikers zijn rond de wereld, maar SSH moet zeer zeker achter een stricte firewall.
Wat je dan zou kunnen doen is op de normale SSH server een 'DenyGroups ftpusers' zetten, en in een sshdconfig met een aparte poort, chrooted etc, de AllowGroups op ftpusers zetten, zodat alleen mensen in de ftpusers groep gebruik kunnen maken van die ssh server, waarbij ze uiteraard de sftp only usershell hebben.

De normale ssh kun je dan stevig firewallen, en de aparte ssh kan alleen gebruikt worden door gebruikers in de ftpusers groep.

Dan heb je wel een ssh waarbij je alleen maar filetransfers kan doen, en die bereikbaar is voor iedereen over de hele wereld.

Maargoed, het is natuurlijk je eigen keuze of je ftp wil aanbieden of niet, zelf heb ik nergens meer een ftp draaien, en ik gebruik het ook al jaren niet meer (naja, afgezien van ftp voor apt-get update, waarbij dat overigens ook prima via http kan).
Dit is inderdaad een leuke optie, maar in de use case waar ik het voor nodig zou hebben ook niet ideaal.

Grootste probleem met opzetten is dat je verschillende poorten gebruikt - ik heb veel scripts die gebruik maken van ssh op poort 22, en om daar overal een andere poort op te geven is een hels karwei. Aan de andere kant wil ik klanten ook niet opzadelen met een non-default poort, omdat een hoop mensen daar moeite mee zullen hebben.

Ik vermijd het liefst ook FTP, maar in de hosting wereld is er echt niet meer omheen te komen. Veel FTP programma's hebben dan wel support voor betere protocollen, maar dat valt heel erg tegen bij webdesign suites. Webdesigners stoppen vaak genoeg de FTP gegevens in iets als dreamweaver, en gebruiken zelfs nooit een echt FTP prog.

Een ander probleem is het aanpassen van de huidige infrastructuur op veel servers. SSH is heel erg simpel in de basis opzet, maar meerdere daemons en aparte groups daarvoor aanmaken is een flinkje klus wanneer je veel servers beheerd.

Ook al zouden we nu een veiliger alternatief opzetten, en besluiten over 5 jaar FTP in de ban te doen - dan zouden we nog een hoop klagende klanten krijgen die zeggen dat "het niet meer werkt".

Ik hoop nog steeds dat er een soort FTPv2 zal komen dat de problemen van FTP op kan lossen. Maakt de overgang een stuk eenvoudiger, en dan zouden ook de wat minder gebruikte features van FTP (zoals FXP) behouden kunnen blijven. Punt is wel dat FXP grotendeels hangt op het feit dat er meerdere poorten worden gebruikt, wat we nu juist als een nadeel aanmerken.

Als final thought: doen we er niet beter aan om e-mail eens beter aan te pakken of zelfs geheel te vervangen? Dit protocol is in veel opzichten er nog vele maler slechter aantoe, en er zijn stapels "pleisters" nodig om dit veel te oude systeem in leven te houden. Daarmee bedoel ik zaken zoals SPF, DKIM en allerlei andere vormen van spam beveiliging. De hoeveelheid headers die je tegenwoordig nodig hebt om door een beetje spam filter heen te komen is compleet aburd, maar dat is een hele andere discussie :)
Volgens mij kan SSH naast bestanden verzenden alleen nog een shell/CLI aanbieden. Maar als een gebruiker geen shell heeft toegewezen op de host gaat dat niet lukken.
Je kunt op een willekeurig *nix systeem gewoon users zonder shell toevoegen. Die krijgen simpelweg geen write access op een TTY en komen met hun toetsenbord niet voorbij de login. File transfer werkt wel omdat de SSH daemon op de host dat regelt. Daarbij bepalen de permissies van de user nog steeds waar hij mag lezen en schrijven.
Dat haalde hij ook al aan als optie, maar dat was voor hem geen optie, omdat hij 'transfer' en 'shell' strict wil scheiden, waarbij die laatste alleen mogelijk is van een beperkt aantal IP's. Als je dan een ssh daemon opzet op een andere poort en niet gefirewalled, dan kunnen beheerders daar gewoon met een shell op inloggen (tenzij je dus zoals ik hierboven roep, groupbased 'allow' doet).
Alleen jammer dat het (standaard) heel onveilig is. FTP stuurt je password (en alle data) gewoon plain-text over de lijn.

Ik gebruik normaal alleen SFTP (Wat eigenlijk niets met FTP te maken heeft, het is gewoon bestandsoverdracht over SSH)
Behalve dat je wachtwoord ongecodeerd wordt verzonden, is FTP ook voor firewalls een dramatisch protocol. Passive mode is daar een redelijke stoplap voor, maar het blijft stom dat er aparte verbindingen worden gemaakt voor het inloggen, browsen door directories en versturen/binnenhalen van bestanden.
dat is misschie nstom voor firewalls maar om het te programmeren is het veel handiger om 3 connecties te gebruiken dan 1. simpelweg omdat je anders konstant moet afvangen wanneer een plain text transfer eindigt en de data stroom begint etc.

Het is dus veel handiger om sowieso 1 socket te hebben voor alle commands en een 2de voor data overdracht.
Bij HTTP, POP en SMTP lukt het ook en de meeste mensen vinden dat ook een behoorlijk simpele protocollen.

De enige oplossing voor FTP zou FTPS moeten zijn (wel veilig) maar maakt het probleem alleen maar erger omdat helemaal niet meer te zien is voor een firewall/NAT wat er opengezet moet worden.

Dus kun je het bijna nergens gebruiken.

Anonymous FTP zou de enige zinnige toepassing zijn die over blijft, maar heel vaak wordt gewoon HTTP gebruikt voor die situaties.

[Reactie gewijzigd door Lennie op 16 april 2011 14:22]

Maar die protocollen zijn niet bedoeld voor grote hoeveelheden data, en daar ook bijzonder inefficiŽnt voor.
Hoe is HTTP minder efficient dan FTP ?

Bij FTP moet je iedere keer een nieuwe TCP-verbinding opzetten, dat levert extra latency op, bij HTTP wordt de data op de zelfde manier verstuurd als bij FTP.

HTTP ondersteund compressie.

Ik denk dat dat dus wel meevalt.
De enige oplossing voor FTP zou FTPS moeten zijn (wel veilig) maar maakt het probleem alleen maar erger omdat helemaal niet meer te zien is voor een firewall/NAT wat er opengezet moet worden.
Je kan gewoon passive FTP met FTPES gebruiken in combinatie met een fixed port range voor de connecties. Dan hoeft de firewall niet meer 'intelligent' te zijn, de client heeft geen problemen achter een NAT en het is veilig of backwards compatible per verbinding. Software die ik hiervoor kan aanbevelen is bijvoorbeeld FileZilla Server.

Het enige waar je gezeur mee blijft houden zijn proxies en strenge firewalls in bedrijfsomgevingen. In dat geval kan je misschien beter kiezen voor SFTP/SCP over TCP poort 443.

[Reactie gewijzigd door The Zep Man op 16 april 2011 20:20]

In dat geval kan je misschien beter kiezen voor SFTP/SCP over TCP poort 443
In alle andere gevallen ook :P
Dat is een kwestie van programeren, het kan wel en het werkt prima zoals bv sftp bewijst. Waarom zou je het probleem bij de gebruiker neer willen leggen? En als je het dan al doet, laat een client 2 connecties openen by default, en niet, zoals in dit protocol, de server de mogelijkheid geven een connectie te openen.

Het is mischien makkelijker programeren, maar als alle programmeurs zo dachten dan zaten we nog steeds in een dos omgeving waar we maximaal 1 programma tegelijkertijd kunnen draaien - dat programmeerd ook wel zo makkelijk namelijk.
Vergeet niet dat dit 40 jaar oud is he? Toen waren de gebruikers van dit soort protocollen nog wat handiger dan de gemiddelde persoon nu, en waren zaken als efficientie voor de computer belangrijker dan het gemak voor de mens...

Met andere woorden, voor een protocol van nu dat weet dat NAT bestaat en de hedendaagse samenleving begrijpt heb je helemaal gelijk, maar voor FTP is dat een beetje als zeggen dat het comfort van de eerste vliegtuigen slecht was en dat ze daar beter over na hadden moeten denken :)

[Reactie gewijzigd door _ep op 17 april 2011 11:02]

Toen had er ook niemand van een firewall gehoord.
maar het blijft stom dat er aparte verbindingen worden gemaakt voor het inloggen, browsen door directories en versturen/binnenhalen van bestanden.
Dat is helemaal niet stom. Dat is zelfs een heel, heel veel gebruikt principe: het hebben van een aparte control channel en data channel. Een principe dat erg veel in gebruik is bij data-georienteerde protocollen. Telefonie (SIP, SS7) werkt op dezelfde manier, bijvoorbeeld.
Dat is inderdaad stom: van firewalls. Dat die daar niet goed mee om kunnen gaan.
Datzelfde kan je zeggen over http, dat is standaard ook onveilig en daarom is er https. Het is maar net waar je het voor nodig hebt en of je daar wel echt SSL voor wilt gebruiken.
Digest authentication over HTTP is veilig, als in, geen plain text password (of ceasor-like encryptie).
Dat klopt maar een gemiddeld websiteje bezoeken heb je imho geen ssl voor nodig (zodra je in gaat loggen wel).

Maar een gemiddeld websiteje uploaden, met darin vele tientallen/honderden/duizenden/.. uren werk, met database passwords in de configfiles enz.... wil je imho altijd over een veilige verbinding doen.
Nog helemaal los van het feit dat 1 scriptkiddie die je ftp-password opvangt je hele site downhaalt en/of misschien wel duizenden bezoekkers infecteert met een trojan.
Lijkt me toch mooi als je ooit een paper schrijft met de strekking "laten we het zo doen wat dat werkt vast goed en handig" en dat 40 jaar later je kunt zeggen dat je een van de bouwstenen van de belangrijkste technologische revolutie hebt 'bedacht'. :)
In September is IPv4 ook al weer 30 jaar.

FTP is zoals iemand hieronder al aangaf, niet echt van deze tijd.

Misschien kunnen we dat zelfs over IPv4 ook wel zeggen, want 32-bits adresruimte is gewoon niet genoeg op de lange termijn.

Tijd voor IPv6 en SCP/SFTP

[Reactie gewijzigd door Lennie op 16 april 2011 14:32]

en SFTP is, wat, geen FTP?
Nee, dat is een subsysteem van SSH. Dus nee, geen FTP.

FTPS is dan wel weer FTP: FTP + SSL of TLS.
Er zijn tal van "ftp" over ssh implementaties jammer dat daar nog geen eenheid in is. en terwijl er achter die sub van ssh de meeste data van het internet achter zit.
SFTP is prima gestandaardiseerd, dus die opmerking is echt onzin. SCP is onstaan vanuit een tool, en dus niet gebaseerd op een documentje. En niet geheel toevallig is SCP inderdaad naar verloop van tijd iets veranderd, maar dat wil niet zeggen dat het nu niet stabiel is, want het werkt opzich prima. Overigens kun je over het algemeen toch beter SFTP gebruiken. Dat er vele implementaties zijn zegt niets, het aantal FTP clients en servers is vele malen groter. Zolang ze maar met elkaar kunnen praten, en dat gaat in het geval van SFTP zonder enig probleem.
Maar hoe deed je dat dan zonder ip adres? of had je ipv3 of 2 of 1 of wat dan ook? of moest je rechtstreeks naar een macadres sturen?
IP is niet het enige protocol. Wel overheersend tegenwoordig, maar daarnaast heb je ook nog bijvoorbeeld IPX/SPX, AppleTalk, DECNet en NCP, de voorloper van TCP/IP. Al deze protocollen hebben hun eigen manier van adresseren.
FTP is zeker nog wel van deze tijd, de SFTP die jij noemt mag dan wel een onderdeel van SSL zijn, maar FTPS en Secure FTP zijn gewoon FTP (met extraatjes).

En wat gebruiken we vrijwel allemaal, vrijwel altijd als we bestanden willen uploaden? (nee, p2p telt nu even niet -_-)
http, rsync, scp, ftp
Ongeveer in die volgorde.
FTP is zoals iemand hieronder al aangaf, niet echt van deze tijd.
Waarom vind je dat?
Success met je website uploaden zonder ftp dan ;)
De computers waar het voor bedoeld was, zijn ook niet meer van de tijd:

1965 - 2000:
http://multicians.org/
http://multicians.org/mulimg/h6180-doors-open-big.jpg

1964 - 1983:
http://www.columbia.edu/acis/history/pdp10.html
Tuurlijk wel. Het is nog steeds exact hetzelfde, alleen wat kleiner en sneller, maar in de basis is er niets verandert.
ik zie iedereen ftp de dood in wensen... maar hoe krijg ik dan mn files naar mn webserver??

directadmin?? dan kies ik toch liver ftp!
zoals vaak gezegt SCP of SFTP. verdient de voorkeur. veilig en simpeler.
Nu de hosting bedrijven nog ;) Bovendien is ftp voor veel mensen veel toegankelijker aangezien je zo met ftp's kan verbinden via explorer (vanaf xp of eerder misschien zelfs al) ;)
Je webhost opent dan gewoon een balie, waar je je USB stick kunt inleveren met je website. :+

Maar hoe moeilijk kan SCP/SFTP zijn? Als ik een "amateur webdesigner" WinSCP voorschuif zal hij denken dat het een FTP client met een wat vreemde naam is.

Of denk ik nou teveel als een tweaker met een flinke slok bier achter de kiezen?
kan iemand mij uitleggen hoe dit dan gebruikt werd?
MS-dos is van de jaren 80, en in de jaren 70 waren er toch nog helemaal geen computers??
in de jaren 60 waren ze er al ;)
toen draaide ze unix systemen of die er op gebaseerd is..
niet echt voor thuis, en zeker weinig met internet aansluitingen, maar het internet is al veel ouder als dat natuurlijk. universiteiten en instanties maakte er al wel gebruik van.
Gebruik eigenlijk al jaren geen FTP meer... Het heeft standaard geen beveiliging en FTPS zie je bijna nooit. Wat mij betreft is SCP (SFTP) de opvolger van FTP, als er ooit een opvolger gaat komen.

[Reactie gewijzigd door TvdW op 16 april 2011 13:51]

Alleen IIS ondersteund het niet, die ondersteund alleen FTPS als veilige variant. FTP was nog betrekkelijk makkelijk door een firewall of NAT te krijgen, maar FTPS helemaal niet, dus ipv. alleen 1 probleem op te lossen (geen cleartext data en wachtwoord) hebben ze het direct ook onmogelijk gemaakt nog iets zinnigs met een firewall te doen (je kunt als firewall niet meer zien welke poort je tijdelijk open moet zetten omdat het encryped is).

Ik zou liever nooit ergens IIS voor gebruiken (ben meer een Linux-/Unix-man), maar voor die situatie dat het er toch is... zou ik heeel graag willen zien dat IIS gewoon SCP/SFTP gaat ondersteunen.

Het protocol ondersteund zelf X.509 (zoals FTPS of HTTPS ) and SSHFP bij de hostname in DNS (met DNSSEC), wat wil je nog meer ?
Kwestie van Windows 2008 + IIS 7 geloof ik, gewoon Secure FTP, standaard :)
Grappig. Ik weet nog dat het eerste wat ik deed, toen ik voor de eerste keer inbelde op het internet was wat mangaplaatjes downloaden van ftp://ftp.sunet.se/pub/pictures/anime-manga/ :P (werkt nog steeds) Best spannend met zo'n ftp-site-lijstje dat ik van een BBS gedownload had. :7

[Reactie gewijzigd door Atomsk op 16 april 2011 15:28]

Ja en dan voor je pc'tje zitten wachten tot je paar kb plaatje gedownload is wat enkele minuten duurde =D

Of 1 mp3tje op "max" snelheid meer dan een uur kon duren :d Nu haal je een heel seizoen in 1080p binnen in de zelfde tijd _/-\o_

Was leuk :) veel rustiger dan het internet van nu met je e-mails, twitter, facebook e.d. waarvan iedereen verwacht dat je er op zit. Vroeger was het internet meer een hidehout een manier om even weg te zijn van de dagelijkse sleur en nu is het eigenlijk deel van de dagelijkse sleur :)
Die heerlijke simple ftp://websitenaam@host.nl waarin je ook gewoon je wachtwoord kon zetten.
Paar bestandjes van links naar rechts slepen (heerlijke Windows-look) en je website was bijgewerkt. Heerlijke ervaringen.


@ Tenshi818 : ja, maar dat doe je zelf!
.... en nu is het eigenlijk deel van de dagelijkse sleur :)
en nu is het soms de oorzaak van die dagelijkse sleur ;)

btw, je beseft toch dat je verschrikkelijk oud klinkt in je post ?
Gefeliciteerd, FTP!

En nu maar hopen dat je snel sterft, want het is echt op geen enkele manier een protocol van deze tijd.
Wat is het alternatief dan? HTTP(s)?
SCP, SFTP en FTPS zijn de alternatieven die het meest op FTP lijken, maar ook BitTorrent of clouddiensten als Dropbox zijn prima geschikt voor het uitwisselen van bestanden. Voor mij part e-mail je files naar iemand, vrijwel alles is beter dan FTP.
Als dat de alternatieven zijn dan blijft FTP nog lang bestaan als simpel alternatief over alle filesystems heen.
Sinds wanneer zijn netwerkprotocollen gebonden aan een filesystem?
Sinds dat data tijdelijk ergens bewaard moet worden om het uit te kunnen lezen.
Niet gebonden, dat schrijft hij ook niet, maar ik vermoed dat FTP wel eens als smerige kludge gebruikt wordt in de plaats van NFS, SMB en dergelijke eveneens niet-filesysteemgebonden netwerkprotocollen. Daar is het echter minder geschikt voor, dus dat oneigenlijk gebruik mag geen reden zijn om het protocol in stand te houden.

@field33P: dat is niet wat met gebonden bedoeld wordt. Immers gebruikt FTP daar OS-calls voor en die zijn in principe transparant betreffende het filesystem.

[Reactie gewijzigd door mae-t.net op 17 april 2011 13:06]

Zou niet zonder kunnen! Wat ook fijn is, is het feit dat programma's zoals Dreamweaver zelf hun verbinding kunnen opzetten zodat je 1 op 1 op de server van (bijv.) je klant kunt werken.

Tadatatata, I'm lovin' it!
Net even RFC-114 doorgebladerd. Wow, dat taalgebruik: lekker pionieren. Ik had gedacht dat die RFC-114 best dichtbij herkenbaar FTP zou zitten maar dat blijkt niet zo te zijn.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True