FTP (File Transfer Protocol), je standardni protokol za prenos podataka na internetu, preciznije na TCP/IP mrežama kao što je internet. Kao primere za najčešću upotrebu, možemo navesti prenos sadržaja web sajta/prezentacije prema hosting serverima (upload) i preuzimanje fajlova/datoteka sa servera neke od file sharing mreža (download).

FTP protokol se široko primenjuje kod svih aplikacija koje imaju potrebu za prenosom podataka sa servera, bilo da je u pitanju preuzimanje antivirus definicija ili najnoviji update softvera koji je postavljen na FTP server proizvođača.

FTP je prisutan, praktično od samih početaka interneta. U periodu njegovog nastanka, kada se komunikacija između računara vršila putem konzolne sesije (početak devedesetih i ranije) FTP je korišćen kao sredstvo za razmenu podataka, tako što su komande kucane u okviru command prompt prozora. Treba naglasiti da je FTP protokol stariji i od TCP/IP protokol steka čiji je danas sastavni deo. Prvi FTP standard (RFC 114) objavljen je daleke 1971 godine.

FTP protokol je zasnovan na standardnoj klijent-server arhitekturi i za uspostavljanje sesije prema izabranom serveru biće vam potreban FTP klijent. Za ovu svrhu mogu poslužiti file ili web browseri koji integrišu FTP klijenta, kao što su Windows Explorer, Internet Explorer, Firefox, ili neka od mnogobrojnih FTP klijent aplikacija dostupnih za preuzimanje u besplatnoj ili komercijalnoj verziji.

Filezilla ftp klijent – interfejs

Filezilla ftp klijent – interfejs

FTP klijent aplikacije su praktično grafički interfejs i proširenja za standardni set FTP naredbi koje su podrazumevano raspoložive u okviru svih ozbiljnih operativnih sistema, bio to Unix, MAC OS ili Windows. U okviru Windows command prompta možete ukucati naredbu ftp praćenu adresom vašeg ftp servera, primer: ftp imeservera.domen ili ftp ip_adresa_servera

Ukoliko je sve ok, primićete poruku da je sesija između vas i ftp servera uspostavljena, biće prikazani parametri sesije i poziv da unesete korisničko ime, a potom i dogovarajuću lozinku. Listing raspoloživih FTP naredbi možete dobiti unosom komande help. Grafički prikaz ove procedure i listu komadi sa objašnjenjima mogu se videti na sledećem linku:
http://www.serverintellect.com/support/ftp/ftp-cmd.aspx

Koju god formu FTP klijenta da koristite, biće vam potrebni podaci u vidu adrese servera (URL ili IP adresa) i podataka za logovanje (username i password). Pojedini serveri (oni koji hostuju javno dostupne podatke, najčešće programe ili update-ove) omogućuju anonymous logovanje pri čemu se kao username navodi standardno anonymous ili ftp. Jedna od popularnih aplikacija za FTP transport je FileZilla, open source softver pod GNU licencom u varijanti FTP klijenta i FTP servera.

Pored implementacije FTP klijenta u okviru Windows file i web browsera, Microsoft uključuje i FTP Server u svim verzijama Windows 7 operativnog sistema (sve verzije, pa i Home) kao opcionu stavku koju je potrebno uključiti u okviru Turn Windows features on or off sekcije. FTP Server pri tome nije deo Internet Information Servisa (IIS), u smislu da se može uključiti nezavisno od njega.


Tehnički aspekti

Karakteristično za FTP protokol je da se komunikacija odvija korišćenjem dva zasebna porta, u skladu strukturom komunikacije koja se sastoji od kontrolne i data sesije (prenosa podataka). Komunikacija uvek započinje kontrolnom sesijom i odvija se na standardnom portu 21 servera, dok klijent koji inicira komunikaciju to čini sa proizvoljnog porta.

Pošto je klijent kreirao kontrolnu sesiju, on serveru prosleđuje svoju IP adresu i odgovarajući (drugi) port za data sesiju (prenos podataka). Server sada poseduje potrebne informacije za kreiranje data sesije ka klijentu (IP adresu i port za data sesiju klijenta) i može da počne prenos podataka, standardno sa svog porta 20. Klijent prihvata prenos podataka i ova procedura može da radi bez problema u situacijama kada klijent nije ograničen firewall pravilima. Ovakav tip FTP konekcije naziva se i aktivna sesija.

