Protocol de transfer de fișiere

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

File Transfer Protocol (FTP) (File Transfer Protocol), în informatică și telecomunicații , este un protocol de aplicații de nivel pentru transmiterea datelor între arhitectura TCP bazată pe gazdă și arhitectura client-server .

Protocolul utilizează conexiuni TCP separate pentru a transfera date și pentru a controla transferurile și necesită autentificarea clientului prin nume de utilizator și parolă, deși serverul poate fi configurat pentru conexiuni anonime cu acreditări false. Deoarece FTP transmite atât aceste acreditări, cât și orice altă comunicare în text clar, și din moment ce nu are mecanisme de autentificare a serverului la client, protocolul este adesea securizat folosind un substrat SSL / TLS și această variantă se numește FTPS . Acronimul SFTP desemnează în schimb un alt protocol care, deși foarte asemănător cu acesta din urmă din punct de vedere funcțional, este destul de diferit de cel tehnologic: SSH File Transfer Protocol .

fundal

FTP este unul dintre primele protocoale definite pe internet și a cunoscut o lungă evoluție de-a lungul anilor. Prima specificație, dezvoltată la MIT , datează din 1971 ( RFC-114 ). Specificația actuală se referă la RFC-959 .

Principalele obiective ale FTP descrise în RFC -ul său oficial au fost:

  • Promovați partajarea de fișiere (programe sau date)
  • Încurajați utilizarea indirectă sau implicită a computerelor la distanță.
  • Rezolvați în mod transparent incompatibilitățile dintre diferite sisteme de stocare a fișierelor între gazde .
  • Transferați datele în mod fiabil și eficient.

Descriere

Șablon

Model FTP

Unde este:

  • PI ( protocol interpreter ) este interpretul de protocol, utilizat de client (User-PI) și server (Server-PI) pentru schimbul de comenzi și răspunsuri. În limbajul comun, acesta este denumit „canal de comandă”.
  • DTP ( proces de transfer de date ) este procesul de transfer de date, utilizat de client (User-DTP) și server (Server-DTP) pentru schimbul de date. În limbajul comun, este denumit „canal de date”.

Funcționare generală

FTP, spre deosebire de alte protocoale precum HTTP , utilizează două conexiuni separate pentru a gestiona comenzile și datele. Un server FTP ascultă de obicei pe portul 21 TCP la care se conectează clientul . Conexiunea de către client determină inițializarea canalului de comandă prin care clientul și serverul schimbă comenzi și răspunsuri. Schimbul real de date (cum ar fi un fișier ) necesită deschiderea canalului de date, care poate fi de două tipuri.

Într-un canal de date activ , clientul deschide un port de obicei aleatoriu, prin canalul de comandă face cunoscut numărul acestui port către server și așteaptă ca acesta să se conecteze. Odată ce serverul a activat conexiunea de date la clientul FTP, acesta din urmă leagă portul sursă de portul 20 al serverului FTP. Comenzile PORT sau EPRT pot fi utilizate pentru aceasta, în funcție de protocolul de rețea utilizat (de obicei IPv4 sau IPv6 ).

Într-un canal de date pasiv serverul deschide un port de obicei aleatoriu (mai mare de 1023), prin canalul de comandă face cunoscut numărul acestui port clientului și așteaptă ca acesta să se conecteze. Comenzile PASV sau EPSV pot fi utilizate pentru aceasta, în funcție de protocolul de rețea utilizat (de obicei IPv4 sau IPv6 ).

Atât canalul de comandă, cât și canalul de date sunt conexiuni TCP ; FTP creează un nou canal de date pentru fiecare fișier transferat în cadrul sesiunii de utilizator, în timp ce canalul de comandă rămâne deschis pe întreaga durată a sesiunii de utilizator, cu alte cuvinte, canalul de comandă este persistent în timp ce canalul de date este non-persistent.

Un server FTP oferă mai multe funcții care permit clientului să interacționeze cu sistemul său de fișiere și fișierele care îl populează, inclusiv:

FTP oferă, de asemenea, un sistem de autentificare clar (necriptat) pentru accesări. Este posibil ca clientul care se conectează să furnizeze acreditări în funcție de care i se vor atribui anumite privilegii pentru a opera pe sistemul de fișiere. Așa-numita autentificare „anonimă” necesită ca clientul să nu specifice nicio parolă de acces și să aibă privilegii care sunt, în general, „numai în citire”.

Comenzi

Lista comenzilor definite în RFC-959 .

