Înțelegerea SFTP vs. FTPS vs. FTP

Protocolul FTP (File Transfer Protocol) reprezintă una dintre cele mai răspândite metode pentru transferul de date, adaptabilă la diverse situații.

Pe lângă FTP, există și variantele sale securizate, denumite FTPS și SFTP. Acestea aduc modificări, unele subtile, altele mai evidente, în modul de funcționare. Diferențele apar în modalitatea de schimb de date, nivelul și tipul de securitate în timpul comunicării, precum și în aspecte legate de firewall.

Înțelegerea modului în care funcționează aceste protocoale, alături de deosebirile dintre aceste mecanisme de transfer, te poate ghida în alegerea celui mai potrivit pentru necesitățile tale specifice.

FTP

FTP este un protocol consacrat, vechi de decenii, propus inițial sub RFC 114. A fost ulterior îmbunătățit, devenind RFC 959, standardul utilizat în prezent.

FTP utilizează două canale separate pentru schimbul de informații: unul pentru comenzi și altul pentru transferul datelor. Astfel, sunt necesare două porturi pentru funcționarea FTP – canalul de comandă și cel de date.

Canalul de comandă operează pe portul 21, care primește conexiuni de la clienți și gestionează transmiterea comenzilor. Acest canal rămâne activ pe întreaga durată a sesiunii FTP, până când clientul trimite comanda QUIT sau serverul închide conexiunea din cauza inactivității sau altor cauze posibile.

Canalul de date folosește un port temporar de ascultare la cerere, fie pe server (mod pasiv), fie pe client (mod activ). Acest canal are rolul de a transfera datele efective între server și client, precum liste de directoare și fișiere.

Spre deosebire de canalul de comandă, cel de date rămâne deschis strict pe durata transferului de fișiere și se închide imediat ce operațiunea este finalizată. Pentru transferul simultan al mai multor fișiere sau liste de directoare, este nevoie de mai multe porturi dedicate canalului de date.

FTP este un protocol nesecurizat prin natura sa, deoarece atât canalele de comandă, cât și cele de date transferă informații necriptate, ușor de interceptat prin atacuri de tip „man-in-the-middle”.

După cum am menționat, FTP necesită o conexiune de intrare pe portul 21/tcp de pe server pentru canalul de comandă. Pentru transferurile de fișiere și listele de directoare, se utilizează un interval de porturi pasive, permițând conexiuni de intrare. Acest proces de definire a porturilor pasive poate varia în funcție de serverul FTP utilizat. Te rugăm să consulți documentația specifică pentru detalii. Pe partea clientului, trebuie permisă conexiunea de ieșire pe portul 21/tcp, precum și accesul la intervalul de porturi pasive definit pe server.

Autentificare în FTP

Informațiile de autentificare FTP sunt transmise prin canalul de comandă în timpul inițierii conexiunii. FTP poate folosi un nume de utilizator și o parolă pentru autentificare, sau poate fi anonim, permițând oricui să se conecteze și să acceseze serverul.

Moduri FTP active și pasive

FTP folosește fie modul activ, fie modul pasiv pentru stabilirea conexiunilor.

În modul activ, utilizatorul se conectează de la un port aleatoriu al clientului FTP la portul 21/tcp al serverului și trimite comanda PORT, specificând portul client la care serverul trebuie să se conecteze. Acest port va fi utilizat pentru canalul de date.

Apoi, serverul se conectează de la portul 20/tcp la portul client indicat anterior prin comanda PORT. Acest canal de date este folosit pentru transferul de fișiere între server și client.

În modul pasiv, clientul se conectează dintr-un port aleatoriu la portul 21/tcp al serverului și trimite comanda PASV. Serverul răspunde cu un port aleatoriu care va fi folosit pentru canalul de date. Clientul folosește apoi un alt port aleatoriu pentru a se conecta la portul indicat de server. Această conexiune a canalului de date este folosită pentru transferul fișierelor.

Așadar, în modul activ, cererea inițială de conectare este inițiată de client, iar cererea de conectare a canalului de date, de către server.

În modul pasiv, atât cererea inițială de conectare, cât și cea a canalului de date, sunt inițiate de client către server. Această diferență subtilă influențează uneori modul în care un firewall permite sau blochează cererile FTP, din cauza direcției conexiunii (intrare/ieșire).

