Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 13

J.U.M.S. Elektrotehnička škola Tuzla Školska godina 2019/2020.

Seminarski rad
Instalacija FTP Servera/Klijenta u računarskoj mreži

Haso Ibrišević
Sadržaj
Uvod.......................................................................................................................................................3
Komunikacija i prenospodataka.............................................................................................................3
Autentifikacijakod FTP protokola..........................................................................................................6
Ranjivostikod FTP protokola..................................................................................................................6
Pogađanje lozinki...............................................................................................................................6
FTP bounce napad..............................................................................................................................7
Enumeracija korisnika........................................................................................................................7
Krađa portova.....................................................................................................................................7
Implementacijske ranjivosti................................................................................................................7
Sigurnosna proširenja FTP protokola.....................................................................................................8
FTPS..................................................................................................................................................8
SFTP..................................................................................................................................................8
Instalacija FTP servera.......................................................................................................................9
Zaključak..............................................................................................................................................10
Uvod
FTP (File Transfer Protocol) je protokol aplikacijskog sloja koji se koristi za prijenosdatoteka
između klijenta i servera u računaskoj mreži preko TCP (Transmission ControlProtocol) veze.
Prva specifikacija FTP protokola objavljena je 1971. godine u RFC-u 114
(Request For Comments), a aktualna specifikacija protokola je opisana u RFC-u 959.FTP
koristi klijent-server arhitekturu i dvije veze između klijenta i servera:prvu za dogovaranje i
kontrolne poruke, a drugu za prijenos podataka. FTP server
uobičajeno osluškuje klijentske konekcije na portu 21, a klijent koristi proizvoljan
port.Korisnici FTP protokola se mogu autentificirati koristeći korisničko ime i lozniku koji se
prenose nezaštićeni u tekstualnom obliku, ali mogu se spojiti i kao anonimni korisnici ako
konfiguracija servera to dozvoljava. Protokol sam po sebi nije siguran i svi podaci se prenose
nezaštićeni, tj. ako netko prisluškuje mrežu vidjeti će podatke. . Podaci i kontrolne poruke
koje se prenose se mogu zaštititi korištenjem FTP-a preko TLS-a (Transport LayerSecurity)
ili tuneliranjem njegovog prometa kroz SSH (Secure Shell).

Komunikacija i prenos podataka


FTP koristi isključivo TCP protokol, pri čemu se koriste dvije veze: kontrolna veza za
komunikaciju i podatkovna veza za prijenos podataka. Tradicionalno port 21 se koristi za
slanje kontrolnih naredbi, a port 20 za prijenos podataka između klijenta i servera. Za prijenos
podataka se može koristiti i drugi port u slučaju pasivnog načina rada FTP protokola. Na
klijentskoj i serverskoj strani se nalaze dva procesa, jedan koji upravlja kontrolnom vezom
( Protocol Interpreter ) i drugi koji upravlja prijenosom podataka ( Data Transfer Process).
Ilustracija FTP protokola dana je na slici 1

Slika 1. Ilustracija FTP

Klijentski proces koji upravlja kontrolnom vezom inicira vezu, šalje FTP naredbe i upravlja
klijentskim procesom za prijenos podataka. Serverski proces kontrolne veze osluškuje veze od
strane klijentskog, uspostavlja vezu, prima FTP naredbe i upravlja serverskim procesom za
prijenos podataka. Serverski proces za prijenos podataka u pretpostavljenom aktivnom načinu
rada uspostavlja komunikaciju s klijentskim procesom, postavlja potrebne parametre za
prijenos i pohranu podataka i prenosi podatke na zahtjev kontrolnog procesa. U pasivnom
načinu rada serverski proces za prijenos
podataka ne inicira konekciju već ju očekuje od strane klijentskog procesa. Pasivni i aktivni
način rada FTP protokola su detaljno opisani u kasnijem tekstu.
Nakon uspostave veze klijent komunicira s FTP serverom tako da mu šalje
naredbe kroz kontrolnu vezu. Neke od tipičnih naredbi su:

Neke od tipičnih naredbi su:

 USER – slanje korisničkog imena prilikom autentifikacije


 PASS – slanje lozinke prilikom autentifikacije
 CD – promjena radnog direktorija na serveru
 GET – dohvaćanje datoteke s FTP servera
 LS – ispisivanje datoteka u trenutnom direktoriju FTP servera
 PUT – prijenos datoteke s klijentskog računala na server
 MKDIR – stvaranje novog direktorija na udaljenom serveru
 QUIT – prekid veze s FTP serverom

Kao rezultat nekih naredbi koristiti će se podatkovna veza za prijenos podataka.


