File Transfer Protocol

Published on January 2017 | Categories: Documents | Downloads: 39 | Comments: 0 | Views: 260
of 5
Download PDF   Embed   Report

Comments

Content


File Transfer Protocol (FTP) je standardni mrežni protokol koji se koristi za premještanje datoteka s
jednog hosta na drugi putem mreže temeljene na TCP-u, kao što je Internet.
FTP je sagrađen na korisničko-serverskoj arhitekturi te koristi odvojeno nadzornu i podatkovnu vezu
između korisničkog računala i servera. FTP korisnici se mogu ovjeriti koristeći čisti tekst kao protokol
prijave, obično u obliku korisničkog imena i zaporke, ali se mogu spojiti i anonimno ako je server
konfiguriran kako bi to dopustio. Za siguran prijenos koji skriva (šifrira) korisničko ime i zaporku, te
šifrira sadržaj, FTP se često osigurava s SSL/TLS („FTPS“). Ponekad se za zamjenu koristi također SSH
File Transfer Protocol (SFTP), ali je tehnološki drugačiji. FTP veza se uspostavlja na zahtjev korisničkog
računala prema serverskom računalu. Korisničko računalo mora posjedovati program koji
implementira FTP protokol (tzv. FTP klijent), a serversko računalo mora posjedovati program koji
prihvaća veze na standardnom FTP portu te također razumije komande protokola FTP (tzv. FTP server
ili FTP demon). Kada se veza uspostavi, klijentski program šalje korisničke komande serverskom
programu, koji ih obavlja i šalje odgovor. Taj odgovor može biti poruka da je naredba uspješno
obavljena, datoteka koja je zahtijevana ili poruka o grešci.
Prve FTP korisničke aplikacije su bile aplikacije naredbenog retka (command-line aplications)
razvijene prije operativnih sustava (OS) i grafičkog korisničkog sučelja (GUI) te se također dostavljaju
s većinom Windows, Unix- i LInux operativnih sustava. Puno FTP klijenata i automatiziranih usluga se
od tada razvilo za računala, servere, prijenosne uređaje i hardver te je FTP ugrađen u stotinu
proizvodnih aplikacija, kao što su uređivači web stranica.
Povijest
Izvorni tehnički opis za FTP je napisao Abhay Bhushan i objavljen je kao RFC 114 16.4.1971. godine te
poslije zamijenjen RFC 765 (lipanj 1980.g.) pa je zamijenjen s današnjim tehničkim opisom RFC 959
(listopad 1997.g.). Nekoliko standarda dopuna je predloženo RFC 959, npr. RFC 2228 (lipanj 1997.g.)
predlaže sigurnosno proširenje i RFC 2428 (rujan 1998.g.) dodaje podršku za IPv6 i definira novi tip
pasivnog načina rada.
Osvrt na protokol
Komunikacija i prijenos podataka