Osnovni problem sa ovakvim sesijama su ograničenja pristupa od spolja drugom (data) portu kojeg je FTP klijent naznačio tokom kontrolne sesije. Kada je klijent iza firewall-a, pokušaj pristupa spolja ovom portu biće detektovan kao neregularni saobraćaj, a problem sa pristupom od spolja postoji i ako je adresa klijenta u NAT konfiguraciji.  Podsetimo se: server treba da inicira data sesiju sa svog porta 20 ka data portu klijenta.

Problem nedostupnosti od spolja data portu klijenta, rešava se tzv. pasivnom sesijom. Različitost pasivne u odnosu na aktivnu sesiju ogleda se u činjenici da i data sesiju umesto servera sada inicira klijent.  Po uspostavljanju kontrolne sesije, klijent će umesto standardne PORT komande, proslediti PASV (passive) komandu. Reakcija server na PASV komandu:  server će (umesto klijenta) otvoriti odgovarajući port za data sesiju i informaciju proslediti klijentu PORT komandom.

Klijent zatim sa svog data porta inicira sesiju za prenos podataka što za firewall ne predstavlja problem. FTP protokol nije kreiran da zadovolji povećane sigurnosne zahteve. Sam protokol ne podržava enkripciju i svi podaci, kako kontrolne sesije u formi teksta, tako i transporta podataka su neobezbeđeni i izloženi neovlašćenom pristupu svakome ko je u stanju da ih presretne tokom transporta na mreži.


Sigurnosni aspekti

Implementacija SSL protokola na FTP je inicijalno urađena 1996. godine u formi FTPS (FTP Secure). Starija Implicit FTPS varijanta koristi različite portove u odnosu na standardni FTP i urađena je tako da zahteva korišćenje SSL ili TSL konekcije u komunikaciji (nema pregovaranja o metodi konekcije i server će odbiti komunikaciju ako nije inicirana standardnom secure metodom).

U Explicit FTPS varijanti, klijent mora eksplicitno da zahteva secure komunikaciju i uđe u process pregovaranja o metodi enkripcije, a u slućaju da je ne zahteva, server može prihvatiti unsecure komunikaciju ili je odbiti/ograničiti.

Microsoft FTP server – isporučuje se i uz Windows 7 OS kao besplatni dodatak – interfejs

Microsoft FTP server – isporučuje se i uz Windows 7 OS kao besplatni dodatak – interfejs

U nedostatke FTP protokola, ubrojaćemo još i nepostojanje mehanizma za kontrolu integriteta podataka koji se prenose. Pošto ne postoji način da klijent proveri da li je primio kompletan sadržaj, mehanizmi za proveru integriteta podataka se implementiraju na nivou aplikacija, van samog protokola.


Zaključak

FTP klijent funkcije svakodnevno koristimo kao integralni deo raznih aplikacija a da najčešće toga nismo svesni. Za namensko pristupanje podacima na nekom FTP serveru sasvim korektno će poslužiti Windows  ili Internet Explorer ili neki od besplatnih FTP klijenata, u zavisnosti od potreba. Komparativnu listu FTP klijenata možete pogledati na Wikipediji, razvrstano po većem broju kriteijuma, među kojima je i vrsta licence.

FTP Server (posebno njegova sasvim upotrebljva besplatna varijanta) može biti zanimljiv firmama i organizacijama, ali i kao rešenje za ličnu upotrebu u situacijama kada postoji potreba za redovnim deljenjem fajlova sa osobama van matičnog mrežnog okruženja. Prednost u odnosu na transfer fajlova mejl komunikacijom ili korišćenjem nekog javnog FTP servisa je u nepostojanju ograničenja (veličina fajla,  broj istovremenih transfera i kontrola sadržaja)

Sva ova ograničenja se kod FTP servera (i onih besplatnih) mogu definsati, ali u situaciji kada posedujete svoj FTP server, te veličine sami kontrolišete, a server možete pokrenuti ili isključiti prema potrebi. Lista FTP server softvera koja uključuje i podatke o vrsti licence pod kojim su objavljeni takođe se nalazi na Wikipediji.

Tekst je preuzet sa ugašenog bloga IT modul i originalni autor ovog teksta je Branislav Kolar. Kompjuteraš IT blog će nastaviti da objavljuje tekstove sa tog bloga kako riznica znanja sa te lokacije ne bi otišla u zaborav.