Server odgovara na naredbe slanjem statusnih poruka u obliku trocifrenih brojeva. Prva cifra
određuje je li tražena akcija uspješna ili ne. Statusne poruke su podijeljene u 5 skupina po
njihovom značenju:

 1xx – tražena akcija je započela, klijent može očekivati još jedan odgovor prije nego
 pošalje novu naredbu.
 2xx – tražena akcija je uspješno obavljena i klijent može poslati novu naredbu.
 3xx– naredba je prihvaćena, ali server treba dodatne informacije kako bi ju
 izvršio. Od klijenta se očekuje da pošalje te informacije u idućoj naredbi.
 4xx – naredba nije prihvaćena i tražena akcija nije izvršena, ali greška je
 privremena i klijent može poslati naredbu ponovo.
 5xx – naredba nije prihvaćena i tražena akcija nije izvršena, klijentu se ne
 preporuča ponovno slanje naredbe ili slijeda naredbi koji uzrokuju grešku.

Primjer FTP sesije dan je u slijedećem ispisu;

# ftp ftp.example.com
Connected to ftp.example.com.
220 example FTP server (Version 5.53 Tue Aug 25 10:46:12 MDT 1992)
ready. -- USER user Name (ftp.example.com :user): user 331 Password required for user.
Password:
-- PASS pass
230 User user logged in.
ftp> cd public/
250 CWD command successful.
ftp> ls
200 PORT command successful.
550 No files found.
ftp> put example.txt
200 PORT command successful.
150 Opening ASCII mode data connection for example.txt.
226 Transfer complete.
local: example.txt remote: example.txt
1882 bytes sent in 0.0095 seconds (1.9e+02 Kbytes/s)
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
example.txt
226 Transfer complete.
9 bytes received in 0.0021 seconds (4.3 Kbytes/s)
ftp> quit
221 Goodbye.

U prikazanom primjeru FTP sesije korisnik se prvo autentificira slijedom naredbi USER pa
naredbom PASS kao korisnik user. Zatim se naredbom CWD pozicionira u direktorij public
i zatim učita datoteku example.txt na udaljeni server.FTP podržava dva načina rada: pasivni i
aktivni. Oba načina rada su prikazani na slici 2

Slika 2. Aktivniipasivninačinrada FTP protokola

U oba slučaja klijent će se otvoriti kontrolnu vezu s proizvoljnog porta prema


serveru na njegov port 21. U aktivnom načinu rada klijent na proizvoljnom portu (koji nije isti kao
onaj za kontrolnu vezu) očekuje vezu od strane servera i istovremeno šalje serveru naredbu PORT
broj_porta. Zatim server inicira podatkovnu vezu sa svoga porta 20 na port koji mu je poslao klijent. S
obzirom da se server spaja na klijenta, aktivni način rada može biti problematičan ukoliko se klijent
nalazi iza sigurnosne stijene koja ne dopušta konekcije izvana na specificirani port. Kako bi se ovaj
problem riješio postoji pasivni način rada FTP portokola. U pasivnom načinu rada klijent inicira i
kontrolnu i podatkovnu vezu. Klijent će prvo otvoriti kontrolnu vezu prema serverskom portu 21, a
zatim šalje naredbu PASV, a server će otvoriti proizvoljan port i poslati njegov broj u odgovoru na
naredbu kako bi klijent znao na koji port se treba spojiti.

Autentifikacija kod FTP protokola


FTP protokol koristi korisničko ime i lozinku za prijavu korisnika. Kako bi se korisnik
prijavio u sustav mora poslati korisničko ime koristeći USER naredbu i zatim lozinku
koristeći naredbu PASS. Ovaj slijed naredbi se šalje nekriptiran preko mreže tako da su
podatci ranjivi na prisluškivanje. Ukoliko korisničko ime i lozinka odgovaraju započinje FTP
sesija. FTP server može podržavati anonimni pristup. Kod anonimnog pristupa korisnik šalje
korisničko ime anonymous, a za lozinku svoju e-mail adresu, iako se ne provodi
nikakva verifikacija poslane e-mail adrese

Ranjivosti kod FTP protokola

FTP protokol kao i mnogi stariji protokoli nije dizajniran da bude siguran i sadrži
mnoge sigurnosne ranjivosti. U nastavku su opisani neke od ranjivosti FTP protokola i
potencijalni napadi koji iskorištavaju te ranjivosti.

Pogađanje lozinki

FTP protokol ne nudi nikakvu zaštitu od pogađanja lozinki. Ukoliko je napadaču


