Разумевање СФТП у односу на ФТПС у односу на ФТП

FTP, ili protokol za prenos datoteka, predstavlja jedan od najčešće korišćenih metoda za prebacivanje podataka u različitim situacijama.

Postoje razne bezbednosne varijacije FTP-a, kao što su FTPS i SFTP, koje se razlikuju u načinu funkcionisanja. Te razlike se ogledaju u načinu razmene podataka, nivou sigurnosti komunikacije, kao i aspektima zaštitnog zida.

Razumevanje načina na koji ovi protokoli rade, kao i razlika između njih, može vam pomoći da odaberete onaj koji najbolje odgovara vašim potrebama.

FTP

FTP je protokol za prenos datoteka koji postoji decenijama, prvobitno predložen u RFC 114. Kasnije je standardizovan u RFC 959, koji se koristi i danas.

FTP koristi dva kanala za razmenu informacija: jedan za komande, a drugi za prenos podataka. Za funkcionisanje su mu potrebna dva porta – komandni kanal i kanal za podatke.

Komandni kanal radi na portu 21, prihvatajući veze od klijenata i upravljajući slanjem komandi. On ostaje otvoren tokom čitave FTP sesije, sve dok klijent ne pošalje komandu QUIT ili dok server ne prekine vezu zbog neaktivnosti ili nekog drugog razloga.

Kanal za podatke koristi privremeni port na zahtev, koji sluša na serveru (pasivni režim) ili klijentu (aktivni režim). Ovaj kanal je zadužen za prenos stvarnih podataka, poput listinga direktorijuma i samih datoteka, između servera i klijenta.

Za razliku od komandnog kanala, kanal za podatke je otvoren samo tokom prenosa datoteke, nakon čega se zatvara. Za istovremeni prenos više datoteka ili listinga direktorijuma, potrebno je više portova za kanal podataka.

FTP protokol je inherentno nesiguran, jer i komandni i kanali podataka prenose informacije bez šifrovanja, što ih čini podložnim presretanju od strane napadača.

Kao što je ranije navedeno, FTP zahteva dolaznu vezu na portu 21/tcp na strani servera za komandni kanal. Pasivni opseg portova je definisan za prenos datoteka i listinga direktorijuma i dozvoljava dolazne veze. Ovaj opseg portova može varirati u zavisnosti od FTP servera. Za više detalja pogledajte dokumentaciju servera. Na strani klijenta treba dozvoliti odlaznu vezu na port 21/tcp, zajedno sa pasivnim opsegom portova definisanim na serveru.

Autentifikacija na FTP-u

Informacije o autentifikaciji za FTP se prenose preko komandnog kanala tokom početnog uspostavljanja veze. FTP može koristiti korisničko ime i lozinku za autentifikaciju, ili može biti anoniman i dozvoliti bilo kome da se prijavi i pristupi serveru.

Aktivni i pasivni FTP režimi

FTP koristi aktivni ili pasivni režim za uspostavljanje veza.

U aktivnom režimu, korisnik se povezuje sa nasumičnog porta na FTP klijentu na port 21/tcp servera i šalje komandu PORT, navodeći na koji port klijenta treba da se poveže server. Ovaj port će se koristiti za kanal podataka.

Server se zatim povezuje sa porta 20/tcp na port klijenta koji je klijent prethodno specificirao komandom PORT. Ovaj kanal podataka se zatim koristi za prenos datoteka između servera i klijenta.

U pasivnom režimu, klijent se povezuje sa nasumičnog porta sa FTP klijenta na port 21/tcp servera i šalje komandu PASV. Server zatim odgovara nasumičnim portom koji treba koristiti za kanal podataka. Klijent zatim koristi drugi nasumični port da bi se povezao sa portom na koji je server odgovorio. Ova veza kanala podataka se koristi za prenos datoteka između servera i klijenta.

Dakle, u aktivnom režimu, inicijalni zahtev za povezivanje pokreće klijent, dok zahtev za povezivanje kanala podataka pokreće server.

S druge strane, u pasivnom režimu, i zahtev za inicijalnu vezu i naknadne zahteve za kanal podataka pokreće klijent ka serveru. Ova razlika ponekad utiče na to kako zaštitni zid dozvoljava/blokira tradicionalne FTP zahteve zbog smera dolazne/odlazne veze.

