Protocoale de transfer de fișiere (FTP și TFTP). Protocolul FTP - ce este, pentru ce este folosit Ftp?

Serviciul FTP de pe Internet este conceput pentru schimbul direct de fișiere, este construit pe baza tehnologiei client-server. Există interacțiune între client și server folosind protocolul FTP. Un client este cel care trimite cereri către un anumit server și primește și transmite informații. Un server este un sistem care primește fișiere de la un client, le procesează și apoi le transmite în continuare.

Care sunt beneficiile utilizării unui serviciu FTP?

Serviciul FTP de pe Internet este conceput pentru a primi și transfera tot felul de fișiere. Are propriile servere care stochează arhive mari cu tot felul de date și fișiere. Astfel de arhive conțin volume uriașe de informații complet diferite. Există și arhive duplicate, în care informațiile sunt complet identice între mai multe servere se numesc oglinzi;

Avantajele acestui serviciu sunt mai multe:

Ce este protocolul FTP?

Serviciul de fișiere FTP utilizează un protocol care comunică direct cu protocolul stratului de transport, numit TCP:

  • Standardul de pornire este RFC-114.
  • Ultimul este RFC-959.

Acest serviciu diferă de alte aplicații dezvoltate prin faptul că folosește doar două conexiuni TCP pentru a transfera informații și fișiere:

1. Conexiune de control- este conceput pentru a trimite comenzi către server și a primi răspunsuri deja procesate de la acesta. Pentru organizarea acestei conexiuni este nevoie de protocolul Telnet (trimiterea unei cereri și așteptarea unui răspuns procesat, după primirea acestuia dă semnal că este posibilă trimiterea unei comenzi).
2.Conectarea fișierelor existente sau a tuturor fișierelor trimise și primite. Odată stabilită o conexiune Telnet, transferul fișierelor se realizează printr-un proces logic pe care TCP îl organizează, acesta verifică disponibilitatea porturilor în serverul FTP.
Acestea sunt în mod constant formate și, dacă este necesar, eliminate.

Protocolul FTP poate funcționa în două moduri:

Activ;
- pasiv.

Ce este un client FTP?

Un client FTP este unul specific care implementează transferul de fișiere FTP prin intermediul protocolului. Se pare că serviciul FTP de pe Internet este conceput pentru a schimba fișiere între mai multe computere conectate printr-o rețea locală sau de internet. În acest caz, nu contează deloc cu ce platforme sunt echipate aceste computere sau la ce distanță se află unul față de celălalt.

De fapt, un astfel de client este proiectat la fel ca un server, dar este controlat doar de o mașină locală, fie automat, fie de către o persoană. Se pare că nu puteți gestiona clientul FTP prin Internet - doar printr-un computer.

Există tipuri de client FTP - așa-numitul De exemplu, ReGet, Go!Zilla și multe altele. Datorită acestora, utilizatorul poate descărca de pe orice server Web. Caracteristica principală a unor astfel de programe este că pot fi integrate în orice browser și pot intercepta automat fișierele necesare pentru utilizator. Descărcătoarele FTP au controale convenabile, o interfață frumoasă și, dacă se pierde conexiunea, vor relua descărcarea după ce aceasta este pornită.

Ce se înțelege prin server FTP?

Un server FTP este un program special care rulează pe un computer personal și rulează în fundal. Acestea vă permit să transformați cel mai obișnuit computer într-un server FTP cu drepturi depline, iar gestionarea serviciului FTP vă permite să descărcați sau să încărcați orice fișiere necesare. Un astfel de program monitorizează automat toate solicitările care vin de la alte computere, apoi le procesează și oferă un răspuns. Când instalați acest server, asigurați-vă că ați desemnat un director restricționat care este accesibil altor clienți software. Fiecare fișier și director are propriile atribute individuale, dacă doriți, puteți restricționa accesul la orice computer. De exemplu, un fișier poate fi doar citit, altul poate fi scris, al treilea este absolut deschis oricărei mașini și așa mai departe.

Serverele FTP sunt sisteme limitate; Există multe așa-numite servere deschise, altfel sunt numite și anonime. Pentru a intra acolo, trebuie să introduceți login - anonim și parola - parola.

Archie - program de căutare pentru arhive FTP

Găsirea serverului FTP necesar pe Internet este o sarcină foarte complexă și consumatoare de timp pentru a o facilita, a fost dezvoltat un modul software special Archie. Puteți lucra cu el prin e-mail, sesiune Telnet sau local. Trebuie înțeles că serviciul de arhivă FTP și archie sunt tehnologii complet diferite în ceea ce privește capabilitățile. Cel mai adesea, pentru a obține acces la serverul archie, utilizatorul trebuie mai întâi să contacteze clientul archie.

Pentru a lucra prin Telnet, utilizatorul trebuie să deschidă o sesiune Telnet și să scrie cuvântul archie în linia necesară. Arata astfel: telnet archie.mcgill.ca login: archie.
După ce apare linia: archie>. De asemenea, puteți să vă întrebați despre capabilitățile serverului introducând comanda: help.

Cum să folosești internetul pe cont propriu?

Întrucât serviciul FTP de pe Internet este destinat schimbului de fișiere între utilizatorii de internet, iar cu ajutorul lui acest lucru se poate face simplu și rapid, unii utilizatori doresc să-și instaleze propriul server. Această dorință poate fi îndeplinită, dar numai cu cunoștințele teoretice necesare despre Internet și anumite programe, precum și despre partajarea fișierelor.

Există multe programe care vă permit să creați un server FTP personal pe computerul personal. Un astfel de program specializat este GuildFTPd. Este destul de ușor de instalat și intuitiv dacă cunoașteți unele dintre nuanțele creării FTP. Inițial, trebuie să îl găsiți pe Internet și să îl instalați pe computer. Nu ar trebui să fie probleme la instalarea acestuia. Dar la configurarea programului va trebui să efectuați unele acțiuni - acest lucru este necesar pentru funcționarea corectă în continuare a serviciului FTP creat.

Serviciu de transfer de fișiere FTP online creat prin programul GuildFTPd

După descărcarea și instalarea acestui program pe computer, trebuie să mergeți la panoul de setări (opțiuni GuildFTPd), vor exista mai multe file și elemente. Categoria General conține toate setările principale care determină numărul de conexiuni, numerele de porturi și alți parametri importanți. Aici trebuie să faceți toate setările necesare. Fiecare server este individual și depinde doar de dorințele creatorului.

Acum trebuie să alegeți ce metodă va fi folosită pentru a crea serverul. Sistemul GuildFTPd funcționează în așa fel încât viitorii utilizatori să fie împărțiți în grupuri, pe baza cărora va fi creat un anumit server: pe baza contului personal sau a directorului dorit.

Ce tip de server FTP să creez ar trebui să aleg? Server bazat pe conturi personale

Acest tip este potrivit atunci când se organizează un server de fișiere care va fi folosit de prieteni. În acest caz, va fi posibil să se creeze un sistem de fișiere personal pentru fiecare utilizator individual.

Pentru a face acest lucru, se creează un grup, i se dă un nume și se face acces partajat la directorul rădăcină. Pentru a face acest lucru, faceți clic pe butonul Adăugare și accesați secțiunea Editare cale. Apoi se creează o bază de utilizatori, Admin, apoi Add User, aici trebuie să introduceți datele de identificare (login, parolă) tuturor viitorilor utilizatori ai serverului care este creat. Poate exista orice număr de astfel de utilizatori, este recomandabil să decideți imediat asupra lor dacă, de exemplu, 16 persoane îl vor folosi Serviciul FTP pe Internet este destinat schimbului de documente între un număr nelimitat de persoane.

Când baza de date principală este gata, un sistem de fișiere virtual poate fi creat pentru fiecare utilizator dacă este necesar. Pentru a face acest lucru, trebuie să mergeți din nou la Add - Edit Path, acolo trebuie să specificați numele fișierelor și folderelor pentru fiecare conectare individuală.

Cum se creează un server FTP deschis?

Aceasta este a doua modalitate de a vă crea propriul server, dar este mai potrivită pentru un număr mare de utilizatori și pentru marketing pe Internet. Serviciile de Internet ale serverului FTP sunt percepute pozitiv, există un număr foarte mare de astfel de servicii pe Internet.

Crearea unui server deschis este mult mai ușoară decât cu conturile personale. În acest caz, în linia de nume trebuie introdus un singur utilizator anonim; De asemenea, trebuie să debifați caseta de lângă numele listei. În continuare, tot ce rămâne este să încărcați directoarele de fișiere care vor fi disponibile oricărui utilizator de internet.

FTP este un mecanism standard pentru copierea unui fișier de la o gazdă la alta. Transferul fișierelor de la un computer la altul este una dintre multele sarcini comune de care se așteaptă o rețea organizată și comunicarea între rețele.

Deși transferul fișierelor de la un sistem la altul pare o sarcină simplă și simplă, există câteva probleme care trebuie rezolvate mai întâi. De exemplu, două sisteme pot utiliza convenții diferite de denumire a fișierelor. Cele două sisteme pot avea moduri diferite de prezentare a textelor și datelor. Cele două sisteme pot avea structuri de directoare diferite. FTP rezolvă toate aceste probleme într-un mod foarte simplu și elegant.

FTP diferă de alte aplicații client-server prin faptul că stabilește două conexiuni între gazde. O conexiune este folosită pentru a transmite date, cealaltă este folosită pentru a controla informațiile (comenzi și răspunsuri). Separarea comenzilor și transferurilor date de control face FTP mai eficient. Controlul conexiunii folosește reguli foarte simple pentru comunicare. Avem nevoie doar de o linie de comandă sau de o linie de răspuns pentru transmitere. Pe de altă parte, o conexiune de date are nevoie de reguli mai complexe datorită varietății de tipuri de date.

FTP utilizează două porturi definite: portul 21 pentru management și portul 20 pentru transferul de date.


Orez. 13.5.

Tip fișier

FTP poate transfera următoarele tipuri de fișiere printr-o conexiune de date:

  • fișier ASCII. Acesta este formatul implicit pentru difuzarea fișierelor text. Fiecare caracter este codificat folosind caractere NVT ASCII. Emițătorul convertește fișierul din reprezentarea sa nativă în NVT ASCII, iar receptorul convertește caracterele NVT ASCII în reprezentarea sa nativă.
  • Fișierul EBCDIC. Dacă ambele capete ale conexiunii utilizează codificarea EBCDIC, fișierul poate fi transferat utilizând codificarea EBCDIC.
  • Fișier imagine. Acest fișier este formatul implicit pentru transferul fișierelor binare. Fișierul este trimis ca un flux continuu de biți fără nicio interpretare sau codificare. Este folosit mai ales pentru a transfera fișiere binare, cum ar fi un program compilat.

Dacă fișierul este codificat în ASCII sau EBCDIC, alte atribute trebuie completate pentru a determina dacă fișierul poate fi tipărit:

  1. Interzis pentru publicare. Acesta este formatul implicit pentru transferul fișierelor text. Fișierul nu conține specificații de imprimare „verticală”. Aceasta înseamnă că fișierul nu poate fi tipărit fără preprocesare deoarece nu conține caractere care sunt interpretate pentru mișcare verticală cap de imprimare. Acest format este folosit pentru fișierele care vor fi acumulate și procesate ulterior.
  2. TELNET. În acest format, fișierul conține caractere verticale NVT ASCII, cum ar fi CR (întoarcerea carului), LN (line feed), NL (linie nouă) și VT (filă verticală). Aceste fișiere pot fi imprimate după transfer

Structură de date

FTP poate transfera un fișier printr-o conexiune de date utilizând una dintre următoarele interpretări ale structurii de date:

  • Structura fișierului (implicit). Acest fișier nu are structură. Este un flux continuu de date.
  • Structura de înregistrare. Acest fișier este separat într-o înregistrare. Poate fi utilizat numai cu un fișier text.
  • Structura paginii. Acesta este un fișier împărțit în pagini, fiecare pagină are un număr și titlul paginii. Paginile pot fi acumulate sau accesate folosind acces aleatoriu sau secvenţial.

Moduri de transfer

FTP poate transfera un fișier printr-o conexiune de date utilizând unul dintre următoarele trei moduri de transfer:

  • Modul stream. Acesta este modul implicit. Datele sunt livrate de la FTP la TCP ca un flux continuu de date. TCP este responsabil pentru împărțirea datelor în segmente de dimensiuni adecvate. Dacă datele sunt doar un flux de octeți (structura fișierului), atunci nu este necesar niciun indicator de sfârșit de fișier. Sfârșitul fișierului în acest caz este eliberarea conexiunii de date de către expeditor. Dacă datele sunt împărțite în înregistrări (structură cu înregistrare), fiecare înregistrare va avea un caracter de sfârșit de înregistrare de un octet (EOR - sfârșit de înregistrare).
  • Modul bloc. Datele pot fi livrate din FTP și TCP în blocuri. În acest caz, blocul este precedat de un antet de trei octeți. Primul octet se numește descriptor de bloc, următorii doi octeți determină dimensiunea blocului în octeți.
  • Modul comprimat. Dacă fișierul este mare, datele pot fi comprimate. Metoda de compresie folosește codificarea lungimii normale. În această metodă, reapariția secvențială a unui bloc de date este înlocuită cu o singură apariție și un număr de repetări. În textul unui fișier, acesta este de obicei un spațiu (gol). Într-un fișier binar, caracterele nule sunt de obicei comprimate.

FTP folosește o conexiune de management pentru a stabili comunicarea între procesul de gestionare a clienților. În timpul acestei comunicări, comenzile sunt trimise de la client către server, iar răspunsurile sunt trimise de la server către client (Figura 13.6).


Orez. 13.6.

Serviciu de arhivare FTP.

Arhivele FTP sunt una dintre principalele resurse de informații de pe Internet. De fapt, este un depozit distribuit de texte, programe, fotografii și alte informații stocate sub formă de fișiere pe diferite computere din întreaga lume.

Informațiile din arhivele FTP sunt împărțite în principal în trei categorii: Informații protejate, al căror mod de acces este determinat de proprietarii săi și este permis în baza unui acord special cu consumatorul. Acest tip de resursă include arhive comerciale (de exemplu, versiuni comerciale ale programelor din arhive ftp.microsoft.com), resurse necomerciale naționale și internaționale închise (de exemplu, lucrări la proiecte internaționale CES sau AIEA), informații private necomerciale cu regimuri speciale de acces (de exemplu, fundații caritabile private). Resurse informative de utilizare limitată, care includ, de exemplu, programe de tip shareware. Această clasă poate include resurse de utilizare limitată sau de durată limitată. Resurse de informații distribuite gratuit sau freeware, dacă vorbim de software. Aceste resurse includ tot ceea ce poate fi obținut gratuit online, fără o înregistrare specială. Aceasta ar putea fi documentație, programe sau orice altceva. Trebuie remarcat faptul că software-ul distribuit gratuit nu are un certificat de calitate, dar dezvoltatorii săi sunt deschiși să împărtășească experiențe.