FTPS

Chiar dacă ești dispus să accepți riscurile asociate cu FTP (transmiterea necriptată a datelor și atacurile „man-in-the-middle”), cerințele industriei te pot obliga să folosești alternative mai sigure, precum FTPS și SFTP, mult mai sigure în comparație.

În anii ’90, odată cu schimbările din domeniul securității, Netscape a creat protocolul SSL (Secure Sockets Layer), cunoscut acum ca TLS (Transport Layer Security), pentru a securiza comunicațiile printr-o rețea. SSL a fost aplicat la FTP, rezultând FTPS (File Transfer Protocol Secure). FTPS, sau FTP/S, rulează de obicei pe portul 990/tcp, dar se poate întâlni și pe portul 21/tcp. Similar, pentru canalul de date, portul 989/tcp este frecvent utilizat pentru FTPS. Dacă portul de comandă este 21/tcp, portul său de date este de așteptat să fie 20/tcp.

Ca și FTP, FTPS utilizează două canale de comunicare: unul de comandă și unul de date. În FTPS, fie canalul de date, fie ambele canale (comandă și date) pot fi criptate, sporind securitatea.

FTPS, ca și FTP, utilizează mai multe porturi pentru canalele de comandă și date. Astfel, portul 21/tcp este folosit pentru conexiunea inițială și transmiterea informațiilor de autentificare. Ulterior, sunt necesare diferite porturi pentru configurarea canalelor de date, pentru fiecare transfer de fișier sau cerere de listare a directorului. Prin urmare, similar cu FTP, necesită o serie de porturi permise în firewall.

Autentificare în FTPS

Autentificarea pentru FTPS se realizează folosind un nume de utilizator și o parolă, împreună cu un certificat de server pentru criptare. Când clientul FTPS se conectează la un server, verifică dacă certificatul serverului este de încredere pentru a continua conexiunea. Acest certificat poate fi cerut atât de la client, cât și de la server.

SFTP

Spre deosebire de FTP și FTPS, SFTP (SSH File Transfer Protocol) este un protocol complet diferit, construit pe baza SSH (Secure Shell). SFTP operează implicit pe portul 22/tcp, ca și SSH, dar poate fi configurat să folosească un port personalizat pe server.

SFTP este un protocol FTP securizat care folosește SSH pentru transmiterea și recepționarea fișierelor. Dat fiind că SSH este complet criptat, SFTP reprezintă o metodă sigură și robustă de transfer al fișierelor într-o rețea.

SFTP, spre deosebire de FTP și FTPS, utilizează un singur canal de comunicație pentru transferul comenzilor și al datelor, transmise în formă criptată, inclusiv autentificarea inițială.

Autentificare în SFTP

Autentificarea în SFTP se poate realiza printr-un nume de utilizator și o parolă, dar, spre deosebire de FTP, toate informațiile, inclusiv detaliile de autentificare, sunt transmise criptat prin rețea.

SFTP suportă, de asemenea, autentificarea prin perechi de chei SSH, o combinație între o cheie privată și una publică. Clientul oferă cheia privată pentru utilizatorul specificat, iar serverul trebuie să aibă cheia publică corespunzătoare pentru ca autentificarea să reușească. Această metodă este mai sigură decât utilizarea unei combinații nume de utilizator/parolă. Este posibilă autentificarea aceluiași utilizator folosind parola și cheile SSH, dacă ambele metode sunt configurate pe serverul SFTP.

Sumar

Acest articol a rezumat caracteristicile principale ale diverselor protocoale populare de transfer de fișiere, și anume FTP, FTPS și SFTP, subliniind diferențele subtile și majore dintre acestea. Sunt menționate porturile care trebuie permise într-un firewall pentru a configura un server FTP/FTPS/SFTP funcțional, evidențiind, de asemenea, necesitatea de a trece la protocoale mai sigure, precum FTPS și SFTP.

Când menționez FTP aici, mă refer la toate protocoalele discutate în acest articol. Motivul pentru care FTP, deși vechi de zeci de ani, și versiunile securizate sunt uneori numite tot FTP în limbajul uzual, în loc de denumirea lor exactă.

De asemenea, te-ar putea interesa să afli mai multe despre cele mai bune software-uri de server FTP și clienți FTP/SFTP.