Protokol je prvi put tehnički opisan u lipnju 1980. godine te je korigiran u RFC 959, što je ovdje
sažeto.
FTP može prometovati u aktivnom i pasivnom načinu rada, što određuje kako je podatkovna veza
uspostavljena. U aktivnom načinu rada, korisnik stvara FTP nadzornu vezu. U okolnostima kada je
korisničko računalo iza vatrozida i nije u mogućnosti prihvatiti dolazeću TCP vezu, može se koristiti
pasivni način rada. U ovom načinu rada korisničko računalo koristi nadzornu vezu kako bi poslao
PASV naredbu serveru te potom primio IP adresu servera i broj porta servera, koju potom korisničko
računalo koristi da bi otvorilo podatkovnu vezu proizvoljnog korisničkog porta s IP adresom servera
i njegovim brojem porta koji je primio. Oba načina su unaprijeđena u rujnu 1998. godine kako bi
podržavala IPv6. S vremenom su se daljnje promjene u pasivnom načinu rada uvodile, unapređujući
ga u prošireni pasivni način rada.
Server odgovara preko nadzorne veze s troznamenkastim kodom stanja u ASCII-u s neobveznom
tekstualnom porukom. Na primjer „200“ (ili „200 OK“) što znači da je zadnja naredba bila uspješna.
Brojevi predstavljaju kod odgovora, a proizvoljni tekst predstavlja čitljivo objašnjenje ili zahtjev (pri.
<trebam račun za spremanje datoteke>). Trenutno prebacivanje podataka preko podatkovne veze
se može prekinuti koristeći poruku za prekid preko nadzorne veze.
U trenutku prebacivanja podataka kroz mrežu mogu se koristiti četiri prikaza podataka:
- ASCII način rada: koji se koristi za tekst. Podatci se pretvaraju, ako je potrebno, odnosno
znakovni prikaz kod hosta koji ih šalje u „8-bitni ASCII“ prije slanja te (ponovno, ako je
potrebno) u znakovni prikaz hosta koji ih prima. Kao posljedica, ovaj način je neprikladan za
datoteke koje sadrže podatke koji nisu čisti tekst.
- slikovni način (uobičajeno zvan binarni način): stroj koji šalje šalje svaku datoteku bajt za
bajtom te tu struju bajtova, stroj koji ih prima, sprema kako ih prima. (podrška slikovnom
načinu je preporučena za sve implementacije FTP-a)
- EBCDIC način: se koristi za običan tekst između hostova koji koriste EBCDIC znakovni skup.
Ovaj način je inače kao u ASCII način.
- Lokalni način: dopušta dvama računalima s identičnim postavkama slanje podataka u
vlasničkom formatu bez potrebe za pretvaranjem u ASCII.
Za tekstualne datoteke, različiti nadzori oblika i izbori strukture zapisa su osigurani. Ove mogućnosti
su dizajnirane da bi se olakšalo rad s datotekama koje koriste Telnet i ASA.
Prijenos podataka se može napraviti u bilo kojem od tri moda:
- Način strujanja: podatci se šalju neprestanim strujanjem, oslobađajući FTP bilo kakve obrade
podataka. Dapače, svi su podatci prepušteni TCP-u. Nije potreban indikator kraja datoteke,
sve dok datoteka nije podijeljena u zapise
- Blokovni način: FTP dijeli podatke u nekoliko blokova (zaglavlje bloka, broj bajtova i
podatkovno polje) i potom ih šalje na TCP
- Sažeti način: Podatci su sažeti koristeći se jednim algoritmom (obično sažimanje slijeda istih
znakova )
PRIJAVA
FTP prijava koristi obično shemu korisničkog imena i zaporke za odobravanje pristupa. Korisničko ime
se šalje serveru koristeći naredbu USER, a zaporka se šalje koristeći naredbu PASS. Ako su korisničke
informacije prihvaćene od strane servera, server šalje pozdrav korisniku te razmjena podataka
(sesija) započinje.
ANONIMNI FTP
Host koji omogućava FTP uslugu može omogućiti anonimni FTP pristup. Korisnici se obično prijavljuju
na uslugu 'anonimnim' (mala slova te osjetljiv na veličinu slova na nekim FTP serverima) računom
kada ih se zatraži korisničko ime. Iako od korisnika se najčešće traži slanje e-mail adresa umjesto
lozinki, te se ne obavlja nikakva provjera isporučenih podataka.
Premošćivanje NAT-a i vatrozida
FTP obično prebacuje podatke ponovnim spajanjem servera na korisničko računalo, nakon što je
naredba PORT poslana s korisničkog računala. Ovo je sporno i za NAT i za vatrozid, koji ne
dozvoljavaju spajanje s Interneta na unutrašnje hostove. Za NAT, dodatna komplikacija je ta da prikaz
IP adrese i broja porta u naredbi PORT se odnosi na unutarnju IP adresu i broj porta hosta, a ne na
javnu IP adresu i port NAT-a.
Postoje dva pristupa ovom problemu. Jedna je da FTP korisničko računalo i FTP server koriste
naredbu PASV, koja omogućava da se podatkovna veza uspostavi s korisničkog računala na serversko.
Ovaj način naširoko koriste moderni FTP klijenti. Drugi pristup je da se NAT obavijesti o vrijednostima
naredbe PORT, koristeći pristupnik aplikacijskog nivoa (application-level gateway) za ovu svrhu.
RAZLIKE S HTTP-om
FTP se smatra za izvanpojasnu kontrolu, kao suprotnost unutarpojasnoj kontroli koju koristi HTTP.
PODRŠKA WEB PREGLEDNIKA
Većina uobičajenih web preglednika mogu dohvatiti datoteke koje su smještene na FTP serverima,
makar mogu ne podržavati proširenja protokola kao FTPS. Kada se FTP – prije nego HTTP – URL
unese, sadržaj kojem se može pristupiti je prikazan sličan Web sadržaju. Potpuni FTP klijent se može
pokrenuti unutar web preglednika u obliku dodatka.
SINTAKSA
FTP URL sintaksa je opisana u RFC1738, i ima oblik:
ftp://[<user>[:<password>]@]<host>[:<port>]/<url-path> (dijelovi u zagradama su neobavezni).
Na primjer:
ftp://javni.ftp-server.primjer.com/mojamapa/mojadatoteka.txt
ili:
ftp://user001:[email protected]/ mojamapa/mojadatoteka.txt
Više detalja o navođenju korisničkog imena i zaporke se može naći u dokumentaciji preglednika, kao
što su Firefox i Interenet Explorer. Po zadanim postavkama, većina web peglednika koriste pasivni
(PASV) način, koji lakše premosti krajnje korisničke vatrozide.
SIGURNOST
FTP nije napravljen da bi bio siguran protokol – posebno po današnjim standardima – i posjeduje
mnoge tajne slabosti. U svibnju 1999. autori RFC 2577 su popisali ranjivost na slijedeće probleme:
- brute force napad (pokušaj dešifriranja poruke različitim ključevima)
- bounce napad (FTP bounce attac)
- hvatanje paketa (sniffing)
- krađa porta
- zaštita korisničkog imena
FTP nije u mogućnosti šifrirati svoj promet; cijeli prijenos je u tekstualnom obliku, i korisnička imena,
zaporke, naredbe i podatci se mogu lako pročitati hvatanjem podataka na mreži (sniffing). Ovaj
problem je zajednički s mnogim Internet protokolima (kao što su SMTP, Telnet, POP i IMAP) koji su
bili stvoreni prije stvaranja mahanizama za šifriranje kao što su TSL ili SSL. Uobičajeno rješenje za ovaj
problem je korištenje „sigurnu“ TLS zaštićenu varijantu nezaštićenih protokola (primjer FTPS za FTP,
TelnetS za Telnet, itd.) ili drugi, sigurniji protokol koji može obaviti posao. kao što su SFTP/SCP alati
uključeni u većinu implementacija Secure Shell protokola (SSH).
Sigurni FTP
Postoji nekoliko načina sigurnog prijenosa datoteka koji se zovu „Secure FTP“ na jednoj ili drugoj
strani.
FTPS
Izričiti FTPS je proširenje FTP standarda koji omogućuje korisničkim računalima zahtjev da FTP sesija
bude šifrirana. To se čini slanjem naredbe „AUTH TLS“. Serversko računalo ima izbor odobravanja ili
odbijanja veze koja ne zahtijeva TLS. Ovo proširenje protokola je definiranom u predloženom
standardu: RFC 4217. Izričiti FTPS je zastario standard za FTP koji zahtijeva korištenje SSL ili TLS veze.
Drugi portovi su se koristili od običnog FTP-a.
SFTP
SFTP, „SSH File Transfer Protocol“ nije srodan FTP-u osim što također prenosi datoteke i ima sličan
skup korisničkih naredbi. SFTP, ili sigurni FTP, je program koji koristi Secure Shell (SSH) za
prebacivanje datoteka. Za razliku od standardnog FTP-a, šifrira naredbe i podatke, sprečavajući da se
zaporke i osjetljive informacije otvoreno šalju na mreži. Po svojoj funkcionalnosti je srodan FTP-u, ali
pošto koristi drugačiji protokol, standardni FTP klijenti se ne mogu korisitit za komuniciranje s SFTP
serverom, niti se itko može spojiti na FTP server s klijentom koji podržava samo SFTP.
FTP preko SSH (ne SFTP)
FTP preko SSH (ne SFTP) se odnosi na postupak tuneliranja klasične FTP sesije preko SSH veze. Pošto
FTP koristi više TCP veza (neuobičajeno za TCP/IP protokol koji se još koristi), posebno je teško
napraviti tuneliranje preko SSH. S mnogim SSH klijentima, pokušavajući uspostaviti nadzorni kanal
(početnu korisnik-server vezu na portu 21) te će on štititi samo taj kanal; kada su podatci prebacivani,
FTP softver s bilo koje strane će uspostaviti novu TCP vezu (podatkovni kanali), koji zaobilazi SSH vezu
i tako nema zaštitu povjerljivosti ili nepovredivosti, itd.
S druge strane, neophodno je da SSH klijentski softver ima određeno znanje o FTP protokolu, da
nadgleda i prepisuje poruke nadzornog FTP kanala i autonomno otvara novo prosljeđivanje paketa za
FTP podatkovni kanal. Softverski paketi koji podržavaju ovaj način uključuju:
- Tectia ConnectSecure (Win/Linux/Unix)
- Tectia Server for IBM z/OS
- FONC (the GPL licensed)
- Co:Z FTPSSH Proxysuite
Nekada se misli na FTP preko SSH kao na sigurni FTP, pa se ne bi smjelo pobrkati s ostalim načinima
osiguravanja FTP-a, kao što su SSL/TLS (FTPS). Ostali načini prijenosa podataka koji koriste SSH koji
nisu u svezi s FTP-om uključuju SFTP i SCP; o svakome od ovih, cijeli razgovor (vjerodajnice i podatci)
su uvijek zaštićeni SSH protokolom.
Lista FTP naredbi
Glavni članak: Lista FTP naredbi
FTP kodovi u odgovoru
Dolje niže je sažetak kodova u odgovorima koje može vratiti FTP server. Ove kodove je standardizirao
RFC 959 od IETF. Kao što je bilo rečeno ranije u ovom članku, kod odgovora je troznamenkasta
vrijednost. Prva znamenka označava jedan od tri moguća ishoda - uspjeh, neuspjeh ili upućuje na
grešku ili nepotpun odgovor:
- 2yz – odgovor o uspjehu
- 4yz ili 5yz – odgovor o neuspjehu
- 1yz ili 3yz – greška ili nepotpuni odgovor
Druga znamenka definira vrstu greške:
- x0z – sintaksa. Upućuje na grešku u sintaksi.
- x1y – informacija. odgovara na zahtjev za informacijom.
- x2z – veze. Odgovor se odnosi na nadzornu ili podatkovnu vezu.
- x3y – ovjera i računi. Odnosi se na proces prijave i procedure koje se tuču računa
- X4z – nije definirano
- X5z – datotečni sustav. Odnosi se na poruke koda stanja serverskog datotečnog sustava
Treća znamenka koda u odgovoru se koristi da bi dala dodatne detalje o svakoj od kategoraja
definiranih s drugom znamenkom
Refernece
Vanjski linkovi

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close