Dintre resursele enumerate mai sus, cele mai interesante sunt ultimele două categorii, care, de regulă, sunt formatate ca arhive FTP.

Tehnologia FTP a fost dezvoltată ca parte a proiectului ARPA și este destinată schimbului de cantități mari de informații între mașini cu arhitecturi diferite. Designul a vizat asigurarea transmisiei fiabile, astfel încât, dintr-o perspectivă modernă, FTP pare să fie supraîncărcat cu funcții redundante, rar utilizate. Nucleul tehnologiei este protocolul FTP.

protocol FTP.

FTP (File Transfer Protocol, sau „Protocol de transfer de date”) este unul dintre cele mai vechi protocoale de pe Internet și este inclus în standardele sale. Primele specificații FTP datează din 1971. De atunci, FTP a suferit multe modificări și și-a extins semnificativ capacitățile. FTP poate fi folosit atât în ​​programele utilizatorului, cât și ca utilitar special pentru sistemul de operare.

FTP este conceput pentru a rezolva problemele de partajare a accesului la fișiere pe gazde la distanță, utilizarea directă sau indirectă a resurselor computerelor la distanță, asigurarea independenței clientului față de sistemele de fișiere ale gazdelor la distanță și transferul de date eficient și fiabil.

Schimbul de date în FTP are loc pe un canal TCP. Schimbul se bazează pe tehnologia client-server. FTP nu poate fi utilizat pentru a transfera date confidențiale deoarece nu oferă securitate pentru informațiile transferate și transferă text clar între server și client. Serverul FTP poate solicita clientului FTP să se autentifice (adică utilizatorului FTP i se va cere să introducă ID-ul și parola atunci când se alătură serverului). Cu toate acestea, parola și ID-ul utilizatorului vor fi transmise de la client la server în text clar.

Modele de operare FTP.

Cel mai simplu model al modului în care funcționează protocolul FTP este prezentat în Figura 1. În FTP, conexiunea este inițiată de interpretul de protocol al utilizatorului. Schimbul este controlat printr-un canal de control în standardul de protocol TELNET. Comenzile FTP sunt generate de interpretul de protocol al utilizatorului și trimise la server. Răspunsurile serverului sunt de asemenea trimise utilizatorului prin canalul de control. În general, utilizatorul are capacitatea de a stabili contactul cu interpretul de protocol al serverului și prin alte mijloace decât interpretul de protocol al utilizatorului.

Comenzile FTP definesc parametrii canalului de transfer de date și procesul de transfer în sine. Ele determină, de asemenea, natura muncii cu sistemele de fișiere la distanță și locale.

Sesiunea de control inițializează legătura de date. La organizarea unui canal de transmisie a datelor, succesiunea acțiunilor este diferită, diferită de organizarea unui canal de control. În acest caz, serverul inițiază schimbul de date în conformitate cu parametrii conveniți în sesiunea de management.

Canalul de date este stabilit pentru aceeași gazdă ca și canalul de control prin care este configurat canalul de date. Canalul de date poate fi utilizat atât pentru primirea, cât și pentru transmiterea datelor.

Algoritmul de operare al protocolului FTP este următorul:

Serverul FTP folosește portul TCP 21 ca o conexiune de control, care este întotdeauna în starea de așteptare a unei conexiuni de la utilizatorul FTP. După ce se stabilește o conexiune de control între modulul „User Protocol Interpreter” și modulul server - „Server Protocol Interpreter”, utilizatorul (clientul) poate trimite comenzi către server. Comenzile FTP definesc parametrii unei conexiuni de transfer de date: rolul participanților la conexiune (activ sau pasiv), portul de conectare (atât pentru modulul „Program de transfer de date utilizator”, cât și pentru modulul „Program de transfer de date server”), tip de transfer, tipul de date transferate, structura datelor și directivele de control care indică acțiunile pe care utilizatorul dorește să le efectueze (de exemplu, salvarea, citirea, adăugarea sau ștergerea datelor sau a unui fișier etc.). După ce toți parametrii canalului de transmisie a datelor au fost conveniți, unul dintre participanții la conexiune, care este pasiv (de exemplu, „Programul de transfer de date utilizator”), devine în modul de așteptare pentru deschiderea unei conexiuni la portul specificat pentru transmiterea datelor. . După aceasta, modulul activ (de exemplu, „Programul de transfer de date pe server”) deschide conexiunea și începe transferul de date. După finalizarea transferului de date, conexiunea dintre „Programul de transfer de date pe server” și „Programul de transfer de date utilizator” este închisă, dar conexiunea de control a „Interpretatorului protocolului de server” și a „Interpretului protocolului utilizatorului” rămâne deschisă. Utilizatorul, fără a închide sesiunea FTP, poate deschide din nou canalul de transfer de date.

Este posibil ca datele să fie transferate pe o a treia mașină. În acest caz, utilizatorul organizează un canal de control cu ​​două servere și un canal de date direct între ele. Comenzile de control trec prin utilizator, iar datele trec direct între servere. Canalul de control trebuie să fie deschis când se transferă date între mașini. În caz contrar, dacă este închis, transferul de date se va opri. Conexiunea la două servere este prezentată în Figura 2.

Algoritmul funcționează atunci când se conectează două servere FTP, niciunul dintre acestea nu se află pe gazda locală a utilizatorului:

Modulul „User Protocol Interpreter” a instruit modulul server „Server Protocol Interpreter 1” să lucreze în modul pasiv, după care modulul „Server Protocol Interpreter 1” a trimis utilizatorului adresa și numărul portului (N) pe care acesta le va asculta. Modulul „User Protocol Interpreter” a atribuit modulului server 2 „Server Protocol Interpreter 2” ca participant activ la conexiune și ia instruit să transmită date către gazda „Server Protocol Interpreter 1” pe portul (N). „User Protocol Interpreter” a trimis „Server Protocol Interpreter 1” comanda „să salveze datele primite într-un astfel de fișier”, iar „Server Protocol Interpreter 2” a trimis comanda „pentru a transfera conținutul unui astfel de fișier. un fișier." Se formează un flux de date între modulele „Server Protocol Interpreter 1” și „Server Protocol Interpreter 2”, care este controlat de gazda client. Mai jos este o diagramă de organizare a transferului de date între două servere FTP, corespunzătoare figurii 2. Aici sunt utilizate următoarele notații: User PI - user protocol interpreter; Interpret de protocol Server1(2) pentru server1 (server2).

PI utilizator (U) ы Server1 (S1) PI utilizator (U) ы Server2 (S2)
U Yu S1: Conectați-vă

U L S1: 227 Intrarea în modul pasiv.

A1, A2, A3, A4, a1, a2

U Yu S2 Connect

U Y S2: PORT A1, A2, A3, A4, a1, a2

U L S2: 200 Bine
U Yu S1: STOR... U Yu S2: RETR...

S1 Yu S2: Conectați...

Baza transferului de date FTP este mecanismul de stabilire a conexiunilor între porturile corespunzătoare și selectarea parametrilor de transfer. Fiecare participant la o conexiune FTP trebuie să accepte un port de date implicit. În mod implicit, „Programul de transfer de date utilizator” folosește același port ca pentru trimiterea comenzilor (să-l numim „U”), iar „Programul de transfer de date pe server” folosește portul L-1, unde „L” este portul de control. Cu toate acestea, participanții la conexiune folosesc porturile de date selectate pentru ei de „Interpretul protocolului utilizatorului”, deoarece dintre procesele de control care participă la conexiune, doar „Interpretul protocolului utilizatorului” poate modifica porturile de date atât ale „Protocolului utilizatorului”. Interpreter” și „Programe de transfer de date pe serverul utilizatorului”.

Partea pasivă a conexiunii trebuie, înainte ca comanda „pornire transmisie” să fie dată, să „asculte” portul său de date. Partea activă, care emite comanda de pornire a transmiterii datelor, determină direcția de mișcare a datelor.

Odată ce conexiunea este stabilită, transmiterea începe între „Programul de transfer de date server” și „Programul de transfer de date utilizator”. În același timp, notificările despre primirea datelor sunt transmise prin canalul „Interpret protocol server” - „Interpret protocol utilizator”. Protocolul FTP necesită ca conexiunea de control să fie deschisă în timp ce legătura de date este transferată. O sesiune FTP este considerată închisă numai după ce conexiunea de control este închisă.

De obicei, serverul FTP este responsabil pentru deschiderea și închiderea canalului de transfer de date. Serverul FTP trebuie să închidă independent canalul de transfer de date în următoarele cazuri:

Serverul a terminat de transmis date într-un format care necesită închiderea conexiunii. Serverul a primit o comandă de la utilizator pentru a „încheia conexiunea”. Utilizatorul a modificat setările portului de date. Conexiunea de control a fost închisă. Au apărut erori care fac imposibilă reluarea transferului de date.

Comenzi de protocol.

Comenzile de control al controlului transmisiei de date schimbate între „Interpretul de protocol de server” și „Interpretul de protocol de utilizator” pot fi împărțite în trei grupuri mari:

Comenzi de control al accesului la sistem. Comenzi de control al fluxului. Comenzi de serviciu FTP.

Să ne uităm la câteva dintre cele mai tipice echipe din fiecare grupă. Dintre comenzile de control al accesului la sistem, trebuie remarcate următoarele:

UTILIZATOR. De obicei, această comandă deschide o sesiune FTP între client și server. Argumentul comenzii este numele (identificatorul) utilizatorului pentru a lucra cu sistemul de fișiere. Această comandă poate fi emisă nu numai la începutul sesiunii, ci și la mijlocul sesiunii dacă, de exemplu, utilizatorul dorește să schimbe identificatorul în numele căruia vor fi efectuate acțiuni. În acest caz, toate variabilele legate de vechiul identificator sunt eliberate. Dacă comunicarea are loc în timpul unei schimbări de ID, schimbul se încheie cu vechiul ID de utilizator.

TRECE. Această comandă este emisă după introducerea ID-ului utilizatorului și conține parola utilizatorului ca argument. Să vă reamintim că datele de autentificare FTP sunt transmise prin rețea în text clar, astfel încât utilizatorul trebuie să ia măsuri suplimentare pentru a asigura securitatea canalului.

CWD. Comanda permite utilizatorilor să lucreze cu diferite directoare ale sistemului de fișiere la distanță. Argumentul comenzii este un șir care indică calea directorului sistemului de fișiere la distanță în care utilizatorul dorește să lucreze.

FRÂU. Comanda de reinițializare. Această comandă șterge toate variabilele utilizatorului curent și resetează parametrii de conexiune. Dacă datele sunt transferate în momentul lansării comenzii, transferul continuă și se termină cu aceiași parametri.

PĂRĂSI. Comanda închide canalul de control. Dacă datele sunt transmise atunci când este emisă o comandă, canalul este închis după încheierea transmisiei de date.

Comenzile de control al fluxului stabilesc parametrii pentru transferul de date. Toți parametrii descriși de aceste comenzi au valori implicite, astfel încât comenzile de control al fluxului sunt utilizate numai atunci când este necesară modificarea valorii parametrilor impliciti de transfer. Comenzile de control al fluxului pot fi emise în orice ordine, dar toate trebuie să precedă comenzile serviciului FTP. Următoarele comenzi de control al fluxului de date trebuie evidențiate:

PORT. Comanda atribuie adresa și portul gazdei care vor fi utilizate ca participant activ la conexiunea prin legătura de date. Argumentele comenzii sunt o adresă IP de 32 de biți și un număr de port de conexiune de 16 biți. Aceste valori sunt împărțite în șase câmpuri de 8 biți și sunt reprezentate în formă zecimală: h1, h2, h3, h4, p1, p2, unde hN sunt octeții de adresă (de la mare la mic) și pN sunt octeții de port (mare prea jos) .

PASV. Această comandă este trimisă la modul, care va juca un rol pasiv în transferul de date („ascultă” conexiunea). Răspunsul la această comandă ar trebui să fie o linie care să conțină adresa și portul gazdei care se află în modul de așteptare a conexiunii în formatul de comandă PORT - „h1, h2, h3, h4, p1, p2”.

Comenzile TYPE, STRU, MODE determină, respectiv, tipul de date transmise (ASCII, Image și altele), structura sau formatul de transmitere a datelor (Fișier, Record, Page) și metoda de transmitere (Stream, Block și altele) . Utilizarea acestor comenzi este foarte importantă atunci când se construiește comunicarea în medii eterogene și sisteme de operare și fișiere foarte diferite ale gazdelor care comunică.

Comenzile serviciului FTP determină acțiunile care trebuie efectuate cu fișierele specificate. De obicei, argumentul pentru comenzile din acest grup este o cale de fișier. Sintaxa căii specificate trebuie să satisfacă cerințele de format ale sistemului de fișiere ale operatorului de comandă. Comenzile serviciului FTP includ următoarele:

RETR. Această comandă îi spune modulului Server Data Transfer să transmită o copie a fișierului specificat de acest parametru de comandă către modulul Data Transfer la celălalt capăt al conexiunii.

STOR. Comanda instruiește modulul „Program de transfer de date server” să primească date prin legătura de date și să le salveze ca fișier al cărui nume este specificat de parametrul acestei comenzi. Dacă un astfel de fișier există deja, acesta va fi înlocuit cu unul nou, dacă nu, va fi creat unul nou.

Comenzile RNFR și RNTO trebuie să se succedă. Prima comandă conține vechiul nume de fișier ca argument, a doua - cel nou. Aplicarea consecutivă a acestor comenzi redenumește fișierul.

ABOR. Comanda instruiește serverul să întrerupă execuția unei comenzi de serviciu anterioare (de exemplu, un transfer de fișiere) și să închidă canalul de date.

Comanda DELE șterge fișierul specificat.

Comenzile MKD și RMD creează și, respectiv, șterg directorul specificat în argument.

Puteți utiliza comenzile LIST și NLST pentru a lista fișierele dintr-un director specificat.

Toate comenzile de protocol FTP sunt trimise de „Interpretul de protocol utilizator” sub formă de text - o comandă pe linie. Fiecare linie de comandă - identificator și argumente - se termină cu caractere . Numele comenzii este separat de argument printr-un caracter spațiu - .