Comenzi
Nume Comanda Parametrii Descriere
Abortează ABOR Oprește transferul de date.
Cont ACCT <account-information> Informații despre cont (utilizate rar).
Alocat ALLO <decimal-integer> Alocați suficient spațiu pentru a primi un fișier (rar folosit).
Adăugați (cu creați) APPE <pathname> Adaugă date la un fișier existent.
Treceți la directorul părinte CDUP Accesați directorul părinte.
Schimbați directorul de lucru CWD <pathname> Schimbați directorul curent.
Șterge DELE <pathname> Sterge fisierele.
Ajutor HELP <command> Returnează lista de comenzi acceptate de server. Cu argument oferă explicații despre comanda specificată.
Listă LIST <pathname> Enumerați conținutul unui director sau proprietățile unui singur fișier.
Mod de transfer MODE <mode-type> Setați modul de transfer ( S=stream , B=block , C=compressed ).
Creați director MKD <pathname> Creați director.
Lista de nume NLST <pathname> Returnează numele fișierelor din directorul specificat.
Noop NOOP Nu face nimic (utilizat mai ales pentru a preveni deconectările din cauza inactivității prelungite).
Parola PASS <password> Specifică parola utilizatorului.
Pasiv PASV Inițializați conexiunea pasivă de date.
Data portului PORT <host-port> Inițializați conexiunea de date activă.
Imprimați directorul de lucru PWD Returnează numele directorului curent.
Deconectați-vă QUIT Deconectat. Dacă un transfer este încă în desfășurare, așteptați să se termine înainte de a închide sesiunea.
Reinițializați REIN Deconectați-vă de utilizatorul conectat.
Repornire REST <marker> Transferul se reia de la compensarea indicată.
Recupera RETR <pathname> Obțineți fișiere (de la server la client).
Eliminați directorul RMD <pathname> Eliminați directoarele.
Redenumiți din RNFR <pathname> Redenumiți (sursa).
Redenumiți în RNTO <pathname> Redenumiți (destinație).
Parametrii site-ului SITE <command> Trimiteți comanda specifică serverului (nu este standardizată; variază între implementări).
Montare structură SMNT <pathname> Structura monturii (rar folosită).
stare STAT <pathname> Returnează statisticile serverului. Cu argument listează conținutul unui director folosind canalul de comandă.
Magazin STOR <pathname> Trimiteți un fișier (client către server).
Magazin unic STOU <pathname> Trimite un fișier (client către server) folosind un nume unic.
Structura fișierului STRU <structure-code> Setați structura datelor ( F=file , R=record , P=page ). Practic nefolosit. Valoarea implicită este F
Sistem SYST Returnează tipul de sistem de operare.
Tipul de reprezentare TYPE <type> Setați modul de transfer ( A=ASCII , E=EBCDIC , I=Binary , L=Local ). Valoarea implicită este A EBCDIC și Local sunt rareori utilizate (exemplu: numai pe sistemele mainframe).
Nume de utilizator USER <username> Specificați numele de utilizator.

Coduri de răspuns

  • 1xx: Răspuns pozitiv preliminar. Acțiunea solicitată a început, dar va exista un alt răspuns care indică faptul că este într-adevăr finalizat.
  • 2xx: Răspuns pozitiv final. Acțiunea solicitată este finalizată. Clientul poate trimite acum alte comenzi.
  • 3xx: Răspuns pozitiv intermediar. Comanda a fost acceptată, dar trebuie trimisă o a doua comandă pentru ca cererea să fie definitiv finalizată.
  • 4xx: Răspuns negativ temporar. Comanda a eșuat, dar poate funcționa mai târziu.
  • 5xx: Răspuns negativ final. Comanda a eșuat și clientul nu ar trebui să o mai repete.
  • x0x: eroare de sintaxă.
  • x1x: Răspuns la o solicitare de informații.
  • x2x: Răspuns legat de conexiune.
  • x3x: Răspuns cont și / sau permisiuni.
  • x4x: Nu este mai bine specificat.
  • x5x: răspuns la sistemul de fișiere.

Probleme de securitate

Specificația FTP originală nu furnizează nicio criptare pentru datele schimbate între client și server. Aceasta include nume de utilizator, parole, comenzi, coduri de răspuns și fișiere transferate care pot fi „adulmecate” sau vizualizate de atacatori în anumite situații (exemplu: medii intranet ).

Problema este comună mai multor alte protocoale utilizate înainte de răspândirea SSL, cum ar fi HTTP , TELNET și SMTP . Pentru a depăși această problemă, a fost definită o nouă specificație care adaugă un strat de criptare SSL / TLS plus un nou set de comenzi și coduri de răspuns la protocolul FTP original. Protocolul se numește FTPS și este definit în RFC-4217 . Nu trebuie confundat cu SFTP, care este încă o alternativă validă pentru a depăși problema descrisă.

Aplicații care utilizează FTP

FileZilla , Fire Downloader, JDownloader sunt unii dintre numeroșii manageri de descărcare care vă permit să transferați date prin conexiune FTP.

Cu toate acestea, în sistemele de operare , în general, vă puteți conecta și prin linia de comandă .

Server FTP

Unele servere FTP populare sunt [1] :

  • Server FileZilla (Windows și Linux)
  • Server FTP Titan [2] (Windows)
  • Pure-FTPd (Unix)
  • VsFTPd (Unix)
  • ProFTPd (Unix)

Notă

  1. ^ 4 Servere FTP populare revizuite | TechWench , la www.techwench.com . Adus la 4 aprilie 2019 .
  2. ^ Software SFTP Server pentru Windows , la www.TitanFTP.com . Arhivat din original la 19 august 2013. Adus pe 5 noiembrie 2019 .

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) sh95000465 · GND (DE) 4268371-3