FTPS

Čak i ako ste spremni da preuzmete rizike povezane sa FTP-om i nešifrovanim prenosom podataka, kao i mogućim napadima, zahtevi industrije vas primoravaju da koristite bezbednije alternative poput FTPS-a i SFTP-a.

Godine 1990, sa promenom bezbednosnog okruženja, Netscape je stvorio SSL (Secure Sockets Layer, sada poznat kao TLS) protokol za zaštitu komunikacije preko mreže. SSL je primenjen na FTP i tako je nastao FTPS, odnosno siguran protokol za prenos datoteka. FTPS obično radi na portu 990/tcp, ali se može naći i na portu 21/tcp. Slično, za kanal podataka, port 989/tcp je čest port za FTPS. Ako je komandni port 21/tcp, očekuje se da će njegov port za podatke biti 20/tcp.

Kao i FTP, FTPS koristi dva kanala za komunikaciju: komandni i kanal podataka. Kanal podataka može biti šifrovan pomoću FTPS-a, ili se oba kanala mogu šifrovati radi veće sigurnosti.

FTPS, kao i FTP, takođe koristi više portova za komandne kanale i kanale za podatke. Port 21/tcp se koristi za početno povezivanje i prenos informacija o autentifikaciji. Kasnije će biti potrebni različiti portovi da bi se postavili kanali podataka za svaki zahtev za prenos datoteka ili listing direktorijuma od strane klijenta. Stoga, kao i FTP, potreban mu je opseg portova koji će biti dozvoljen u zaštitnom zidu.

Autentifikacija u FTPS-u

Autentifikacija za FTPS funkcioniše korišćenjem korisničkog imena i lozinke, zajedno sa serverskim sertifikatom za šifrovanje. Kada se FTPS klijent poveže sa serverom, proverava da li je serverski sertifikat pouzdan pre nego što nastavi vezu. Ovaj sertifikat se može zahtevati od klijenta i servera.

SFTP

Za razliku od FTP-a i FTPS-a, SFTP (SSH File Transfer Protocol) je potpuno drugačiji protokol izgrađen na SSH-u (Secure Shell). SFTP podrazumevano radi na portu 22/tcp, isto kao i SSH, iako se može konfigurisati da koristi drugi, slobodan port na serveru.

SFTP je bezbedan FTP protokol koji koristi SSH za slanje i primanje datoteka. Pošto je SSH u potpunosti šifrovan, SFTP je robusna i sigurna metoda za prenos datoteka preko mreže.

SFTP, za razliku od FTP-a i FTPS-a, koristi jedan komunikacioni kanal za prenos komandi i podataka, pri čemu se sve informacije, uključujući autentifikaciju, prenose šifrovano.

Autentifikacija u SFTP-u

Autentifikacija u SFTP-u se može izvršiti pomoću korisničkog imena i lozinke, ali za razliku od FTP-a, sve informacije, uključujući detalje o autentifikaciji, se prenose šifrovano.

SFTP takođe podržava autentifikaciju pomoću SSH ključeva, kombinacije privatnih i javnih ključeva, gde klijent obezbeđuje privatni ključ za određenog korisnika, a server mora da ima odgovarajući javni ključ da bi autentifikacija uspela. Ovo je sigurnije od korišćenja kombinacije korisničkog imena/lozinke. Moguće je autentifikovati istog korisnika koristeći lozinku i SSH ključeve, ako su obe metode konfigurisane na SFTP serveru.

Rezime

Ovaj članak sumira osnovne karakteristike različitih popularnih protokola za prenos datoteka, odnosno FTP, FTPS i SFTP, i naglašava ključne razlike između njih. Pokriva portove koje treba dozvoliti u zaštitnom zidu da bi se uspostavio radni FTP/FTPS/SFTP server, a takođe ističe potrebu prelaska na bezbednije protokole poput FTPS-a i SFTP-a.

Kada se ovde spominje FTP, misli se na sve protokole o kojima se raspravlja u ovom članku. Razlog je to što FTP postoji decenijama, pa se čak i novije bezbedne verzije ponekad nazivaju FTP umesto svojim specifičnim imenom u svakodnevnoj upotrebi.

Možda će vas zanimati i najbolji softver za FTP servere i FTP/SFTP klijente.