Managerul de comandă returnează un cod din trei cifre pentru procesarea fiecărei comenzi. Codurile de procesare formează o structură ierarhică specifică și, de regulă, o anumită comandă poate returna doar un anumit set de coduri. Codul de procesare a comenzii este urmat de un caracter de spațiu - , urmat de text explicativ. De exemplu, linia de finalizare cu succes a unei operații arată astfel: „200 Command ok”.

Mai jos este un exemplu de lucru cu protocolul FTP. Denumiri: S - server, U - utilizator.

S: 220 Service gata pentru utilizator nou
U: UTILIZATOR Gluk
> S: 331 Nume de utilizator ok, am nevoie de parolă
U: PASI murmur
S: 230 Utilizator autentificat, continua
U: RETR test.txt
S: 150 Stare fișier ok; pe cale să deschidă conexiunea de date

<Идет передача файла...>

S: 226 Închiderea conexiunii de date, transferul fișierului cu succes
U: TIP I
S: 200 Comandă bine
U: STOR /home/images/first.my
S: 550 Acces refuzat
U: RENUNȚĂ

Protocoale TFTP și SFTP.

Protocolul FTP are doi „frați mai mici”: SFTP - Simple FTP și TFTP - Trivial FTP.

Protocolul TFTP este cel mai simplu protocol de transfer de fișiere. Funcționează peste protocolul de transport UDP și oferă doar cele mai elementare operațiuni de transfer de fișiere, și anume scrierea și citirea fișierelor. TFTP a fost conceput pentru a fi un protocol simplu și ușor de utilizat. Nu permite apelarea unei liste de directoare și nu are niciun mijloc de autentificare, dar poate transmite informații pe 8 biți în conformitate cu toate standardele Internetului.

Deoarece transferul de date are loc prin UDP, protocolul TFTP implementează propriile metode pentru livrarea fiabilă a datelor - pachete de confirmare, numerotarea blocurilor de date și a pachetelor de confirmare etc. Totul este foarte asemănător cu o versiune simplificată a emulării protocolului TCP.

TFTP funcționează cu doar cinci comenzi:

Cerere de citire (RRQ) - o solicitare de citire. Cerere de scriere (WRQ) - o cerere de scriere. Date (DATE) - pachet de date. Confirmare (ACK) - confirmare. Eroare (EROARE) - eroare.

Procesul de transfer de date începe cu o solicitare de la clientul TFTP către server pentru a citi sau scrie un fișier. Conexiunea se stabilește după primirea confirmării de pregătire pentru una dintre solicitări, fie de scriere, fie de citit.

La deschiderea unei conexiuni, fiecare parte selectează (aleatoriu) un identificator unic - TID, care este folosit și de UDP ca port de conectare. Fiecare pachet redirecționat este asociat cu două TID-uri corespunzătoare fiecărei părți a conexiunii. Cererea inițială este trimisă de inițiatorul conexiunii TF TP către portul UDP 69 (portul de inițializare), care specifică portul de conectare. Schimbul suplimentar are loc deja prin porturile alese de participanții la transferul de date.

Dacă serverul permite cererea, schimbul este deschis și fișierul specificat este transferat (în blocuri de 512 octeți). Fiecare pachet de date transmise conține un bloc (512 octeți) și numărul blocului din fluxul transmis. Sosirea fiecărui bloc la gazda destinație trebuie confirmată printr-un pachet ACK (confirmare), cu numărul blocului primit. Numai după primirea pachetului de confirmare va fi trimis următorul pachet de date.

Dacă lungimea pachetului este mai mică de 512 octeți, acesta servește drept semnal pentru închiderea canalului de comunicație. Dacă un pachet este pierdut în timpul transmisiei, după o anumită perioadă de timp serverul va retrimite acest pachet de date.

Trei tipuri de situații determină trimiterea de pachete eronate:

Solicitarea nu a fost confirmată, de exemplu, fișierul nu a fost găsit, nu există drepturi de acces etc. Formatul pachetului este incorect, de exemplu, a apărut o eroare de comutare. Pierderea accesului la o resursă necesară.

Dacă există un număr mare de mesaje de eroare, conexiunea poate fi închisă la inițiativa uneia dintre părți.

Schema tranzacției TFTP este următoarea:

Gazda A trimite o cerere WRQ către Gazda B. Portul sursă este TIDA, portul destinație este 69. Pachetul conține numele fișierului, tipul de transfer. Gazda B trimite un ACK (număr de bloc - 0) gazdei A. Portul sursă este TIDB, portul destinație este TIDA. Gazda A trimite (prin conexiunea TIDA la TIDB) o comandă DATA și un bloc de date. Pachetul conține și numărul blocului.

Protocolul de transfer de fișiere SFTP este popular atunci când utilizatorul are nevoie de un protocol care este puțin mai flexibil și mai fiabil decât TFTP și nu la fel de complex și greoi ca FTP.

SFTP acceptă mecanisme pentru autentificarea utilizatorului, transferul de fișiere, navigarea în directoare, schimbarea directorului curent, redenumirea și ștergerea fișierelor. Pentru majoritatea operațiunilor pe care utilizatorul le efectuează cu un server FTP la distanță, acest serviciu este destul de suficient. SFTP poate transporta un flux de date pe 8 biți și, la fel ca TFTP, utilizează un singur canal de conexiune - atât pentru comenzi, cât și pentru date. Spre deosebire de TFTP, SFTP rulează peste TCP, portul 115.