poznato korisničko ime, može kroz veliki broj zahtjeva u kratkom vremenu pogoditi lozinku
korisnika. Neke od rješenja ovog problema koje predlaže RFC 2257 su ograničavanje
broja slanja lozinki, nakon određenog broja netočnih lozinki server prekida vezu.
Također server bi trebao odgoditi odgovor na nove zahtjeve kratko vrijeme kako bi se
smanjio učinak takvih napada. Ova rješenja napadač može zaobići korištenjem više
paralelnih veza prema serveru. Kako bi se to riješilo server može ograničiti broj
paralelnih kontrolnih veza ili detektirati sumnjive radnje kroz više sesija i zabraniti pristup.
Ova rješenja mogu prouzročiti Denial of Service napade u kojem napadač namjerno
pokreće napad kako bi se blokirao pristup legitimnom korisniku.

FTP napad
Ovaj napad iskorištava
PORT naredbu FTP protokola za napadanje žrtve pri čemu je
teško odrediti od kuda dolazi napada jer se FTP server koristi kao posrednik. Naredba
PORT služi kako bi klijent specificirao port na koji se server spaja u aktivnom načinu
rada. Napadač šalje FTP PORT naredbu FTP serveru, ali s IP adresom i portom žrtve.
Na ovaj način napadač može otkriti otvorene portove na žrtvinom računalu i dobiti pristup
portovima kojima inače kroz direktnu komunikaciju nema.
Enumeracija korisnika

Standardna specifikacija FTP protokola pretpostavlja slanje odgovora 530 kada je korisničko
ime neispravno, a u slučaju kada je ispravno server šalje odgovor 331. Ovo se može
iskoristiti za enumeraciju korisničkih imena. Kako bi se spriječila ova ranjivost, preporuča se
da server uvijek vraća odgovor 331 na USER naredbu, a prekida komunikaciju nakon što se
pošalje lozinka. Na ovaj način server uvijek šalje istu poruku neovisno o tome je li poslano
krivo korisničko ime ili lozinka

Krađa portova

Napadač legitimnom komunikacijom s serverom saznati koji port se koristiti u


komunikaciji i pogoditi koji port će se koristiti u budućnosti. Spajanjem na predviđeni port
napadač može onemogućiti legitimnom klijentu da se spoji i dohvati datoteke, također
napadač može preuzeti datoteke koje su namijenjene legitimnom korisniku. Osim toga
napadač može ubaciti maliciozne datoteke u tok podataka između korisnika i servera,
pri čemu server misli da datoteke dolaze od korisnika. Ovaj problem se može riješiti
tako da klijent i server koriste nasumično odabrane portove za podatkovne veze.

Implementacijske ranjivosti

Iako implementacijske ranjivosti nisu ranjivosti samog protokola, često se pojavljuju


i mogu imati ozbiljne posljedice na sigurnost stoga su ovdje navedeni neki primjeri.
Anonimni pristup omogućava korisniku da se spoji na server s minimalnom
autentifikacijom i dobije pristup javnim datotekama. Sigurnosni problemi se javljaju kada
korisnik zbog loše implementacije može čitati sve datoteke na sustavu ili stvarati nove.
Zbog loše implementacije serveri mogu biti ranjivi na napade preljevom
međuspremnika. Takvi napadi omogućuju napadaču da u najgorem slučaju izvrši
proizvoljan kod na serveru ili barem izazove grešku u serverskom procesu i prekine
ga. Ranije verzije FTP servera su imale omogućenu opcionalnu naredbu
SITE EXEC.Ova naredba omogučava korisniku izvršavanje proizvoljnih naredbi s
privilegiranim dozvolama na FTP serveru. Naravno ovo predstavlja veliki sigurnosni problem
s obzirom da se može koristiti za različite maliciozne aktivnosti, tako da je preporučeno da je
navedena naredba onemogućena.

Sigurnosna proširenja FTP protokola

Kako bi se omogućilo sigurno korištenje FTP protokola postoje sigurnosna


proširenja u obliku FTPS i SFTP protokola. Navedeni protokoli su proširenja FTP protokola
dodatnim sigurnosnim mehanizmima poput SSL/TLS i SSH protokola.

FTPS

FTPS (FTP Secure, FTP-SSL) je sigurnosno proširenje FTP protokola korištenjem