Comenzile SFTP sunt trimise pe rând, după primirea unui răspuns de procesare de la comanda anterioară. Toate comenzile constau din patru caractere ASCII și un caracter spațiu care separă comanda de argumentele sale. Răspunsul serverului constă dintr-un cod de răspuns și un mesaj text. Fiecare comandă și răspuns trebuie să se încheie cu simbolul (‘

    Abreviere FTP vine din engleză F ile T transfer P rotocol (protocol de transfer de fișiere) este un protocol de nivel de aplicație pentru schimbul de fișiere prin protocolul de transport TCP/IP între două computere, un client FTP și un server FTP. Acesta este unul dintre cele mai vechi și totuși utilizate în mod activ protocol.

Protocolul FTP este conceput pentru a rezolva următoarele probleme:

  • accesați fișiere și directoare pe gazde la distanță
  • asigurarea independenței clientului față de tipul de sistem de fișiere al computerului la distanță
  • transmisie fiabilă a datelor
  • utilizarea resurselor sistemului de la distanță.
  • Protocolul FTP acceptă două canale de conexiune simultan - unul pentru transfer echipeși rezultatele implementării lor, celălalt este pentru partajare date. Cu setări standard, serverul FTP folosește portul TCP 21 pentru a organiza un canal pentru trimiterea și primirea comenzilor și portul TCP 20 pentru a organiza un canal pentru primirea/transmiterea datelor.

    Serverul FTP așteaptă conexiunile de la clienții FTP pe portul TCP 21 și, după ce a stabilit o conexiune, acceptă și procesează comenzi FTP, care sunt șiruri de text obișnuite. Comenzile definesc parametrii de conectare, tipul de date transferate și acțiunile în legătură cu fișierele și directoarele. După ce a convenit asupra parametrilor de transmisie, unul dintre participanții la schimb intră în modul pasiv, așteptând conexiunile de intrare pentru canalul de schimb de date, iar al doilea stabilește o conexiune la acest port și începe transmisia. Odată ce transferul este finalizat, conexiunea de date este închisă, dar conexiunea de control rămâne deschisă, permițându-vă să continuați sesiunea FTP și să creați o nouă sesiune de transfer de date.

    Protocolul FTP poate fi folosit nu numai pentru a transfera date între un client și un server, ci și între două servere. În acest caz, clientul FTP stabilește o conexiune de control cu ​​ambele servere FTP, comută unul dintre ele în modul pasiv, iar al doilea la activ, creând un canal de transfer de date între ele.

    Un client FTP este un program care se conectează la un server FTP și efectuează operațiunile necesare pentru a vizualiza conținutul directoarelor serverului și pentru a primi, transfera și șterge fișiere sau foldere. Un astfel de program poate fi un browser obișnuit, componente ale sistemului de operare sau produse software special dezvoltate, cum ar fi un manager de descărcare popular. Descărcați Master sau multifuncțional gratuit Client FTP FileZilla.

    Protocolul FTP a fost dezvoltat în vremurile când clientul și serverul interacționau direct, fără transformări intermediare ale pachetelor TCP, iar în modul standard își asumă capacitatea de a crea o conexiune TCP nu numai la inițiativa clientului, ci și la inițiativa serverului de la portul TCP 20 pe TCP - portul client, al cărui număr este transmis în timpul creării unei sesiuni de date.

    Realitățile de astăzi sunt de așa natură încât o astfel de conexiune TCP de la server la client este în marea majoritate a cazurilor imposibilă sau foarte dificil de implementat datorită faptului că, în majoritatea cazurilor, tehnologia de traducere a adreselor de rețea este utilizată pentru conectarea la Internet. NAT(Network Address Translation) atunci când clientul nu are o interfață de rețea disponibilă pentru a crea o conexiune TCP directă de la Internet. O diagramă tipică a unei conexiuni la Internet standard arată astfel:

    Conexiunea la internet se face printr-un dispozitiv special - Router(router cu funcție NAT) care are cel puțin două porturi de rețea - unul conectat la rețeaua furnizorului, având o interfață de rețea cu o adresă IP direcționată (așa-numita „IP albă”), de exemplu 212.248.22.144 și un port cu o interfață de rețea pentru conectarea dispozitivelor de rețea locală cu o adresă IP privată, care nu poate fi rutată, de exemplu 192.168.1.1 („IP gri”). Atunci când se creează conexiuni de la dispozitivele de rețea locală la nodurile de rețea externe, pachetele IP sunt trimise către router, care realizează traducerea adresei și a portului, astfel încât adresa expeditorului să devină adresa IP albă. Rezultatele traducerii sunt salvate și când se primește un pachet de răspuns, se efectuează o traducere inversă a adresei. Astfel, routerul asigură redirecționarea pachetelor TCP/IP de la orice dispozitiv de rețea locală către rețelele externe și redirecționarea pachetelor de răspuns primite. Dar în cazurile în care un pachet care nu este legat de pachetele de răspuns TCP este primit la intrarea unei interfețe de rețea conectată la rețeaua furnizorului, următoarele opțiuni de reacție sunt posibile pentru software-ul routerului:

    Pachetul este ignorat deoarece nu există un serviciu de rețea care să-l proceseze.

    Pachetul este primit și procesat de serviciul de rețea al routerului însuși, dacă un astfel de serviciu există și așteaptă o conexiune de intrare („ascultare”) pe portul al cărui număr este indicat în pachetul primit.

    Pachetul este redirecționat către un server din rețeaua locală care se așteaptă la acest tip de conexiune de intrare în conformitate cu regulile de mapare a portului specificate în setările routerului.

    Prin urmare, în prezent, principalul mod de operare folosind protocolul FTP a devenit așa-numitul „mod pasiv”, în care conexiunile TCP se realizează numai de la client la portul TCP al serverului. Modul activ este utilizat în cazurile în care este posibil să se conecteze TCP de la server la porturile client, de exemplu, atunci când se află în aceeași rețea locală. Modul de conexiune FTP este selectat folosind comenzi speciale:

    PASV- clientul trimite o comandă pentru a efectua schimbul de date în mod pasiv. Serverul va returna adresa și portul la care trebuie să vă conectați pentru a primi sau transmite date. Exemplu de fragment al unei sesiuni FTP cu modul pasiv setat:

    PASSV- comanda de comutare în modul pasiv transmisă de clientul FTP către serverul FTP

    227 Intrarea în modul pasiv (212,248,22,144,195,89)- Răspuns server FTP, unde 227 este codul de răspuns, un mesaj text despre trecerea la modul pasiv și între paranteze adresa IP și numărul portului care vor fi folosite pentru a crea un canal de transmisie a datelor. Adresa și numărul portului sunt afișate ca numere zecimale separate prin virgulă. Primele 4 numere sunt adresa IP (212.248.22.144), celelalte 2 numere specifică numărul portului, care este calculat prin formula - primul număr este înmulțit cu 256 și al doilea număr este adăugat la rezultat, în acest exemplu numărul portului este 195 * 256 +89 = 50017

    PORT Adresa IP a clientului Numărul portului- clientul trimite o comandă pentru a stabili o sesiune în modul activ. Adresa IP și numărul portului sunt specificate în același format ca în exemplul anterior, de exemplu PORT 212.248.22.144,195,89 Pentru a organiza transferul de date, serverul însuși se conectează la clientul pe portul specificat.

    Instalarea și configurarea FileZilla FTP Server.

    Puteți descărca pachetul de instalare FileZilla Server pentru versiunea dvs. de sistem de operare la

    Instalarea serverului se realizează în mod standard, cu excepția elementului cu selectarea setărilor panoului de control al serverului:

    Acesta este principalul instrument de gestionare a serverului prin care se realizează toate setările necesare. În mod implicit, panoul de control operează pe o interfață loopback fără acces prin parolă. Dacă este necesar, de exemplu, dacă este necesară controlul de la distanță al serverului FTP, aceste setări pot fi modificate.

    Odată ce instalarea este finalizată, se va deschide o fereastră de invitație pentru a vă conecta la server:

    După ce ați introdus adresa IP, numărul portului și parola (dacă le-ați specificat în timpul procesului de instalare), se deschide panoul de control FileZilla Server:

    În partea de sus a ferestrei se află meniul principal și butoanele panoului de control. Mai jos sunt două zone - mesaje de informații despre server și informații statistice. În general, panoul de control FTP al FileZilla Servver este destul de simplu și ușor de utilizat. Elemente din meniul principal:

    Fişier- moduri de operare ale panoului de control al serverului FTP. Conține subarticole

    - Conectați-vă la server- conectați-vă la server
    - Deconectat- deconectați-vă de la server
    - Părăsi- oprirea panoului de control.

    Server- Administrare server FTP. Conține subparagrafe:

    - Activ- pornire/oprire server FTP. Dacă caseta de selectare este bifată, serverul FTP este pornit, dacă nu este bifat, este oprit.
    - Lacăt- interzice/permite conexiuni la server. Când caseta de selectare este bifată, noile conexiuni la server sunt interzise.

    Editați | ×- editarea setărilor. Sub-articole:

    - Setări- setări de bază ale serverului.
    - Utilizatori- Setările utilizatorului serverului FTP
    - Grupuri- setările grupului de utilizatori.

    De exemplu, să configuram serverul pentru următoarele condiții:

  • serverul se află în spatele NAT, are o adresă IP privată, dar trebuie să fie accesibil de pe Internet, acceptă modul pasiv și folosește porturi TCP non-standard. Utilizarea de porturi non-standard reduce probabilitatea atacurilor hackerilor și, în plus, unii furnizori folosesc filtrarea traficului și blochează porturile standard 20 și 21.
  • utilizatorii au posibilitatea de a descărca de pe server, de a încărca pe server, de a șterge și de a redenumi fișiere și foldere.
  • Dacă utilizați o adresă IP dinamică, trebuie să vă asigurați că serverul este accesibil prin numele DNS.
  • serverul va funcționa pe o stație de lucru într-un mediu de operare Windows 7 / Windows 8.
  • Cu alte cuvinte, trebuie să creați un server FTP accesibil de pe Internet pentru schimbul de fișiere între utilizatori, desigur gratuit. Este destul de clar că, pe lângă crearea configurației necesare a serverului FTP în sine, va trebui să modificați unele setări ale routerului, setările paravanului de protecție Windows și să rezolvați problema unei adrese IP dinamice, astfel încât serverul să fie accesibil după nume, indiferent a modificării adresei IP.

    Rezolvarea problemei adresei IP dinamice.

        Această problemă nu necesită o soluție în cazurile în care, la conectarea la Internet, este utilizată o adresă IP statică sau una dinamică, dar în conformitate cu setările furnizorului, este aproape întotdeauna aceeași. În caz contrar, puteți folosi o tehnologie numită DNS dinamic (DDNS). Această tehnologie vă permite să actualizați informațiile despre adresa IP de pe serverul DNS aproape în timp real și să accesați routerul (și serviciile din spatele acestuia) după numele înregistrat, fără a fi atenți la modificările IP-ului dinamic.

    Pentru a implementa această tehnologie gratuit, va trebui să vă înregistrați la un serviciu DNS dinamic și să instalați software-ul client pentru a actualiza înregistrarea DNS dacă adresa IP corespunzătoare se modifică. Suportul DNS dinamic este asigurat de obicei de producătorii de echipamente de rețea (D-Link, Zyxel etc.), unele companii de găzduire și specializate, precum binecunoscutul DynDNS. Cu toate acestea, după ce în a doua jumătate a anului 2014, toate serviciile care erau oferite gratuit utilizatorilor înregistrați pentru uz necomercial au devenit plătite, cea mai populară soluție, poate, a fost utilizarea DNS-ului dinamic bazat pe serviciu. No-IP.org, care oferă servicii de asistență gratuite pentru 2 noduri cu IP dinamic. Pentru a utiliza serviciul gratuit, va trebui să vă înregistrați și să vizitați periodic (aproximativ o dată pe lună) site-ul pentru a actualiza informații despre nodurile IP dinamice utilizate. Dacă omiteți actualizarea datelor nodului, serviciul este suspendat și, în consecință, va deveni imposibil să vă conectați la nod după nume. Când utilizați serviciul contra cost, nu este necesară nicio actualizare.

        Aproape toate routerele (modemurile) moderne au suport încorporat pentru un client DNS dinamic. Configurarea sa este de obicei foarte simplă - completați câmpurile cu numele de utilizator și parola, precum și numele gazdei primite la înregistrarea la serviciul DDNS. Exemplu pentru Zyxel P660RU2

        Utilizarea clientului DDNS încorporat în router/modem este de preferată decât utilitarul de actualizare a datelor DNS care rulează în mediul SO, deoarece vă permite să implementați capacități suplimentare, cum ar fi gestionarea routerului prin Internet când computerul este oprit și pornirea de la distanță a sursei de alimentare a computerelor din spatele NAT folosind tehnologie Wake On Lan.

    În acele cazuri în care nu este posibil să utilizați clientul DDNS încorporat, va trebui să vă descurcați cu aplicația software - un program client pentru suportul DNS dinamic. Un astfel de program se conectează periodic la un server care menține un nume de domeniu înregistrat asociat ruterului prin care se realizează conexiunea la Internet și apelează procedura de actualizare IP atunci când se modifică. Setarile serverului sunt realizate in asa fel incat compararea numelui DNS si a adresei IP a conexiunii la Internet sa fie finalizata intr-un timp foarte scurt, iar natura dinamica a adresei nu are practic niciun efect asupra performantei serviciilor asociate cu numele DNS.

    Procedura este următoarea:

  • Mergem pe site-ul web No-IP.org. Pentru a lucra cu un cont existent sau nou, utilizați butonul "Conectare"(partea dreapta sus a paginii).

  • Creați, dacă nu a fost încă creat, contul dvs. - faceți clic "Creează cont". Formularul de înregistrare se modifică periodic, dar este obligatoriu să introduceți numele de utilizator, parola și E-mailul dorit. Un e-mail cu un link pentru confirmarea înregistrării este trimis la adresa de e-mail specificată în timpul înregistrării. Când vă înregistrați, selectați acces gratuit - faceți clic pe butonul Inregistrare gratis după completarea tuturor câmpurilor obligatorii ale formularului.
  • După înregistrarea cu succes, conectați-vă la site și adăugați o intrare pentru nodul dvs. - faceți clic pe butonul „Adăugați gazde”

    De fapt, trebuie doar să introduceți numele gazdei selectat, în acest caz - myhost8.ddns.net. Nu este nevoie să modificați alți parametri. Apoi trebuie să descărcați și să instalați un software special - Client de actualizare dinamică(DUC), linkul către care se află pe pagina principală a site-ului. După finalizarea instalării DUC, acesta se va lansa și se va deschide o fereastră de autorizare, unde trebuie să introduceți numele de utilizator sau e-mailul și parola primite la înregistrarea pe site-ul no-ip.org. Apoi apăsați butonul Editează Hostași bifați caseta de lângă numele de gazdă creat anterior (myhost8.ddns.net). Acum, numele de gazdă selectat va corespunde întotdeauna cu „adresa IP albă” a conexiunii dumneavoastră la internet. Dacă întâmpinați probleme la actualizarea adresei IP, verificați dacă activitatea de rețea a clientului DUC este blocată de un firewall.

    Configurarea unui server FTP

        Folosirea numerelor de porturi non-standard pentru un server FTP nu este deloc necesară dacă furnizorul nu folosește filtrarea traficului sau nu vă interesează scanarea porturilor pentru vulnerabilități și încercarea de a ghici parole. În acest articol, utilizarea unui server FTP cu porturi TCP non-standard este prezentată ca una dintre opțiunile posibile.

    Setările FileZilla Server se fac prin meniul „Editare” - „Setări”.

    Fereastră setari generale destinat setărilor generale ale serverului FTP.

    În câmpul „Ascultă pe acest port” poți specifica numărul portului pentru conexiunile TCP de intrare. În mod implicit, acest câmp este setat la 21 și pentru a utiliza un număr non-standard, trebuie să specificați valoarea selectată, de exemplu - 12321 . Utilizarea unui port TCP non-standard are unele inconveniente, deoarece necesită specificarea valorii acestuia la crearea unei sesiuni:

    Dacă serverul este planificat să fie utilizat atât cu acces de la Internet, cât și pe rețeaua locală, este logic să lăsați valoarea standard 21 și să utilizați un număr de port non-standard pentru conexiunile de pe Internet, setând redirecționarea pachetelor care sosesc pe portul 12321 al routerului către portul 21 al serverului FTP din rețeaua locală. Cu această configurare, nu este nevoie să specificați un număr de port pentru sesiunile FTP din rețeaua locală.

    Alți parametri sunt pentru reglarea performanței și expirarea sesiunii. Ele pot fi lăsate neschimbate. Secțiunile rămase ale setărilor generale pot fi, de asemenea, lăsate implicite:

    Mesaj de intampinare- text care este trimis clientului la conectare.

    Legarea IP- pe ce interfață de rețea vor fi așteptate conexiuni client. În mod implicit - pe oricare, dar puteți specifica unul anume, de exemplu - 192.168.1.3.

    Filtru IP- stabilirea regulilor de filtrare pentru adresele IP ale clientului. În mod implicit, conexiunile sunt permise pentru orice IP.

    Capitol Setări pentru modul pasiv servește la configurarea modului FTP pasiv și va necesita modificarea aproape a tuturor parametrilor impliciti.

    Numerele portului care vor fi folosite pentru a transmite date în modul pasiv trebuie setate manual, deoarece routerul va trebui configurat pentru a-l redirecționa către interfața de rețea pe care o ascultă serverul. Prin urmare, trebuie să bifați caseta pentru a activa modul „Utilizați intervalul de porturi personalizate” și să setați intervalul - de exemplu, de la 50000 inainte de 50020 . Numărul de porturi pe care serverul ascultă determină limita numărului de sesiuni de transfer de date simultan.

    Subsecțiunea Specific IPv4 definește adresa IP care va fi trimisă de server ca răspuns la comanda PASV. În acest caz, nu ar trebui să fie IP-ul propriu al serverului 192.168.1.3, ci „IP alb” al conexiunii noastre la internet. Prin urmare, trebuie să setați modul „Utilizați următorul IP” și, în loc de adresa IP, introduceți numele primit la înregistrarea la serviciul DNS dinamic - myhost8.ddns.net. Ca alternativă, puteți utiliza modul pentru determinarea adresei IP externe utilizând proiectul FileZilla pornind. „Preluați adresa IP externă de la:”. Această opțiune poate fi selectată în cazurile în care nu este posibilă utilizarea instrumentului DNS dinamic. Dacă intenționați să utilizați un server FTP în rețeaua locală, trebuie să setați modul la „Nu utilizați IP extern pentru conexiuni locale” (nu utilizați o adresă IP externă pentru conexiunile în cadrul rețelei locale)

    Restul setărilor serverului pot fi lăsate neschimbate sau, dacă este necesar, efectuate mai târziu: Setări de securitate- Setări de securitate. În mod implicit, conexiunile care pot fi utilizate pentru implementarea atacurilor DDoS sunt interzise

    Diverse- setări pentru dimensiunile bufferului și alți parametri de jurnal și unele comenzi FTP.

    Setările interfeței de administrare- setările panoului de control al serverului. Puteți specifica interfața de rețea, numărul portului de ascultare, adresele IP de la care sunt permise conexiunile la panoul de control și o parolă.

    Logare- setările jurnalului de evenimente ale serverului. În mod implicit, scrierea în fișier nu este efectuată.

    Limită de viteză- setările limitei ratei de transfer de date. Implicit - fără restricții.

    Compresie prin transfer de fișiere- setări pentru compresia fișierelor în timpul transferului. Valoarea implicită nu este compresie.

    Setări SSL/TLS activarea modului de criptare pentru datele transmise. Valoarea implicită nu este criptarea.

    Autoban- activați blocarea automată a utilizatorilor care selectează o parolă pentru a se conecta. În mod implicit, blocarea automată este dezactivată.

    Configurarea redirecționării portului și a paravanului de protecție

    Pentru ca serverul FTP să fie accesibil de pe Internet, este necesar să configurați routerul în așa fel încât conexiunile de intrare care vin către anumite porturi TCP de pe interfața externă să fie redirecționate către porturile TCP ascultate de serverul FTP de pe rețeaua internă. Pentru diferite modele de router, setările pot diferi în terminologie, dar semnificația lor este aceeași - un pachet TCP cu un anumit număr de port primit pe interfața externă (WAN) este trimis în rețeaua locală la adresa IP și portul dorit. Exemplu de setări pentru routerul D-Link DIR-320NRU pentru redirecționarea portului utilizat pentru modul FTP pasiv:

    Pachetele primite pe o interfață cu „IP ​​alb” și având numere de porturi în intervalul 50000-50020 vor fi redirecționate către adresa IP specificată în câmpul „IP intern” (în cazul nostru - 192.168.1.3). În mod similar, este creată o redirecționare pentru portul 50021 dacă ați schimbat numărul standard de port sau către portul 21 al serverului FTP dacă l-ați lăsat neschimbat.

    După aplicarea acestor setări, serverul FTP va fi accesibil prin URL ftp://myhost8.ddns.net:50021 sau, pentru o conexiune într-o rețea locală:

    ftp://192.168.1.3- dacă nu ați modificat numărul de port implicit (21) în setările serverului FTP.

    ftp://192.168.1.3:50021- dacă se utilizează un număr de port non-standard.

    Puteți utiliza un nume de computer în loc de o adresă IP dacă poate fi rezolvată la o adresă IP

    ftp://comp1

    ftp://comp1.mydomain.ru

    Diagnosticarea problemelor

    Dacă conexiunea la serverul FTP nu are loc, atunci pot apărea probleme cu firewall-ul care blochează conexiunile necesare pentru funcționarea serverului FTP creat. Dacă utilizați paravanul de protecție Windows încorporat, trebuie să adăugați o regulă care să permită activitatea de rețea pentru serviciul „FileZilla FTP server”. Dacă utilizați un firewall sau un antivirus terță parte cu filtrare de trafic, trebuie să creați o regulă corespunzătoare folosind instrumentele de setări disponibile pentru a permite conexiunile la rețea. Opțiunile sunt posibile atunci când sunt făcute setări pentru a permite orice activitate de rețea a unui anumit program sau pentru a permite adresele și porturile selectate care se aplică tuturor programelor.

    Cel mai bun loc pentru a începe diagnosticarea este pe serverul FTP însuși. Ca instrument de diagnosticare, puteți utiliza un standard client telnet(utilitate telnet.exe). Toate firewall-urile nu blochează conexiunile pe interfața loopback și pentru a verifica dacă setările serverului sunt corecte, vă puteți conecta la acesta introducând comanda:

    telnet localhost 21- dacă se utilizează un număr de port standard.

    telnet localhost 50021- dacă numărul portului standard a fost modificat.

    Când această comandă este executată, se realizează o conexiune la serverul FTP prin interfața de loopback și ar trebui să fie afișată o invitație de server (Mesaj de bun venit) în fereastra telnet. Dacă acest lucru nu se întâmplă, serverul poate fi oprit, există un conflict de porturi sau portul 21 (50021) nu ascultă. Pentru diagnosticare puteți folosi comanda netstat:

    netstat –nab

    Opțiunile liniei de comandă înseamnă:

    n- utilizați numere numerice de porturi și adrese IP

    A- afișați toate conexiunile și porturile de ascultare

    b- afișați numele programelor implicate în crearea conexiunilor.

    Exemplu de rezultate ale comenzii afișate:

    Conexiuni active

    Nume     Adresă locală     Adresă externă     Stare
    TCP         0.0.0.0:21                 0.0.0.0:0             ASCULTAREA
    TCP         0.0.0.0:135               0.0.0.0:0                        
    RpcSs

    Într-o coloană Adresă locală există un sens 0.0.0.0:21 , ceea ce indică faptul că programul numit FileZilla Server.exe ascultare (stare ASCULTARE) Portul TCP numărul 21 pe toate interfețele de rețea. Dacă în setările serverului FTP au fost specificate o interfață specifică și un număr diferit de port, atunci această valoare va conține IP:port, De exemplu - 192.168.1.3:50021

    Pentru a afișa rezultatele în modul pagină, puteți utiliza comanda:

    netstat -nab | Mai mult

    Sau utilizați rezultatele căutării după numărul de port: netstat -nab | găsiți „:21”

    Dacă serverul nu este disponibil pe o interfață non-loopback, dar este accesibil pe o interfață loopback, trebuie să înțelegeți setările paravanului de protecție.

    Configurarea utilizatorilor și a grupurilor.

    Configurarea utilizatorilor și a grupurilor se face prin meniul „Editare” - „Utilizatori” („Grupuri”). Nu este necesar să se creeze grupuri, dar uneori este convenabil în cazurile în care există un număr mare de utilizatori și drepturile acestora în raport cu serverul FTP diferă. Setările atât pentru grupuri, cât și pentru utilizatori sunt aproape identice:

    Acest exemplu arată rezultatul adăugării unui utilizator de server FTP numit utilizator1 având drepturi depline pentru a scrie, citi, șterge și îmbina fișiere, precum și pentru a vizualiza conținutul, șterge și crea subdirectoare în director C:\ftp\public

    Pe pagina General proprietățile utilizatorului sunt adăugate, șterse și modificate.
    Pe pagina Foldere partajate sunt făcute setări care determină lista directoarelor sistemului de fișiere care vor fi utilizate de serverul FTP pentru a oferi acces la acestea prin protocolul FTP. Fiecărui utilizator sau grup de utilizatori i se poate oferi propriul director cu anumite drepturi în legătură cu conținutul său.
    Pe pagina Limite de viteza Puteți seta restricții privind viteza de schimb de date.
    Pe pagina Filtru IP Puteți seta reguli de filtrare pentru adresa IP a utilizatorului, indicând adresele de la care conexiunea la server este interzisă sau permisă.

    Lista comenzilor FTP de bază

    ABOR - Anulează transferul fișierului
    CDUP - Schimbați directorul într-unul superior.
    CWD - Schimbați directorul curent.
    DELE - Ștergeți un fișier (DELE nume fișier).
    AJUTOR - Afișează o listă de comenzi acceptate de server.
    LIST - Returnează o listă de fișiere dintr-un director. Lista este transmisă prin conexiunea de date (portul 20).
    MDTM - Returnează ora de modificare a fișierului.
    MKD - Creați un director.
    NLST - Returnează o listă de fișiere dintr-un director într-un format mai scurt decât LIST. Lista este transmisă prin conexiunea de date (portul 20).
    NOOP - Operare gol
    PASV - Intrați în modul pasiv. Serverul va returna adresa și portul la care trebuie să vă conectați pentru a colecta datele. Transferul va începe când sunt introduse comenzile RETR, LIST etc.
    PORT - Intrați în modul activ. De exemplu PORT 12,34,45,56,78,89. Spre deosebire de modul pasiv, serverul însuși se conectează la client pentru a transfera date.
    PWD - Returnează directorul curent al serverului.
    QUIT - Deconectați-vă
    REIN - Reinițializați conexiunea
    RETR - Descărcați fișierul. RETR trebuie să fie precedat de o comandă PASV sau PORT.
    RMD - Ștergeți directorul
    RNFR și RNTO - Redenumiți fișierul. RNFR - ce să redenumim, RNTO - ce să redenumim.
    SIZE - Returnează dimensiunea fișierului
    STOR - Încărcați un fișier pe server. STOR trebuie să fie precedat de o comandă PASV sau PORT.
    SYST - Returnează tipul de sistem (UNIX, WIN,)
    TYPE - Setați tipul de transfer al fișierului (A - text ASCII, I - binar)
    UTILIZATOR - Nume de utilizator pentru a vă conecta la server

    Exemplu de sesiune FTP

    Clientul FTP se conectează la server cu numele de utilizator utilizator1, o parolă goală și descarcă un fișier numit CPU-v. Mesajele de la serverul FTP sunt evidențiate cu roșu, mesajele de la clientul FTP sunt evidențiate cu albastru. Schimbul de directive și parametri poate varia ușor între diferitele versiuni ale software-ului client FTP și server FTP.

    După conectare, serverul transmite informații despre sine către client:
    220-FileZilla Server versiunea 0.9.45 beta
    220-scris de Tim Kosse ( [email protected])
    220 Vă rugăm să vizitați http://sourceforge.net/projects/filezilla/
    Clientul transmite numele de utilizator:
    UTILIZATOR utilizator1
    Serverul cere o parolă:
    331 Parola necesară pentru user1
    Clientul transmite o parolă goală:
    TRECE
    Serverul verifică contul de utilizator și raportează începutul sesiunii:
    230 Conectat
    Clientul solicită tipul de sistem de operare de pe server:
    SYST
    Serverul raportează că tipul Unix, emulat de serverul Filezilla:
    215 UNIX emulat de FileZilla
    Clientul solicită o listă de parametri acceptați de server:
    FEAT
    Serverul răspunde cu o listă de parametri acceptați:
    211-Caracteristici:
    MDTM
    REST STREAM
    MĂRIMEA
    Tip MLST*;dimensiune*;modificare*;
    MLSD
    UTF8
    CLNT
    MFMT
    211 Sfârșit

    Clientul solicită directorul curent al serverului:
    P.W.D.
    Serverul raportează că directorul curent este directorul rădăcină ("/"):
    257 „/” este directorul curent.
    Clientul raportează că va transfera date binare:
    TIP I

    Serverul confirmă tipul de date transferate:
    200 Tip setat la I
    Clientul raportează că va folosi modul FTP pasiv:
    PASV
    Serverul raportează trecerea la modul pasiv și transmite IP-ul și portul pentru modul FTP pasiv.
    227 Intrarea în modul pasiv (212,248,22,114,195,97)
    Clientul solicită să primească un fișier numit CPU-v din directorul serverului curent
    RETR cpu-v
    Serverul raportează începutul transferului de date:
    150 Deschiderea canalului de date pentru descărcarea fișierelor de pe serverul „/cpu-v”
    La finalizare, serverul raportează un transfer reușit:
    226 Transferat cu succes „/cpu-v”

    În concluzie, aș dori să adaug că proiectul Filezilla include nu numai dezvoltarea și suportul unui server FTP gratuit de înaltă calitate, ci și un client FTP gratuit popular.

    Un articol cu ​​o scurtă descriere a unui client FTP gratuit pentru Linux, Mac OS și Windows. Acest client FTP acceptă multe protocoale de transfer de date ale aplicației - FTP, FTP peste SSL/TLS (FTPS), Protocolul de transfer de fișiere SSH (SFTP), HTTP, SOCKS și FTP-Proxy. Cu alte cuvinte, Filezilla FTP Client este un software universal pentru primirea și transferul de fișiere peste toate protocoalele de aplicație moderne între noduri de pe diverse platforme.

    Arhivele FTP sunt una dintre principalele resurse de informații de pe Internet. De fapt, este un depozit distribuit de texte, programe, fotografii și alte informații stocate sub formă de fișiere pe diferite computere din întreaga lume.

    Informațiile din arhivele FTP sunt împărțite în principal în trei categorii:

    • Informații protejate, modul de acces la care este determinat de proprietarii săi și este permis în baza unui acord special cu consumatorul. Acest tip de resursă include arhive comerciale (de exemplu, versiuni comerciale ale programelor din arhive ftp.microsoft.com), resurse necomerciale naționale și internaționale închise (de exemplu, lucrări la proiecte internaționale CES sau AIEA), informații private necomerciale cu regimuri speciale de acces (de exemplu, fundații caritabile private).
    • Resurse informative de utilizare limitată, care includ, de exemplu, programe de tip shareware. Această clasă poate include resurse de utilizare limitată sau de durată limitată.
    • Resurse de informații distribuite gratuit sau freeware, dacă vorbim de software. Aceste resurse includ tot ceea ce poate fi obținut gratuit online, fără o înregistrare specială. Aceasta ar putea fi documentație, programe sau orice altceva. Trebuie remarcat faptul că software-ul gratuit nu are un certificat de calitate, dar dezvoltatorii săi sunt deschiși să împărtășească experiențe.

    Dintre resursele enumerate mai sus, cele mai interesante sunt ultimele două categorii, care, de regulă, sunt formatate ca arhive FTP.

    Opțiunile pentru înregistrarea informațiilor sunt procesate imediat dintr-o privire. Pentru fiecare eveniment care poate fi înregistrat, tu decideți dacă va fi înregistrat într-un fișier, ecran, ambele sau oriunde. Fișierul jurnal va fi creat conform intervalului specificat, cu un nume nou care se potrivește cu masca setată.

    Revista poate fi trimisă pe e-mail la cerere. Un mesaj poate fi adresat mai multor adrese de e-mail. Caseta de dialog în care setați înregistrarea în jurnal. Pur și simplu introduceți calea către un fișier text care conține aceste informații. Puteți alege text diferit pentru utilizatorii care sosesc și diferit pentru utilizatorii care ies. Este interesant să setați o alertă sonoră pentru utilizatori. După conectare, deconectare, încărcare și alte evenimente, utilizatorii pot reda fișierul audio.

    Tehnologia FTP a fost dezvoltată ca parte a proiectului ARPA și este destinată schimbului de cantități mari de informații între mașini cu arhitecturi diferite. Designul a vizat asigurarea transmisiei fiabile, astfel încât, dintr-o perspectivă modernă, FTP pare să fie supraîncărcat cu funcții redundante, rar utilizate. Nucleul tehnologiei este protocolul FTP.

    Acestea vor fi comparate cu comenzile rapide care indică spre fișiere sau foldere situate în altă parte pe disc. Toate caracteristicile menționate mai sus, cum ar fi limitele de viteză, avertismente sonore, setări de securitate și vizualizări de fișiere ascunse pot fi configurate pe bază de utilizator, indiferent de setările generale.

    Pentru a vă salva munca cu administrarea mai multor utilizatori, aceștia sunt disponibili în grupuri. Puteți modifica permisiunile pentru foldere, dar nu mai sunt setări disponibile. În fereastra Conexiune, puteți vizualiza o listă de utilizatori conectați, cât de repede comunică serverul, cât timp au fost conectați și multe alte numere utile. Dacă este necesar, puteți dezactiva câte un buton la un moment dat. Există o așa-numită listă neagră și o listă de fișiere descărcate.

    protocol FTP.

    FTP (File Transfer Protocol, sau „Protocol de transfer de date”) este unul dintre cele mai vechi protocoale de pe Internet și este inclus în standardele sale. Primele specificații FTP datează din 1971. De atunci, FTP a suferit multe modificări și și-a extins semnificativ capacitățile. FTP poate fi folosit atât în ​​programele utilizatorului, cât și ca utilitar special pentru sistemul de operare.

    Unul dintre rapoartele statistice propuse. Conform comentariilor creatorilor, serverul este capabil să gestioneze încărcăturile zilnice de ordinul terabytelor de către sute de utilizatori conectați fără nicio problemă. De asemenea, trebuie să adăugați orice permisiuni de certificat care au fost utilizate pentru a crea certificatele atribuite serverelor la care vă veți conecta.

    Criptarea poate avea un impact semnificativ asupra performanței, dar poate fi omisă dacă conexiunea este pentru date. Acest lucru vă permite să transferați mai puține fișiere importante fără a afecta performanța și să vă protejați sistemul fără a dezvălui parolele. În schimb, serverul va acționa ca și cum clientul ar fi trimis aceste comenzi cu parametrii enumerați mai jos.

    FTP este conceput pentru a rezolva problemele de partajare a accesului la fișiere pe gazde la distanță, utilizarea directă sau indirectă a resurselor computerelor la distanță, asigurarea independenței clientului față de sistemele de fișiere ale gazdelor la distanță și transferul de date eficient și fiabil.

    Schimbul de date în FTP are loc pe un canal TCP. Schimbul se bazează pe tehnologia client-server. FTP nu poate fi utilizat pentru a transfera date confidențiale deoarece nu oferă securitate pentru informațiile transferate și transferă text clar între server și client. Serverul FTP poate solicita clientului FTP să se autentifice (adică utilizatorului FTP i se va cere să introducă ID-ul și parola atunci când se alătură serverului). Cu toate acestea, parola și ID-ul utilizatorului vor fi transmise de la client la server în text clar.

    Prin comandarea sistemului nostru de rezervă, „acest client primește propriul său server virtual privat, cu care computerul său creează o rețea virtuală, astfel încât să aibă acces la serviciile care rulează pe acest server”. Cu această soluție putem rula orice aplicație care acceptă transferul de date - totul depinde de software Clientului i se alocă un anumit spațiu care nu va fi preluat niciodată de altcineva. De asemenea, putem crește spațiul în orice moment, fără a întrerupe munca.

    Sistemul reprezinta un nivel foarte ridicat de siguranta datorita principiului sau de functionare. Protecție împotriva accesului sau ștergerii fișierelor de către persoane neautorizate, protecție împotriva interceptării datelor în timpul transmiterii și protecție împotriva deteriorării fizice a echipamentelor.

    Modele de operare FTP.

    Cel mai simplu model al modului în care funcționează protocolul FTP este prezentat în Figura 1. În FTP, conexiunea este inițiată de interpretul de protocol al utilizatorului. Schimbul este controlat printr-un canal de control în standardul de protocol TELNET. Comenzile FTP sunt generate de interpretul de protocol al utilizatorului și trimise la server. Răspunsurile serverului sunt de asemenea trimise utilizatorului prin canalul de control. În general, utilizatorul are capacitatea de a stabili contactul cu interpretul de protocol al serverului și prin alte mijloace decât interpretul de protocol al utilizatorului.

    În primul rând: clientul are propria lui mașină, propriul sistem de operare, pe care nu rulează și nici măcar utilizatorii nu au acces. Prin urmare, nu există nicio îndoială că o persoană neautorizată va vedea sau șterge fișierele de rezervă. În al doilea rând: computerul client, indiferent de protocolul de transfer de date, „intră pe server cu o ușă din spate”, iar conexiunea „cu ușa din față” este criptată, făcând imposibilă interceptarea pachetelor de date în timpul transmisiei.

    În chestiuni precum copiile de securitate, nu ar trebui să vă asumați riscuri. Vă prezentăm aici o metodă care a apărut din necesitate. Este folosit de majoritatea clienților, dar tratăm fiecare client individual, revizuind cu atenție sistemul de backup în ceea ce privește securitatea și software-ul pe care îl folosesc.

    Comenzile FTP definesc parametrii canalului de transfer de date și procesul de transfer în sine. Ele determină, de asemenea, natura muncii cu sistemele de fișiere la distanță și locale.

    Sesiunea de control inițializează legătura de date. La organizarea unui canal de transmisie a datelor, succesiunea acțiunilor este diferită, diferită de organizarea unui canal de control. În acest caz, serverul inițiază schimbul de date în conformitate cu parametrii conveniți în sesiunea de management.

    File Transfer Protocol este un serviciu care permite utilizatorilor să transfere fișiere de pe un computer situat pe Internet, numit gazdă la distanță, pe un computer local. Serverul cere apoi clientului să introducă un nume de utilizator și o parolă. Dacă serverul este public, acesta permite accesul folosind un nume de utilizator anonim și o adresă de e-mail ca parolă. Dacă în cazul canalului de control totul este la fel ca în cazul aplicațiilor care sunt proiectate în prezent în serie, coordonarea transmisiilor pe canalul de date este puțin diferită de ceea ce am găsit până acum.

    Canalul de date este stabilit pentru aceeași gazdă ca și canalul de control prin care este configurat canalul de date. Canalul de date poate fi utilizat atât pentru primirea, cât și pentru transmiterea datelor.

    Algoritmul de operare al protocolului FTP este următorul:

    1. Serverul FTP folosește portul TCP 21 ca o conexiune de control, care este întotdeauna în starea de așteptare a unei conexiuni de la utilizatorul FTP.
    2. După ce se stabilește o conexiune de control între modulul „User Protocol Interpreter” și modulul server – „Server Protocol Interpreter”, utilizatorul (clientul) poate trimite comenzi către server. Comenzile FTP definesc parametrii unei conexiuni de date: rolul participanților la conexiune (activ sau pasiv), portul de conectare (atât pentru modulul „Program de transfer de date utilizator”, cât și pentru modulul „Program de transfer de date server”), tipul de transferul, tipul de date transferate, structura datelor și directivele de control care indică acțiunile pe care utilizatorul dorește să le efectueze (de exemplu, salvarea, citirea, adăugarea sau ștergerea datelor sau a unui fișier etc.).
    3. După ce toți parametrii canalului de transmisie a datelor au fost conveniți, unul dintre participanții la conexiune, care este pasiv (de exemplu, „Programul de transfer de date utilizator”), devine în modul de așteptare pentru deschiderea unei conexiuni la portul specificat pentru transmiterea datelor. . După aceasta, modulul activ (de exemplu, „Server Data Transfer Program”) deschide conexiunea și începe transferul de date.
    4. După încheierea transferului de date, conexiunea dintre „Programul de transfer de date server” și „Programul de transfer de date utilizator” este închisă, dar conexiunea de control a „Interpretatorului protocolului de server” și a „Interpretului protocolului utilizatorului” rămâne deschisă. Utilizatorul, fără a închide sesiunea FTP, poate deschide din nou canalul de transfer de date.

    Este posibil ca datele să fie transferate pe o a treia mașină. În acest caz, utilizatorul organizează un canal de control cu ​​două servere și un canal de date direct între ele. Comenzile de control trec prin utilizator, iar datele trec direct între servere. Canalul de control trebuie să fie deschis când se transferă date între mașini. În caz contrar, dacă este închis, transferul de date se va opri. Conexiunea la două servere este prezentată în Figura 2.

    Acest semnal de la server vine prin emiterea unei cereri de conectare pe portul pe care ascultă clientul. Aceeași categorie include comenzi care ne permit să schimbăm directorul curent. Pentru a găsi fișierul de care au nevoie, utilizatorii vor naviga în mod normal prin structura de directoare. Această comandă necesită un argument care să reprezinte calea către acest director.

    Comenzile pentru definirea opțiunilor de transfer permit utilizatorilor să specifice tipurile de fișiere, formatele și structurile fișierelor și modurile de transfer. Toți parametrii procesului de transfer de date au valori implicite. Cu alte cuvinte, aceste comenzi vor fi folosite numai dacă clientul dorește să modifice valoarea unui anumit parametru. Comenzile pot fi trimise în orice ordine.

    Algoritmul funcționează atunci când se conectează două servere FTP, niciunul dintre acestea nu se află pe gazda locală a utilizatorului:

    1. Modulul „User Protocol Interpreter” a instruit modulul server „Server Protocol Interpreter 1” să lucreze în modul pasiv, după care modulul „Server Protocol Interpreter 1” a trimis utilizatorului adresa și numărul portului (N) pe care acesta le va asculta.
    2. Modulul „User Protocol Interpreter” a atribuit modulului server „Server Protocol Interpreter 2” ca participant activ la conexiune și ia instruit să transmită date către gazda „Server Protocol Interpreter 1” de pe portul (N).
    3. „User Protocol Interpreter” a trimis „Server Protocol Interpreter 1” comanda „salvați datele primite într-un astfel de fișier”, iar „Server Protocol Interpreter 2” a trimis comanda „transferă conținutul unui astfel de fișier. .”
    4. Între modulele „Server Protocol Interpreter 1” și „Server Protocol Interpreter 2” se formează un flux de date, care este controlat de gazda client.
    Mai jos este o diagramă de organizare a transferului de date între două servere FTP, corespunzătoare figurii 2. Aici sunt utilizate următoarele notații: User PI - user protocol interpreter; Interpret de protocol Server1(2) pentru server1 (server2).
    PI utilizator (U) ы Server1 (S1) PI utilizator (U) ы Server2 (S2)
    U Yu S1: Conectați-vă

    Ce comenzi folosește protocolul FTP?

    Cu această comandă, clientul informează serverul pe ce port încearcă să se conecteze. Clientul trebuie să „împartă” aceste adrese în biți de 8 biți și să-și transmită fiecare valoare unul altuia, valorile fiind separate între ele prin virgulă. Tipurile de fișiere și formatele de control sunt simbolizate printr-un simbol.

    Ca răspuns la o comandă din această categorie, serverul răspunde prin transmiterea de date. Dacă fișierul de transferat există pe sistemul pe care rulează serverul, acesta va fi suprascris. Când un utilizator navighează în structura de directoare a unui sistem la distanță, are nevoie de informații despre conținutul acelor directoare. Această comandă determină serverul să transmită o listă de fișiere și subdirectoare conținute în directorul curent. Dacă argumentul comenzii reprezintă o cale specifică, serverul va trimite o listă de fișiere existente în acel director.

    U L S1: 227 Intrarea în modul pasiv.

    A1, A2, A3, A4, a1, a2

    U Yu S2 Connect

    U Y S2: PORT A1, A2, A3, A4, a1, a2

    U L S2: 200 Bine
    U Yu S1: STOR... U Yu S2: RETR...

    S1 Yu S2: Conectați...

    Baza transferului de date FTP este mecanismul de stabilire a conexiunilor între porturile corespunzătoare și selectarea parametrilor de transfer. Fiecare participant la o conexiune FTP trebuie să accepte un port de date implicit. În mod implicit, „Programul de comunicații cu utilizatorul” folosește același port ca pentru trimiterea comenzilor (să-i spunem „U”), iar „Programul de comunicații cu serverul” folosește portul L-1, unde „L” este portul de control. Cu toate acestea, participanții la conexiune folosesc porturile de date selectate pentru ei de „Interpretul protocolului utilizatorului”, deoarece dintre procesele de control care participă la conexiune, numai „Interpretul protocolului utilizatorului” poate modifica porturile de date atât ale „Protocolului utilizatorului”. Interpreter" și "User Protocol Interpreter". Programe de transfer de date server.

    Setări opționale ale programului

    Este posibil ca, prin schimbarea directoarelor de pe sistemul de la distanță, utilizatorul să se uite la numele directorului curent. Practic, această comandă permite utilizatorului să abandoneze operația de transfer înainte ca aceasta să fie finalizată. Cu alte cuvinte, să presupunem că comanda a fost transmisă de client. După primirea răspunsului serverului, clientul își poate continua munca. În acest paragraf al articolului, ne vom uita la modul de interpretare a răspunsurilor serverului, răspunsuri numite răspunsuri.

    Fiecare cifră a codului are o semnificație specială. De exemplu, în cazul în care prima cifră a codului replica este 2, înseamnă că serverul a putut executa comanda. La fel, dacă prima cifră este 5, înseamnă că serverul nu acceptă comanda trimisă de server și, prin urmare, nu este inițiată nicio acțiune. Acum, indiferent de valoarea primei cifre a codului, dacă a doua cifră este 2, aceste răspunsuri se referă la canalul de date sau canalul de control. Dacă a doua cifră este 0, atunci răspunsurile corespunzătoare sunt erori de sintaxă.

    Partea pasivă a conexiunii trebuie, înainte ca comanda „pornire transmisie” să fie dată, să „asculte” portul său de date. Partea activă, care emite comanda de pornire a transmiterii datelor, determină direcția de mișcare a datelor.

    Odată ce conexiunea este stabilită, transmiterea începe între „Programul de transfer de date server” și „Programul de transfer de date utilizator”. În același timp, notificările despre primirea datelor sunt transmise prin canalul „Interpret protocol server” - „Interpret protocol utilizator”. Protocolul FTP necesită ca conexiunea de control să fie deschisă în timp ce legătura de date este transferată. O sesiune FTP este considerată închisă numai după ce conexiunea de control este închisă.

    În tabelul 1 am dat mai frecvent semnificația răspunsurilor utilizate. Mai mult, vom lucra și la crearea de resurse care să răspundă nevoilor aplicației noastre. În timp ce în ultimul număr al revistei ne-am uitat doar la inițierea unui canal de control, acum vom vedea cum să creăm și să coordonăm un canal de date. Ca resurse de program vom avea o casetă de dialog pentru preluarea datelor utilizatorului, un meniu cu trei căi și o pictogramă pentru aplicație. Din punctul de vedere al utilizatorului, aplicația este considerată mai mult un demo.

    Dacă totul merge bine, pe ecran va apărea un mesaj de la server care indică faptul că este gata să primească comenzi de la client. Deschide un canal de control. Revenind la prezentarea programului din punctul de vedere al programatorului, vom discuta câteva funcții de control al canalului. Utilizarea unei funcții sau a celeilalte se bazează pe dacă utilizatorul introduce un nume de sistem sau un punct zecimal. Creăm apoi adresa socketului, completând teșiturile structurii. În cele din urmă, conectați priza la un port cunoscut de pe sistemul de la distanță folosind funcția de conectare.

    De obicei, serverul FTP este responsabil pentru deschiderea și închiderea canalului de transfer de date. Serverul FTP trebuie să închidă independent canalul de transfer de date în următoarele cazuri:

    1. Serverul a terminat de transmis date într-un format care necesită închiderea conexiunii.
    2. Serverul a primit o comandă „încheierea conexiunii” de la utilizator.
    3. Utilizatorul a modificat setările portului de date.
    4. Conexiunea de control a fost închisă.
    5. Au apărut erori care fac imposibilă reluarea transferului de date.

    Comenzi de protocol .

    Comenzile de control al controlului transmisiei de date schimbate între interpretul protocolului server și interpretul protocolului utilizatorului pot fi împărțite în trei grupuri mari:

    • Comenzi de control al accesului la sistem.
    • Comenzi de control al fluxului.
    • Comenzi de serviciu FTP.

    Să ne uităm la câteva dintre cele mai tipice echipe din fiecare grupă. Dintre comenzile de control al accesului la sistem, trebuie remarcate următoarele:

    UTILIZATOR. De obicei, această comandă deschide o sesiune FTP între client și server. Argumentul comenzii este numele (identificatorul) utilizatorului pentru a lucra cu sistemul de fișiere. Această comandă poate fi emisă nu numai la începutul sesiunii, ci și la mijlocul sesiunii dacă, de exemplu, utilizatorul dorește să schimbe identificatorul în numele căruia vor fi efectuate acțiuni. În acest caz, toate variabilele legate de vechiul identificator sunt eliberate. Dacă comunicarea are loc în timpul unei schimbări de ID, schimbul se încheie cu vechiul ID de utilizator.

    TRECE. Această comandă este emisă după introducerea ID-ului utilizatorului și conține parola utilizatorului ca argument. Să vă reamintim că datele de autentificare FTP sunt transmise prin rețea în text clar, astfel încât utilizatorul trebuie să ia măsuri suplimentare pentru a asigura securitatea canalului.

    CWD. Comanda permite utilizatorilor să lucreze cu diferite directoare ale sistemului de fișiere la distanță. Argumentul comenzii este un șir care indică calea directorului sistemului de fișiere la distanță în care utilizatorul dorește să lucreze.

    FRÂU. Comanda de reinițializare. Această comandă șterge toate variabilele utilizatorului curent și resetează parametrii de conexiune. Dacă datele sunt transferate în momentul lansării comenzii, transferul continuă și se termină cu aceiași parametri.

    PĂRĂSI. Comanda închide canalul de control. Dacă datele sunt transmise atunci când este emisă o comandă, canalul este închis după încheierea transmisiei de date.

    Comenzile de control al fluxului stabilesc parametrii pentru transferul de date. Toți parametrii descriși de aceste comenzi au valori implicite, astfel încât comenzile de control al fluxului sunt utilizate numai atunci când este necesară modificarea valorii parametrilor impliciti de transfer. Comenzile de control al fluxului pot fi emise în orice ordine, dar toate trebuie să precedă comenzile serviciului FTP. Următoarele comenzi de control al fluxului de date trebuie evidențiate:

    PORT. Comanda atribuie adresa și portul gazdei care vor fi utilizate ca participant activ la conexiunea prin legătura de date. Argumentele comenzii sunt o adresă IP de 32 de biți și un număr de port de conexiune de 16 biți. Aceste valori sunt împărțite în șase câmpuri de 8 biți și sunt reprezentate sub formă zecimală: h1, h2, h3, h4, p1, p2, unde hN este octeți de adresă (de la mare la mic) și pN - octeți de port (de la mare la mic).

    PASV. Această comandă este trimisă către modul, care va juca un rol pasiv în transferul de date („ascultă” conexiunea). Răspunsul la această comandă ar trebui să fie o linie care să conțină adresa și portul gazdei care se află în modul de așteptare a conexiunii în formatul de comandă PORT - „h1, h2, h3, h4, p1, p2”.

    Comenzile TYPE, STRU, MODE determină, respectiv, tipul de date transmise (ASCII, Image și altele), structura sau formatul de transmitere a datelor (Fișier, Record, Page) și metoda de transmitere (Stream, Block și altele) . Utilizarea acestor comenzi este foarte importantă atunci când se construiește comunicarea în medii eterogene și sisteme de operare și fișiere foarte diferite ale gazdelor care comunică.

    Comenzile serviciului FTP definesc acțiunile care trebuie efectuate cu fișierele specificate. De obicei, argumentul pentru comenzile din acest grup este o cale de fișier. Sintaxa căii specificate trebuie să satisfacă cerințele de format ale sistemului de fișiere ale operatorului de comandă. Comenzile serviciului FTP includ următoarele:

    RETR. Această comandă instruiește modulul Server Data Transfer să transmită o copie a fișierului specificat de acest parametru de comandă către modulul Data Transfer la celălalt capăt al conexiunii.

    STOR. Comanda instruiește modulul „Program de transfer de date server” să primească date prin legătura de date și să le salveze ca fișier al cărui nume este specificat de parametrul acestei comenzi. Dacă un astfel de fișier există deja, acesta va fi înlocuit cu unul nou, dacă nu, va fi creat unul nou.

    Comenzile RNFR și RNTO trebuie să se succedă. Prima comandă conține vechiul nume de fișier ca argument, a doua - nou. Aplicarea consecutivă a acestor comenzi redenumește fișierul.

    ABOR. Comanda instruiește serverul să întrerupă execuția unei comenzi de serviciu anterioare (de exemplu, un transfer de fișiere) și să închidă canalul de date.

    Comanda DELE șterge fișierul specificat.

    Comenzile MKD și RMD creează și, respectiv, șterg directorul specificat în argument.

    Puteți utiliza comenzile LIST și NLST pentru a lista fișierele dintr-un director specificat.

    Toate comenzile de protocol FTP sunt trimise de „Interpretul de protocol utilizator” sub formă de text - o comandă pe linie. Fiecare linie de comandă este identificator și argumente - se termină cu caractere. Numele comenzii este separat de argument printr-un caracter de spațiu - .

    Managerul de comandă returnează un cod din trei cifre pentru procesarea fiecărei comenzi. Codurile de procesare formează o structură ierarhică specifică și, de regulă, o anumită comandă poate returna doar un anumit set de coduri. Codul de procesare a comenzii este urmat de un caracter de spațiu - , urmat de text explicativ. De exemplu, șirul de succes pentru o operație arată astfel: „200 Command okay”.

    Mai jos este un exemplu de lucru cu protocolul FTP. Denumiri: S - server, U - utilizator.

    S: 220 Service gata pentru utilizator nou
    U: UTILIZATOR Gluk
    > S: 331 Nume de utilizator ok, am nevoie de parolă
    U: PASI murmur
    S: 230 Utilizator autentificat, continua
    U: RETR test.txt
    S: 150 Stare fișier ok; pe cale să deschidă conexiunea de date

    S: 226 Închiderea conexiunii de date, transferul fișierului cu succes
    U: TIP I
    S: 200 Comandă bine
    U: STOR /home/images/first.my
    S: 550 Acces refuzat
    U: RENUNȚĂ

    Protocoale TFTP și SFTP.

    Protocolul FTP are doi „frați mai mici”: SFTP - Simple FTP și TFTP - Trivial FTP.

    Protocolul TFTP este cel mai simplu protocol de transfer de fișiere. Funcționează peste protocolul de transport UDP și oferă doar cele mai elementare operațiuni de transfer de fișiere, și anume scrierea și citirea fișierelor. TFTP a fost conceput pentru a fi un protocol simplu și ușor de utilizat. Nu permite apelarea unei liste de directoare și nu are niciun mijloc de autentificare, dar poate transmite informații pe 8 biți în conformitate cu toate standardele Internetului.

    Deoarece transferul de date are loc prin UDP, protocolul TFTP implementează propriile metode pentru livrarea fiabilă a datelor - pachete de confirmare, numerotarea blocurilor de date și a pachetelor de confirmare etc. Totul este foarte asemănător cu o versiune simplificată a emulării protocolului TCP.

    TFTP funcționează cu doar cinci comenzi:

    1. Cerere de citire (RRQ) - o solicitare de citire.
    2. Cerere de scriere (WRQ) - o cerere de scriere.
    3. Date (DATE) - pachet de date.
    4. Confirmare (ACK) - confirmare.
    5. Eroare (EROARE) - eroare.

    Procesul de transfer de date începe cu o solicitare de la clientul TFTP către server pentru a citi sau scrie un fișier. Conexiunea se stabilește după primirea confirmării de pregătire pentru una dintre solicitări, fie de scriere, fie de citit.

    La deschiderea unei conexiuni, fiecare parte selectează (aleatoriu) un identificator unic - TID, care este folosit și de UDP ca port de conectare. Fiecare pachet redirecționat este asociat cu două TID-uri corespunzătoare fiecărei părți a conexiunii. Cererea inițială este trimisă de inițiatorul conexiunii TF TP către portul UDP 69 (portul de inițializare), care specifică portul de conectare. Schimbul suplimentar are loc deja prin porturile alese de participanții la transferul de date.

    Dacă serverul permite cererea, schimbul este deschis și fișierul specificat este transferat (în blocuri de 512 octeți). Fiecare pachet de date transmise conține un bloc (512 octeți) și numărul blocului din fluxul transmis. Sosirea fiecărui bloc la gazda destinație trebuie confirmată printr-un pachet ACK (confirmare), cu numărul blocului primit. Numai după primirea pachetului de confirmare va fi trimis următorul pachet de date.

    Dacă lungimea pachetului este mai mică de 512 octeți, acesta servește drept semnal pentru închiderea canalului de comunicație. Dacă un pachet este pierdut în timpul transmisiei, după o anumită perioadă de timp serverul va retrimite acest pachet de date.

    Trei tipuri de situații determină trimiterea de pachete eronate:

    1. O solicitare neconfirmată, de exemplu, un fișier nu a fost găsit, niciun drept de acces etc.
    2. Formatul pachetului este incorect, de exemplu, a apărut o eroare de comutare.
    3. Pierderea accesului la o resursă necesară.

    Dacă există un număr mare de mesaje de eroare, conexiunea poate fi închisă la inițiativa uneia dintre părți.

    Schema tranzacției TFTP este următoarea:

    1. Gazda A trimite o cerere WRQ către Gazda B. Portul sursă este TIDA, portul destinație este 69. Pachetul conține numele fișierului, tipul de transfer.
    2. Gazda B trimite un ACK (număr de bloc - 0) gazdei A. Portul sursă este TIDB, portul destinație este TIDA.
    3. Gazda A trimite (prin conexiunea TIDA la TIDB) o comandă DATA și un bloc de date. Pachetul conține și numărul blocului.

    Protocolul de transfer de fișiere SFTP este popular atunci când utilizatorul are nevoie de un protocol care este puțin mai flexibil și mai fiabil decât TFTP și nu la fel de complex și greoi ca FTP.

    SFTP acceptă mecanisme pentru autentificarea utilizatorului, transferul de fișiere, navigarea în directoare, schimbarea directorului curent, redenumirea și ștergerea fișierelor. Pentru majoritatea operațiunilor pe care utilizatorul le efectuează cu un server FTP la distanță, acest serviciu este destul de suficient. SFTP poate transporta un flux de date pe 8 biți și, la fel ca TFTP, utilizează un singur canal de conexiune - atât pentru comenzi, cât și pentru date. Spre deosebire de TFTP, SFTP rulează peste TCP, portul 115.

    Comenzile SFTP sunt trimise pe rând, după primirea unui răspuns de procesare de la comanda anterioară. Toate comenzile constau din patru caractere ASCII și un caracter spațiu care separă comanda de argumentele sale. Răspunsul serverului constă dintr-un cod de răspuns și un mesaj text. Fiecare comandă și răspuns trebuie să se încheie cu un caracter ("\0" - la fel ca terminarea liniei în C). SFTP folosește doar 11 comenzi de bază și doar 4 coduri de răspuns pentru a controla transferul de date (simboluri: „+” - succes, „-" - erori, „!" - atenție, „ " - altele).

    Comanda SFTP are aproape aceeași sintaxă și scop ca și comenzile FTP similare.

    În scenariul de operare SFTP prezentat mai jos, serverul SFTP - „MIT-XX” se află într-o stare de așteptare pentru o conexiune. Utilizatorul „MKL” (parola „foo”) conectat la serverul SFTP, a solicitat o listă de fișiere în format standard din directorul „PS” cu comanda „LIST F PS:”, apoi a solicitat o listă de fișiere în format extins de la același directorul cu comanda „LIST V” PS:”. Apoi, utilizatorul a creat o solicitare pentru un fișier numit „Small.File” - comanda „RETR SMALL.FILE”. Ca răspuns, serverul și-a returnat dimensiunea - 69 și l-a pregătit pentru trimitere. După aceasta, utilizatorul citește fișierul cu comanda SEND. Comanda DONE a închis conexiunea.

    Denumiri: S - server SFTP, U - utilizator SFTP.

    S: +MIT-XX Serviciu SFTP
    U: UTILIZATOR MKL
    S: +MKL ok, trimite parola
    U: PASS foo
    S:! MKL sa conectat
    U: LISTA F PS:
    S: +PS:
    Mic.Fişier
    U: LISTA V PS:
    S: +PS:
    Mic.Fișier 1 69 (7) P775240 2-aug-94 20:08 MKL
    U: RETR SMALL.FILE
    S:69
    TU TRIMITI
    S: Acesta este un fișier mic, fișierul este trimis fără un nul final.
    U: gata
    S: +MIT-XX închiderea conexiunii

    După cum se poate observa din scenariul de operare prezentat, SFTP este un protocol simplu, construit după o schemă trivială cerere-răspuns cu un set minim de comenzi, care vă permite să efectuați toate operațiunile necesare pentru controlul transferului și plasarea datelor pe disc.

    SFTP este destul de satisfăcător cu un utilizator și un server și este ușor de utilizat și de programat.

    Utilitar FTP.

    Pentru utilizatorul obișnuit, combinația FTP este mai bine cunoscută ca numele unui utilitar de serviciu care vă permite să faceți schimb de fișiere între serverele FTP și computerele client. Unele dintre utilitare folosesc un serviciu de linie de comandă, altele au o interfață grafică, dar în general toate acceptă standardul de protocol FTP și definesc un set de comenzi de bază care trebuie să fie suportat de toate implementările serviciului FTP.

    Utilitarul FTP oferă utilizatorului un shell cu o interfață de linie de comandă. În funcție de implementarea și versiunea programului FTP, acesta poate suporta anumite funcții pentru lucrul cu un sistem de fișiere la distanță. Comenzile utilitarului FTP sunt de obicei construite pe principiul lucrului cu sistemul de fișiere local și sunt destul de diferite de comenzile protocolului FTP.

    În esență, un utilitar FTP este un interpret al comenzilor shell în comenzi (și secvențele acestora) ale protocolului FTP. Trimiterea comenzilor de conexiune FTP, analiza răspunsurilor serverului FTP, deschiderea unui canal de transfer de date, procesul de transfer de date - toate acestea se întâmplă în interiorul modulului FTP. Utilizatorul este informat despre toate comenzile și evenimentele de transfer de date în conformitate cu interpretarea acestor evenimente de către utilitarul FTP.

    Un exemplu este un scenariu de transfer al unui fișier text de la un server FTP la o gazdă locală.

    C:\>ftp
    ftp> deschide ftp.sun.com
    220-Bine ați venit la Sun Microsystems Corporate FTP Server.
    220-
    220- ftp server FTP (ftpd miercuri 30 oct 23:31:06 PST 1996) gata.
    Utilizator (ftp.sun.com: (niciunul)): ftp
    331 Autentificare invitat ok, trimiteți adresa dvs. de e-mail completă ca parolă.
    Parola:
    230 Autentificare invitat ok, se aplică restricții de acces.
    ftp> dir
    200 Comandă PORT reușită.
    150 Deschiderea conexiunii de date în modul ASCII pentru /bin/ls.
    total 34
    dr-xr-xr-x 8 root 0 512 Feb 14 1997 .
    d--x--x--x 3 utilizatori root 512 Oct 31 1996 etc
    drwxrwx-wt 3 root 42 5120 21 noiembrie 10:37 primit
    drwxrwxr-x 12 root 42 4096 19 noiembrie 23:26 pub
    dr-xr-xr-x 4 utilizatori root 512 7 iunie 1996 usr
    -rw-r--r-- 1 utilizatori root 49 septembrie 27 1996 welcome.msg
    226 Transferul finalizat.
    624 de octeți primiți în 19,66 secunde (0,03 kbytes/sec)
    ftp> get welcome.msg primer.txt
    200 Comandă PORT reușită.
    150 Deschiderea conexiunii de date în modul ASCII pentru welcome.msg (49 bytes).
    226 Transferul finalizat.
    50 de octeți primiți în 2,73 secunde (0,02 Kbytes/sec)
    ftp> iesire
    221 La revedere.

    Sintaxa comenzii:

    ftp [-v] [-d] [-n]

    • v - suprimă răspunsurile serverului și statisticile de transfer de date;
    • n - controlează modul de identificare a utilizatorului. Dacă acest comutator este specificat, fișierul .netrc este verificat mai întâi;
    • i - dezactivează confirmările de transfer de fișiere la copierea fișierelor în bloc;
    • d - pornește modul de depanare;
    • g - dezactivează transparența transferului de nume.

    Comenzile importante sunt comenzile de primire/transmitere get, put, mget, mput și bin. Comenzile get și put sunt concepute pentru a primi și, respectiv, a transmite un singur fișier. Comenzile mget și mput efectuează aceleași acțiuni ca și cele anterioare, dar pentru un grup de fișiere. Comanda bin vă permite să transferați date în modul binar, ceea ce este important pentru transferul de programe și arhive în plus, acest mod este util pentru datele de caractere cu o lungime de linie arbitrară (ASCII limitează lungimea liniei la 254 de caractere); O altă comandă utilă este comanda hash. Linia: „ftp> hash #” atunci când lucrați cu linii lente sau transferați fișiere mari vă permite să vedeți procesul de transfer de date (semnul # este emis după transferul fiecărui bloc, un alt simbol poate fi folosit în loc de #).

    Proiectat pentru transferul de fișiere prin rețele TCP (de exemplu, Internet). Utilizează portul 21. FTP este adesea folosit pentru a descărca pagini web și alte documente de pe un dispozitiv de dezvoltare privat pe servere publice de găzduire.

    Protocolul este construit pe o arhitectură client-server și utilizează diferite conexiuni de rețea pentru a transfera comenzi și date între client și server. Utilizatorii FTP se pot autentifica prin transmiterea unui nume de utilizator și a unei parole în text clar sau, dacă serverul permite acest lucru, se pot conecta anonim. Puteți utiliza protocolul SSH pentru transferuri securizate care ascund (criptează) datele de conectare și parola și, de asemenea, criptează conținutul.

    Primele aplicații client FTP au fost instrumente interactive de linie de comandă care implementau comenzi și sintaxă standard. Interfețele grafice cu utilizatorul au fost dezvoltate de atunci pentru multe sisteme de operare încă utilizate astăzi. Aceste interfețe variază de la programe generale de web design, cum ar fi Microsoft Expression Web, până la clienți FTP specializați (cum ar fi FileZilla).

    FTP este unul dintre cele mai vechi protocoale de aplicație, apărând cu mult înainte de HTTP și chiar înainte de TCP/IP, în 1971. La început a funcționat pe deasupra protocolului NCP. Este încă utilizat pe scară largă astăzi pentru distribuția de software și accesul la gazde la distanță.

    Descrierea protocolului

    Diferența față de HTTP

    Proprietate FTP HTTP
    Pe baza sesiunilor de lucru da Nu
    Autentificarea utilizatorului încorporată da Nu
    Destinat în principal pentru transmitere Fișiere binare mari Fișiere text mici
    Model de conectare Conexiune dublă Conexiune unică
    Adaptat în principal pentru recepție/transmitere Recepție și transmisie Recepţie
    Suporta modurile de transmisie text și binară da Nu
    Acceptă specificarea tipurilor de date transmise (anteturi MIME) Nu da
    Suportă operațiuni ale sistemului de fișiere (mkdir, rm, redenumire etc.) da Nu

    O caracteristică destul de izbitoare a protocolului FTP este că folosește conexiuni multiple (cel puțin duble). În acest caz, un canal este canalul de control, prin care sunt trimise comenzi către server și răspunsurile acestuia sunt returnate (de obicei prin portul TCP 21), iar prin restul are loc transmisia efectivă a datelor, câte un canal pentru fiecare transmisie. Prin urmare, în cadrul unei sesiuni prin protocolul FTP, puteți transfera mai multe fișiere simultan și în ambele direcții. Pentru fiecare canal de date este deschis propriul său port TCP, al cărui număr este selectat fie de server, fie de client, în funcție de modul de transmisie.

    Protocolul FTP (cum ar fi HTTP) are un mod de transfer binar, care reduce supraîncărcarea traficului și reduce timpul de comunicare atunci când se transferă fișiere mari.

    Când începe lucrul prin protocolul FTP, clientul intră într-o sesiune și toate operațiunile sunt efectuate în cadrul acestei sesiuni (cu alte cuvinte, serverul își amintește starea curentă). Protocolul HTTP nu „își amintește” nimic - sarcina sa este să ofere date și să le uite, așa că amintirea stării atunci când se folosește HTTP este realizată prin metode externe protocolului.

    Conexiune și transfer de date

    Suport pentru browser web

    Sintaxă

    Sintaxa URL FTP este descrisă în RFC1738, sub forma: ftp://[[:]@][:]/ (parametrii dintre paranteze drepte sunt opționali). De exemplu:

    Mai multe detalii despre specificarea numelui de utilizator și a parolei sunt scrise în documentația browserului. În mod implicit, majoritatea browserelor web folosesc modul pasiv (PASV), care ocolește mai bine firewall-urile utilizatorilor finali.

    Siguranță

    FTP nu a fost conceput pentru a fi un protocol sigur (mai ales după standardele actuale) și are numeroase vulnerabilități de securitate. În mai 1999, autorii RFC 2577 au rezumat vulnerabilitățile în următoarea listă de probleme:

    • Atacurile ascunse (atacuri cu sărituri)
    • Atacurile falsificate
    • Atacurile de forță brută
    • Captură de pachete, adulmecare
    • Protecția numelui de utilizator
    • Furtul de port

    FTP nu își poate cripta traficul, toate transmisiile sunt text clar, astfel încât numele de utilizator, parolele, comenzile și datele pot fi citite de oricine poate intercepta pachetul prin rețea. Această problemă este tipică pentru multe specificații de protocol Internet (inclusiv SMTP, Telnet, POP, IMAP) dezvoltate înainte de crearea mecanismelor de criptare, cum ar fi TLS și SSL. Soluția obișnuită la această problemă este să folosiți versiuni „securizate”, protejate prin TLS ale protocoalelor vulnerabile (FTPS pentru FTP, TelnetS pentru Telnet etc.) sau un alt protocol mai sigur, cum ar fi SFTP/SCP, furnizat cu majoritatea protocolului Secure Shell. implementari .

    FTP securizat

    Există mai multe metode de transfer în siguranță a fișierelor, la un moment dat sau altul numite „Secure FTP”.

    FTPS

    FTPS explicit este o extensie a standardului FTP care permite clienților să solicite ca sesiunea FTP să fie criptată. Acest lucru este implementat prin trimiterea comenzii „AUTH TLS”. Serverul are capacitatea de a permite sau de a respinge conexiuni care nu solicită TLS. Această extensie de protocol este definită în specificația RFC 4217. FTPS implicit este un standard vechi pentru FTP care necesită o conexiune SSL sau TLS. Acest standard trebuia să folosească porturi diferite de la FTP normal.

    SFTP

    SFTP, sau „SSH File Transfer Protocol”, nu are legătură cu FTP, cu excepția faptului că transferă și fișiere și are un set similar de comenzi pentru utilizatori. SFTP, sau secure FTP, este un program care folosește SSH (Secure Shell) pentru a transfera fișiere. Spre deosebire de FTP standard, acesta criptează atât comenzile, cât și datele, împiedicând transmiterea deschisă a parolelor și a informațiilor sensibile prin rețea. Funcționalitatea SFTP este similară cu FTP, dar deoarece utilizează un protocol diferit, clienții FTP standard nu pot comunica cu un server SFTP și invers.

    FTP prin SSH (nu SFTP)

    FTP prin SSH (nu SFTP) se referă la practica tunelului unei sesiuni FTP obișnuite printr-o conexiune SSH. Deoarece FTP utilizează mai multe conexiuni TCP, tunelul prin SSH este deosebit de dificil. Când mulți clienți SSH încearcă să stabilească un tunel pentru canalul de control (conexiunea originală client-server pe portul 21), doar acest canal va fi protejat; la transferul de date, software-ul FTP de la fiecare capăt va stabili noi conexiuni TCP (canale de date) care vor ocoli conexiunea SSH și, astfel, vor pierde integritatea.

    În caz contrar, software-ul client SSH trebuie să aibă cunoștințe despre FTP pentru a monitoriza și rescrie mesajele fluxului de control FTP și pentru a deschide în mod autonom noi redirecționări pentru fluxul de date FTP. Pachete software care acceptă acest mod:

    • Tectia ConnectSecure (Win/Linux/Unix)
    • Tectia Server pentru IBM z/OS din pachetul SSH Communications Security
    • (sub licență GPL)

    FTP prin SSH este uneori denumit FTP securizat; dar nu trebuie confundat cu alte metode precum SSL/TLS (FTPS). Alte metode de transfer de fișiere care utilizează SSH și care nu sunt legate de FTP sunt SFTP și SCP; în fiecare dintre ele, atât acreditările, cât și datele fișierului sunt întotdeauna protejate de protocolul SSH.

    Poveste

    Prima implementare a protocolului (1971) prevedea schimbul între client și server de mesaje constând dintr-un antet (72 de biți) și date de lungime variabilă. Antetul mesajului includea o solicitare sau un răspuns de la serverul FTP, tipul și lungimea datelor transferate. Parametrii de solicitare (de exemplu, calea și numele fișierului), informațiile de la server (de exemplu, o listă de fișiere dintr-un director) și fișierele în sine au fost transmise ca date. Astfel, comenzile și datele au fost transmise pe același canal.

    În 1972, protocolul a fost complet schimbat și a căpătat o formă apropiată de cea modernă. Comenzile cu parametrii de la răspunsurile client și server sunt transmise printr-o conexiune TELNET (canal de control) este creată o conexiune separată (canal de date);

    În edițiile ulterioare, a fost adăugată posibilitatea de a lucra în modul pasiv, a fost adăugată transferul de fișiere între servere FTP, au fost introduse comenzi pentru obținerea de informații, schimbarea directorului curent, crearea și ștergerea directoarelor și salvarea fișierelor sub un nume unic. De ceva timp au existat comenzi pentru transmiterea e-mailului prin FTP, dar acestea au fost ulterior eliminate din protocol.

    În 1980, protocolul FTP a început să folosească TCP. Cea mai recentă versiune a protocolului a fost lansată în 1985. În 1997, a apărut o completare la protocol care permite criptarea și semnarea informațiilor în canalul de control și canalul de date. În 1999, a fost lansat un addendum dedicat internaționalizării protocolului, care recomanda utilizarea codificării UTF-8 pentru comenzile și răspunsurile serverului și a definit o nouă comandă LANG care stabilește limbajul de răspuns.

    Comenzi de bază

    • ABOR - Anulează transferul fișierului
    • CDUP - Schimbați directorul într-unul superior.
    • CWD - Schimbați directorul.
    • DELE - Ștergeți un fișier (DELE nume fișier).
    • EPSV - Intrați în modul pasiv extins. Folosit în loc de PASV.
    • AJUTOR - Afișează o listă de comenzi acceptate de server.
    • LIST - Returnează o listă de fișiere dintr-un director. Lista este trimisă printr-o conexiune de date.
    • MDTM - Returnează ora de modificare a fișierului.
    • MKD - Creați un director.
    • NLST - Returnează o listă de fișiere dintr-un director într-un format mai scurt decât LIST. Lista este trimisă printr-o conexiune de date.
    • NOOP - Operare gol.
    • PASS - Parolă.
    • PASV - Intrați în modul pasiv. Serverul va returna adresa și portul la care trebuie să vă conectați pentru a colecta datele. Transferul va începe când sunt introduse următoarele comenzi: RETR, LIST etc.
    • PORT - Intrați în modul activ. De exemplu PORT 12,34,45,56,78,89. Spre deosebire de modul pasiv, serverul însuși se conectează la client pentru a transfera date.
    • PWD - Returnează directorul curent.
    • QUIT - Deconectați-vă.
    • REIN - Reinițializați conexiunea.
    • RETR - Descărcați fișierul. RETR trebuie să fie precedat de o comandă PASV sau PORT.
    • RMD - Ștergeți directorul.
    • RNFR și RNTO - Redenumiți fișierul. RNFR - ce să redenumim, RNTO - ce să redenumim.
    • SIZE - Returnează dimensiunea fișierului.
    • STOR - Încărcați fișierul. STOR trebuie să fie precedat de o comandă PASV sau PORT.
    • SYST - Returnează tipul de sistem (UNIX, WIN, ...).
    • TYPE - Setați tipul de transfer al fișierului (binar, text).
    • UTILIZATOR - Nume de utilizator pentru a vă conecta la server.

    coduri de răspuns FTP

    Mai jos este o scurtă descriere a codurilor de răspuns care pot fi returnate de serverul FTP. Aceste coduri au fost standardizate de IETF în RFC 959. După cum am menționat mai devreme, codul de răspuns este un număr din trei cifre. Prima cifră este responsabilă pentru unul dintre cele trei rezultate: succes, refuz sau indicarea unei erori sau a unui răspuns incomplet.

    • 2xx - Răspuns de succes
    • 4xx/5xx - Comanda nu poate fi executată
    • 1xx/3xx - Eroare sau răspuns incomplet

    A doua cifră determină tipul de eroare:

    • x0z - Sintactic.
    • x1z - Informații. Corespunde mesajului de informare.
    • x2z - Conexiuni. Mesajul se referă la o conexiune de control sau o conexiune de date.
    • x3z - Corespunde mesajelor de autentificare și drepturi ale utilizatorului.
    • x4z - Nu este definit.
    • x5z - Sistem de fișiere. Corespunde unui mesaj de stare a sistemului de fișiere.

    A treia cifră specifică definitiv eroarea.

    Exemplu

    220 Server FTP gata. UTILIZATOR ftp //Anonim 230 Conectare reușită. PASV 227 Intrarea în modul pasiv (192,168,254,253,233,92)//Clientul trebuie să deschidă o conexiune la LISTA IP transmisă 150 Aici apare lista de director. //Serverul trimite o listă de fișiere în directorul 226 Directory send OK. Directorul 250 de intrare CWD a fost modificat cu succes. PASV 227 Intrare în modul pasiv (192,168,254,253,207,56) STOR gyuyfotry.avi 150 Ok pentru a trimite date. //Clientul trimite conținutul fișierului 226 Primire fișier OK. QUIT 221 La revedere.

    Argumentul 192,168,254,253,207,56 înseamnă că este așteptată o conexiune la server pe un nod cu o adresă IP de 192.168.254.253 pe portul 207

    Multe servere FTP au un director (numit incoming, upload etc.) care poate fi scris și este destinat încărcării fișierelor pe server. Acest lucru permite utilizatorilor să alimenteze serverele cu date noi.

    FXP

    FXP(Engleză) Protocolul de schimb de fișiere- protocol de schimb de fișiere) este o metodă de transfer direct de fișiere între două servere FTP, fără a le descărca pe computer. Într-o sesiune FXP, clientul deschide două conexiuni FTP la două servere diferite, solicitând un fișier de la primul server, specificând adresa IP a celui de-al doilea server în comanda PORT.

    Un avantaj incontestabil al suportării standardului FXP este că utilizatorii finali care doresc să copieze fișiere de pe un server FTP pe altul nu mai sunt supuși limitărilor de lățime de bandă ale propriei conexiuni la Internet. Nu este nevoie să descărcați un fișier pentru dvs. și apoi să îl încărcați pe un alt server FTP. Astfel, timpul de transfer al fișierelor va depinde doar de viteza de conectare între două servere FTP la distanță, care în cele mai multe cazuri este evident mai mare decât cea „utilizator”.

    FXP a început să fie folosit de atacatori pentru a ataca alte servere: comanda PORT specifică adresa IP și portul serviciului atacat de pe computerul victimei, iar comenzile RETR/STOR accesează acest port în numele serverului FTP și nu al atacatorului. mașină, care a făcut posibilă efectuarea de atacuri DDoS la scară largă folosind mai multe servere FTP simultan sau ocolirea sistemului de securitate al computerului victimei dacă se bazează doar pe verificarea IP-ului clientului și serverul FTP utilizat pentru atac este localizat pe o rețea sau gateway de încredere. Ca urmare, aproape toate serverele verifică acum dacă adresa IP specificată în comanda PORT se potrivește cu adresa IP a clientului FTP și, implicit, interzic utilizarea adreselor IP ale terților acolo. Prin urmare, utilizarea FXP nu este posibilă atunci când lucrați cu servere FTP publice.