SSL i TLS kriptografskih protokola. Navedeni kriptografski protokoli pružaju tajnost i
integritet podataka koji se prenose. FTPS podržava dvije metode za implementiranje
sigurnosti: implicitnu i eksplicitnu. Implicitna pretpostavlja da se TLS sjednica stvori na
početku komunikacije tako da klijent pošalje TLS ClientHello poruku. Ukoliko klijent ne
pošalje tu poruku na početku FTPS server odbacuje konekciju. Kako bi se zadržala
kompatibilnost FTPS servera sa klijentima koji koriste FTP, server za kontrolnu
vezu koristi port 990, a za podatkovnu port 989. Ovo omogućava administratorima da
podrže nesigurni FTP protokol na portu 21. Kod eksplicitne metode nezaštićena veza se
unaprjeđuje u zaštićenu TLS sjednicu. Klijent sam mora zatražiti korištenje sigurne
sjednice od strane servera, nakon čega slijedi dogovor između klijenta i servera
oko zajedničke metode šifriranja podataka i autentifikacije. Mehanizam za dogovaranje
metode šifriranja i autentifikacije koristi novu naredbu AUTH. Ukoliko klijent ne zatraži
korištenje sigurne sjednice server može odbaciti konekciju ili propustiti klijenta da nastavi u
nesigurnom načinu rada.

SFTP

SFTP (SSH File Transport Protocol) je protokol koji omogućava pristup i prijenos
podataka preko bilo kojeg pouzdanog toka podataka, npr. preko SSH (
Secure Shell)tunela. Ovaj protokol pretpostavlja da se komunikacija odvija preko sigurnog
kanala, te da je server autentificirao korisnika i da je identitet korisnika poznat. S obzirom da
se SFTP odvija preko SSH tunela, on je inherentno siguran, nije moguće birati hoće li se
podatci šifrirati ili ne. SFTP također daje detaljnije podatke o datotekama kojima se barata i
omogućava dodatne operacije nad tim datotekama koje inače u FTP protokolu nisu
podržane. Protokol se također može koristiti u kombinaciji s nekim drugim oblikom
sigurnog kanala poput onoga koji daje TLS protokol.

Instalacija FTP servera

U ovom primjeru, koristicemo Windows Server 2008 R2 za postavljanje FTP.

Ako IIS nije instaliran,

1. Idite na Start > Control Panel > Administrative Tools > Server Manager u
Windows Server Manageru.
2. Idite na Roles . Desni klik na Roles, onda kliknuti na Add Roles.

3. U Add Roles prozoru, otvoriti Server Roles i čekirati Web Server (IIS).
4. Proći kroz setup wizard, i kliknuti Install. Sačekati da se instalacija završi.
Ako je IIS instaliran (kao Web server)
1. Ići na Start > Control Panel > Administrative Tools > Server Manager
2. U Windows Server Manager, ići na Roles , i proširiti Web Server (IIS).
3. Desni klik na Web Server (IIS), pa kliknuti na Add Role Services
4. U Add Role Services prozoru, ići na Roles Services, i čekirati FTP Server.
5. Potvrditi da je IIS Management Console čekiran ispod Management Tools
6. Kliknuti Next, pa onda Install.Sačekati da se instalacija završi.

Transfer fajlova

Za prenos fajlova potrebno je uključiti FTP site. Kada je FTP site osposobljen, klijent može
prebacivati fajlove na isa sajta koristeći FTP protocol.
Instalacija FTP site:
1. Idite na Start > Control Panel > Administrative Tools > Internet Information
Services (IIS) Manager.
2. Kada je IIS console otvoren, proširite lokalni server.
3. Desni klik na Sites, te klik na Add FTP Site

U Add FTP Site prozoru, napisati ime FTP servera i njegovu putanju, te kliknuti Next.
Putanja bi trebala biti ista kao i putanja za stavljanje permisije za anoniman ulazak na server,
koristili smo:
%SystemDrive%\ ftp \ftproot

U opcijama Binding and SSL Settings , ukucati IP addresu servera. Čekirati Start FTP Site
Automatically opciju. Izaberite SSL Based on Constraint. Kliknite Next.
6. Sada, izaberite Basic zaautentikaciju.
7. Kliknuti Finish. Postavljanje FTP sajta je završena.

Pristup fajlovima na FTP serveru

Da bi smo pristupili fajlovima na FTP serveru, otvoriti pretraživanje fajlova i ukucajte


ftp://serverIP. FTP server traži ime i šifru. Ukucajte ime i šifru (Windows ili Active
Directory ) i kliknite Login. Fajlovi i folderi će se prikazati ispod FTP servera.
Zaključak

FTP protokol je protokol aplikacijskog sloja koji služi za prijenos podataka i danas
se vrlo često koristi, iako je nesiguran. S obzirom da sigurnost nije uzeta u obzir prilikom
stvaranja ovog protokola postoje mnoge ranjivosti u njemu koje napadači mogu iskoristiti
za maliciozne radnje. Kako bi se navedene ranjivosti ublažile i omogućilo sigurno
korištenje FTP protokola napravljeni su novi protokoli kao sigurnosna proširenja FTP
protokola. Navedena sigurnosna proširenja omogućuju prijenos podataka preko sigurnog
kanala koji osigurava njihovu tajnost i integritet.

You might also like