Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Erori
  • Protocolul ftp este un protocol. protocol FTP. FTP FTP (English File Transfer Protocol) este un protocol conceput pentru transferul de fișiere prin rețele de computere. FTP

Protocolul ftp este un protocol. protocol FTP. FTP FTP (English File Transfer Protocol) este un protocol conceput pentru transferul de fișiere prin rețele de computere. FTP

INFORMATICĂ

Rezumat pe subiect:

„Protocol FTP. Informații generaleși caracteristici".

Facultatea: juridică

Completat de: ANTONiO.

Artă. bilet: 13U02444

În această fereastră, setările programului sunt configurate functii generale... Precum:

· Numele serverului FTP;

· suma maxima utilizatorii de server care pot fi pe server în același timp;

· Opțiuni de pornire a serverului, care sunt activate la pornirea sistemului de operare;

· Desemnarea portului pe care va fi ascultat ftp.



2.3. Setări opționale ale programului

Aceste setări sunt folosite pentru a configura caracteristicile opționale ale programului. Astfel de setări importante Cum:

· Capacitatea de a restricționa accesul la directorul și subdirectoarele în care se află serverul FTP;

· Criptarea parolelor conturilor de utilizator;

Limitarea verificării contului utilizatorului și a parolei acestuia la n-ori, atunci instalare automată este interzis sau pur și simplu aruncat din server;

· Configurarea restricției de acces de la adrese IP.

2.4. Setări suplimentare ale programului

Această fereastră este folosită pentru a configura capabilități tehnice programe care își optimizează performanța și sistemul în ansamblu. Acestea sunt setări precum:

· Setarea buffer-ului de recepție (în octeți), util pentru soluții de rețea lentă sau ocupată;

· Scopul principal al serverului (încărcare/descărcare, doar descărcare, doar încărcare);

· Prioritatea serverului FTP în lista generală a proceselor OS;

· Blocarea transmisiei de la server la server;

· Sistem anti-ciocănire (încercări prea frecvente de autentificare pe server fără motiv).

2.5. Setări de cache a programului

Aceste setări vă permit să optimizați capacitățile de stocare în cache ale programului. Acest lucru permite serverului FTP să stocheze în memorie lista directoarelor pe care le-a accesat pentru o perioadă de timp specificată, ceea ce crește răspunsul la accesul la acestea dacă, într-un interval de timp specificat, au existat încă încercări de acces la directoare situate în memorie cu acces aleator calculator.

2.7. Generator de statistici

Această fereastră vă permite să configurați frecvența actualizării statisticilor, tipul de statistici colectate, precum și pentru ce utilizatori să colecteze statistici.

Această opțiune este utilă prin faptul că puteți vedea în mod clar încărcarea serverului și cele mai populare resurse, ceea ce vă permite să optimizați timpul de funcționare a serverului și să configurați mai precis proprietățile de cache ale programului (secțiunea 2.5).

2.7. Programator și configurarea adreselor IP dinamice

În aceste setări, puteți configura funcții precum:

· Pornire/oprire FTP-server conform programului;

· Executarea funcțiilor standard ale sistemului de operare în program;

· Urmărirea schimbării dinamice a anumitor adrese IP.

Acesta din urmă permite utilizatorilor cu adresa IP dinamică se află în baza de utilizatori fără nicio restricție. Serverul BulletproofFTP însuși va urmări modificarea adresei IP și o va înregistra în baza de date, ca una suplimentară pentru un anumit utilizator.

2.8. Configurarea adreselor MULTIIP și vizualizarea programului

Aceste opțiuni vă permit să configurați mai multe adrese IP (utilizatorii pot avea aceleași date de conectare și parole pe diferite servere FTP "virtuale"), precum și vizualizarea programului (afișarea pictogramei de activitate a serverului în bara de sistem, afișarea stării transferului fișierelor, verificare automată actualizări de program, ștergerea fișierelor în coșul de reciclare al sistemului de operare sau direct în DEV \ NULL (ștergere fizică)).

2.9. Configurarea fișierelor jurnal (rapoarte.

În această fereastră, puteți configura întreținerea dosar detaliat un raport de care niciun server FTP serios nu se poate descurca.

2.10. Configurarea reacțiilor programului la evenimente

Această caracteristică este, după părerea mea, cea mai utilă pe site-urile web care găzduiesc acest server FTP. Pentru fiecare acțiune sau răspuns al serverului, puteți configura o reacție specifică, cum ar fi afișarea unui mesaj, lansarea un fisier anume sau de a face functia sistemului... Acea. eficiența site-urilor web este crescută de mai multe ori, iar interacțiunea cu utilizator activ, în general, se ridică la o înălțime de neatins.

2.11. Configurarea drepturilor de utilizator și a autorităților

Aceste setări pot fi făcute prin fila CONTURI DE UTILIZATOR. Aici puteți înregistra următoarele puteri:

· Cere listă specifică utilizatorii și să-și înregistreze puterile pentru fiecare dintre ei;

· Setați o listă de directoare la care utilizatorul poate accesa, precum și atribute de acces pentru fiecare dintre ele;

Personalizare setari aditionale;

· Stabilirea de cote și limite de viteză;

· Posibilitatea de a seta o listă de adrese IP permise / refuzate;

· Starea generală detaliată pentru întreaga perioadă de funcționare a serverului.



3.0. Unele probleme cu serverele FTP

Serverele FTP pot funcționa în două moduri: activ și pasiv. În modul activ, când începe transferul de date, clientul începe să asculte pe un port TCP și spune serverului pe ce port ascultă, după care serverul deschide o conexiune TCP de la portul 20 la portul specificat de client. Datele sunt apoi transferate prin această conexiune. În modul pasiv, clientul informează serverul că este gata să transfere date, iar serverul începe să asculte pe un port TCP nespecial și îi spune clientului care. Apoi clientul deschide o conexiune TCP la portul specificat de server și schimbul de date are loc prin această conexiune.

Problema cu aceste conexiuni auxiliare este că specificația existentă a protocolului FTP nu oferă nicio metodă de verificare a faptului că clientul sau serverul care a stabilit conexiunea este cel care a solicitat această conexiune în sesiunea de control. Acest lucru, combinat cu faptul că multe sisteme de operare atribuie porturi TCP secvenţial în ordine crescătoare, înseamnă că rezultatul este că protocolul FTP creează condiţii care permit unui atacator să intercepteze datele pe care altcineva le transmite sau să falsifice datele. Aceste atacuri diferă ușor în modul activ și pasiv. Când transmisia de date este activă, atacatorul ghicește numărul portului TCP pe care clientul final așteaptă o conexiune. Apoi atacatorul trimite continuu server FTP la care este conectat clientul, PORT ip, of, client, machine, port, port RETR filename sau comenzi STOR filename. Folosind RETR, dacă trebuie să înlocuiți datele transmise către client, sau STOR, dacă trebuie să interceptați datele de la client la server. Sau, un atacator poate folosi atacuri bazate pe cunoașterea numărului de secvență TCP și poate falsifica sesiunea de comunicare de la server la client. Adevărat, folosind acest tip de atac este imposibil să interceptați datele, le puteți înlocui doar cu ale dvs.

4.0. Comenzi de protocol FTP

Comenzile de control pentru controlul transferului de date schimbate între Server Protocol Interpreter și User Protocol Interpreter pot fi împărțite în trei grupuri mari:

1. Comenzi pentru controlul accesului la sistem.

2. Comenzi de control al fluxului de date.

3. Comenzile serviciului FTP.

Să luăm în considerare câteva dintre cele mai tipice echipe din fiecare grupă. Printre comenzile pentru controlul accesului la sistem, trebuie remarcate următoarele:

UTILIZATOR. De obicei, această comandă se deschide 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, ci și la mijlocul sesiunii, dacă, de exemplu, utilizatorul dorește să schimbe identificatorul în numele căruia vor fi efectuate acțiunile. În acest caz, toate variabilele legate de vechiul identificator sunt eliberate. Dacă se schimbă date în timp ce identificatorul este schimbat, schimbul se încheie cu vechiul identificator de utilizator.

TRECE. Această comandă este emisă după introducerea ID-ului utilizatorului și, ca argument, conține parola utilizatorului. Ca o reamintire, datele de autentificare FTP sunt transmise prin rețea. în text simplu, prin urmare, pentru a asigura securitatea canalului, utilizatorul trebuie să ia măsuri suplimentare.

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

FRÂU. Comanda de reinițializare. Această comandă șterge toate variabilele utilizator curent, resetează parametrii conexiunii. Dacă, în momentul comenzii, are loc transferul de date, transferul continuă și se termină cu aceiași parametri.

PĂRĂSI. Comanda închide canalul de control. Dacă în momentul trimiterii comenzii are loc transmisia de date, canalul este închis după terminarea transmisiei de date.

Comenzile de control al fluxului stabilesc parametrii de transfer de date. Toți parametrii descriși de aceste comenzi au o valoare implicită, astfel încât comenzile de control al fluxului sunt utilizate numai atunci când trebuie să modificați valoarea parametrilor impliciti de transfer. Comenzile de control al fluxului pot fi emise în orice ordine, dar toate trebuie să precedă comenzile de serviciu FTP. Următoarele ar trebui să fie distinse de comenzile de control al fluxului de date:

PORT. Comanda atribuie adresa și portul gazdei care vor fi utilizate ca membru activ al conexiunii de legătură de date. Argumentele pentru comandă 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 la scăzut)...

PASV. Această comandă este trimisă către modul, care va juca un rol pasiv în transmiterea datelor („ascultarea” conexiunii). Răspunsul la această comandă ar trebui să existe un șir care să conțină adresa și portul gazdei care sunt în modul de așteptare pentru conectare în formatul comenzii PORT - „h1, h2, h3, h4, p1, p2”.

Comenzile TYPE, STRU, MODE definesc, respectiv, tipul datelor transmise (ASCII, Image si altele), structura sau formatul transmiterii datelor (File, Record, Page), metoda de transmitere (Stream, Block si altele). Utilizarea acestor comenzi este foarte importantă atunci când se construiește interoperabilitate în medii eterogene și sisteme de operare și fișiere foarte diferite ale gazdelor care interacționează.

Comenzile serviciului FTP definesc acțiunile cu care trebuie efectuate fișierele specificate... De obicei, argumentul pentru comenzile din acest grup este calea către fișier. Sintaxa pentru calea specificată trebuie să îndeplinească cerințele de format pentru sistemul de fișiere de gestionare a comenzilor. Din comenzile serviciului FTP, se pot distinge următoarele:

RETR. Această comandă instruiește modulul Server Communications Utility să trimită o copie a fișierului, dat de parametru a acestei comenzi către modulul de transfer de date de la celălalt capăt al conexiunii.

STOR. Comanda instruiește modulul „Program de transfer de date server” să primească date prin canalul de transfer 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 suprascris cu unul nou, dacă nu, se va crea unul nou.

Comenzi RNFRși RNTO trebuie să se urmeze unul pe altul. Prima comandă conține vechiul nume de fișier ca argument, a doua pe cel nou. Aplicație consecventă aceste comenzi redenumesc fișierul.

ABOR. Comanda instruiește serverul să anuleze cele precedente echipa de service(de exemplu, transfer de fișiere) și închideți canalul de date.

Comanda DELEșterge fișierul specificat.

Comenzi MKDși RMD, respectiv, creați și ștergeți directorul specificat în argument.

Utilizarea comenzilor LISTĂși NLST puteți obține o listă de fișiere din directorul specificat.

Toate comenzile FTP sunt trimise de către User Protocol Interpreter către forma 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 fiecare comandă. Codurile de procesare formează o anumită structură ierarhică și, de regulă, comanda specifică poate returna doar un anumit set de coduri. Codul de procesare a comenzii este urmat de un caracter spațiu - urmat de textul explicativ. De exemplu, linia de finalizare cu succes a operațiunii arată astfel: „200 Command ok”.

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

S: 220 Service gata pentru utilizator nou

> S: 331 Nume de utilizator ok, am nevoie de parolă

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

S: 200 Comandă bine

Reţea serviciul de fișiere Protocolul de transfer de fișiere (FTP) este unul dintre cele mai vechi servicii utilizate pentru a accesa fișierele de la distanță. Înainte de apariția WWW, acesta era cel mai popular serviciu de acces la date de la distanță de pe Internet și rețelele IP corporative. Primele specificații FTP datează din 1971. Serverele și clienții FTP se găsesc în aproape fiecare sistem de operare UNIX, precum și în multe alte sisteme de operare de rețea. Clienții FTP sunt încorporați în browserele de pe Internet astăzi, deoarece arhivele de fișiere bazate pe FTP sunt încă populare și browserul folosește FTP pentru a accesa astfel de arhive.

protocol FTP vă permite să mutați întregul fișier din computer la distanță la local si invers, adica functioneaza dupa schema de incarcare-descarcare. În plus, acceptă mai multe comenzi pentru a răsfoi un director la distanță și a naviga în directoare pe un sistem de fișiere la distanță. Prin urmare, FTP este deosebit de convenabil de utilizat pentru a accesa acele fișiere, ale căror date nu au sens să fie vizualizate de la distanță, dar este mult mai eficient să mutați întregul fișier în computer client(de exemplu, fișiere executabile ale aplicației).

FTP construit în autentificare primitivă utilizatori la distanță pe baza transmiterii parolei prin rețea către formă deschisă... În plus, susținut acces anonim care nu necesită un nume de utilizator și o parolă, ceea ce este mai sigur deoarece nu expune parolele utilizatorilor amenințării de interceptare.

Protocolul FTP este realizat conform schemei client-server. Un client FTP este format din mai multe module functionale:

  • Interfață utilizator - O interfață de utilizator care acceptă comenzi de caractere de la utilizator și afișează starea sesiunii FTP pe un ecran de caractere.
  • User-Pi - interpret pentru comenzile utilizatorului. Acest modul interacționează cu modulul server FTP corespunzător.
  • User-DTP este un modul care transferă datele fișierelor folosind comenzile primite de la modulul User-Pi folosind protocolul client-server. Acest modul interacționează cu sistemul de fișiere local al clientului.

Serverul FTP include următoarele module:

  • Server-Pi - un modul care primește și interpretează comenzile transmise prin rețea de către modulul User-PL
  • Server-DTP - un modul care controlează transferul datelor fișierului prin comenzi din modulul Server-PL.Interacţionează cu sistemul de fișiere local al serverului.

Clientul și serverul FTP acceptă două sesiuni simultane - o sesiune de control și o sesiune de transfer de date. O sesiune de control este deschisă când se stabilește conexiunea inițială FTP între client și server, iar în timpul unei sesiuni de control pot fi efectuate succesiv mai multe sesiuni de transmisie de date, în timpul cărora sunt transmise sau primite mai multe fișiere.


Schema generală de interacțiune dintre client și server este următoarea:

1. Serverul FTP deschide întotdeauna controlul Port TCP 21 pentru a asculta, așteptând sosirea unei cereri de stabilire a unei sesiuni FTP de control de la un client la distanță.

2. După stabilirea conexiunii de control, clientul trimite comenzi către server care specifică parametrii conexiunii:

· Numele și parola clientului;

· Rolul participanților la conexiune (activ sau pasiv);

· Port de transfer de date;

· Tipul transferului;

· Tipul datelor transmise (date binare sau cod ASCII);

3. După ce parametrii sunt negociați, participantul pasiv al conexiunii intră în modul de așteptare pentru deschiderea unei conexiuni la portul de transfer de date. Participantul activ inițiază această conexiune și începe să transfere date.

4. După încheierea transferului de date, conexiunea portului de date este închisă, iar conexiunea de control rămâne deschisă. Utilizatorul poate activa o nouă sesiune de transfer de date prin conexiunea de control.

Clientul FTP alege porturile de transfer de date (în mod implicit, clientul poate folosi portul de sesiune de control pentru transferul de date), iar serverul trebuie să utilizeze un port mai mic decât portul client.

FTP folosește mai multe comenzi în comunicarea client-server (a nu se confunda cu comenzile interfeței cu utilizatorul client care sunt folosite de oameni).

Aceste comenzi sunt împărțite în trei grupuri:

  • comenzi de control acces la sistem;
  • comenzi de control al fluxului de date;
  • comenzi Servicii FTP.

Setul de comenzi pentru controlul accesului include următoarele comenzi:

  • UTILIZATOR - Furnizează numele clientului către server. Această comandă deschide o sesiune de control și poate fi trimisă și atunci când o sesiune de control este deschisă pentru a schimba numele de utilizator.
  • PASS - transmite parola utilizatorului în text clar.
  • CWD - Schimbă directorul curent de pe server.
  • REIN - Reinițializează sesiunea de control.
  • QUIT - încheie sesiunea de control.

Comenzile de control al fluxului stabilesc parametrii de transfer de date:

  • PORT - definește adresa și portul gazdei care va face participant activ conexiuni de date. De exemplu, comanda PORT 194,85,135,126,7,205 face ca gazda 194.85.135.126 și portul 1997 să devină participant activ (calcularea numărului de port nu este banală, dar destul de clară).
  • PASV - Desemnează gazda ca membru pasiv al conexiunii de date. Ca răspuns la această comandă, o comandă PORT trebuie trimisă cu adresa și portul inactiv.
  • TYPE - setează tipul de date transmise (cod ASCII sau date binare).
  • STRU - definește structura datelor transmise (fișier, înregistrare, pagină).
  • MODE - setează modul de transfer (prin flux, blocuri etc.).

După cum puteți vedea din descriere, serviciul FTP poate fi folosit pentru a lucra atât cu fișiere structurate, împărțite în înregistrări sau pagini, cât și cu cele nestructurate.

Comenzile serviciului FTP inițiază acțiuni pentru a transfera fișiere sau a răsfoi un director de la distanță:

  • RETR - Solicită un transfer de fișiere de la server la gazda client. Parametrii comenzii sunt numele fișierului. De asemenea, poate fi specificat un offset de la începutul fișierului - acest lucru vă permite să începeți transferul unui fișier dintr-un anumit punct în cazul unei deconectari neașteptate (acest parametru este utilizat în comanda reget a interfeței cu utilizatorul).
  • STOR - inițiază un transfer de fișiere de la client la server. Parametrii sunt aceiași ca și pentru comanda RETR.
  • RNFR și RNTO - redenumiți comenzile fișier la distanță... Primul ia vechiul nume de fișier ca argument, iar al doilea îl ia pe cel nou.
  • DELE, MKD, RMD, LIST - aceste comenzi respectiv șterg un fișier, creează un director, șterg un director și trec lista de fișiere din directorul curent.

Fiecare comandă FTP este transmisă sub formă de text, o comandă pe linie. Șirul se termină cu caracterele ASCII CR și LF.

Interfața cu utilizatorul Clientul FTP depinde de el implementare software... Alături de clienții tradiționali în modul caracter, există și cochilii grafice care nu necesită ca utilizatorul să cunoască comenzi simbolice.

Clienții de caractere acceptă, în general, următorul set de comenzi de bază:

  • open hostname - deschideți o sesiune cu serverul la distanță.
  • pa - încheie sesiunea cu gazda la distanță și iese din utilitarul ftp.
  • închidere - încheiați sesiunea cu gazda la distanță, utilitarul ftp continuă să funcționeze.
  • ls (dir) - Imprimă conținutul directorului de la distanță curent.
  • get filename - copiați fișierul de la distanță în gazdă locală.
  • put filename - Copiază fișierul la distanță pe serverul la distanță.

Dacă citiți acest blog de mult timp, atunci vă puteți aminti cum am decis să adun în el o descriere a celor populare (și nu așa) protocoale de rețea... De ce am nevoie de asta, puteți citi în articolul O descriere destul de completă a protocolului SMTP. Așa că am decis să reumplem colecția cu protocolul FTP, care este utilizat pe scară largă pentru transferul de fișiere.

1. Mergem

Prin tradiție, voi începe imediat cu un exemplu:

$ telnet example.ru 21
Încercați 192.168.0.1...
Conectat la example.ru.
Caracterul de evacuare este „^]”.
220-Bine ați venit la Pure-FTPd
Sunteți utilizatorul numărul 5 din 100 permis.
Ora locală este acum 17:41. Port server: 21.
220 Veți fi deconectat după 15 minute de inactivitate.
UTILIZATOR afiskon
331 Utilizator afiskon OK. Este necesară parola
PASS lameparola
230-Utilizatorul afiskon are acces de grup la: codificatori
230 OK. Directorul restricționat curent este /

Serverul FTP rulează de obicei pe portul 21. În exemplul de mai sus, șirurile care încep cu numere sunt trimise de server, restul sunt trimise de client. Solicitările clientului constau întotdeauna într-o singură linie de format COMANDĂ [argumente], în timp ce răspunsurile serverului pot conține mai multe linii.

Prima și ultima linie încep cu trei cifre reprezentând codul de răspuns, urmate de descriere text răspuns, separat de cod fie printr-un spațiu, fie printr-o liniuță. Dacă un spațiu este folosit ca separator, atunci linia este ultima din răspuns (și, eventual, singura), în caz contrar, primim prima linie a unui răspuns cu mai multe linii. Am văzut asta pe undeva, nu-i așa?

Există cinci grupuri de răspunsuri de server:

După cum puteți vedea din exemplu, totul începe cu serverul care trimite codul 220. Apoi utilizatorul trebuie să se conecteze folosind comenzile USER și PASS. Dacă totul este făcut corect, primul server va răspunde cu codul 331, iar al doilea - 230. Pentru autentificare anonimă (dacă este permisă de setările serverului), introduceți „anonim” ca nume de utilizator și adresa de e-mail ca parola. În practică, de obicei se trimite fie un e-mail gol, fie ceva asemănător [email protected]

După cum puteți vedea, parola este transmisă în text clar, de aceea este foarte de dorit să criptați conexiunea FTP folosind SSL (aceasta se numește FTPS - FTP plus SSL), sau chiar mai bine - transferați fișiere prin SSH folosind scp, sftp sau Utilitare WinSCP. Primele două se găsesc în orice sistem Unix și folosesc protocoale cu același nume pentru transferul fișierelor, lucrând prin SSH. WinSCP este scris pentru Windows și arată ca Comandant total, poate funcționa atât cu SCP (Secure Copy) învechit, cât și cu SFTP (SSH File Transfer Protocol), care au apărut doar în SSH-2.

2. Privind în jur

Dar ceva m-a dus în stepa greșită. După ce am trecut autentificarea (wow, nu o mai confund cu autorizare) Serverul FTP va executa cu plăcere comenzile noastre. Iată o listă cu ele:

Comanda Cod așteptat Descriere
DELE 250 Ștergeți un fișier
RMD 250 Ștergeți directorul
CWD 250 Accesați directorul
MKD 257 Creați director
PWD 257 Aflați directorul curent
PĂRĂSI 221 Termină lucrul
TIP 200 Setați tipul de transfer
PORT 200 Mergi la modul activ
PASV 227 Treci în modul pasiv
LISTĂ 150, 226 Obțineți conținutul directorului
RETR 150, 226 Descărcare fișier
STOR 150, 226 Incarca fisier
ABOR 426,226 Anulați transferul
RNFR 350 Selectați fișierul pentru a redenumi
RNTO 250 Redenumește fisierul

Aici am enumerat doar comenzile de bază, care sunt suficiente pentru a scrie un client FTP cu drepturi depline. Ideea este că în conditii reale Serverele FTP sunt foarte selective în ceea ce privește acceptarea comenzilor descrise în RFC959 și RFC3659. Deci, dacă vrem să obținem o aplicație cu adevărat funcțională, și nu un cal sferic în vid, va trebui să ne restrângem doar la comenzile din lista de mai sus.

Cel mai comenzi simple- aceasta este INIȚI, ȘTERGERE, MKD, CWD și RMD... Pur și simplu comandăm și verificăm codul returnat de server. Dacă este egal cu cel așteptat, atunci totul este OK, dacă nu, ne ocupăm de eroare.

MKD ftp_test
257 "ftp_test": Directorul a fost creat cu succes
CWD ftp_test
250 OK. Directorul curent este / ftp_test
CWD ..
250 OK. Directorul curent este /
RMD ftp_test
250 Directorul a fost eliminat cu succes

Dacă aș scrie un client FTP, atunci codul responsabil pentru executarea comenzilor numite ar arăta cam așa:

cod int;
char * dir;
// ...
dacă (cod = rawcmd (250, „RMD% s \ r \ n ", dir))
printf ("Eroare:% d \ n ", cod);
altfel
printf ("Totul este gata! \ n ") ;

Puțin mai dificil cu analizarea răspunsului serverului la comandă PWD:

PWD
257 „/ ftp_test” este locația dvs. curentă

Directorul curent este trecut într-o singură linie (ultima?) în răspunsul serverului, cuprinsă între ghilimele duble. Dacă Numele complet directorul curent conține ghilimele duble, acestea sunt înlocuite cu două ghilimele:

PWD
257 „/ ftp” „test” este locația dvs. curentă

Câteva comenzi sunt folosite pentru a redenumi fișierele - RNFR și RNTO:

RNFR fișier_vechi.zip
350 Tu esti glumesc?
RNTO fișier_nou.zip
250 Gata!

Aparent, aceasta este o astfel de optimizare, astfel încât bufferul în care serverul citește comenzile clientului este de ordinul lungimii maxime permise a numelui complet al fișierului și nu de două ori mai lung. În 1971, când a fost creat protocolul, acest lucru ar putea fi important.

Comanda TIP vă permite să setați modul de transfer al fișierelor. Exemplu:

TIP E
200 TYPE este acum EBCDIC
TIP A
200 TYPE este acum ASCII
TIP I
200 TYPE este acum binar pe 8 biți

Din câte îmi pot da seama, astăzi această comandă este deja depășită și toate datele pot fi transferate în siguranță în format binar (TIP I). Citat din Wikipedia:

Primele calculatoare foloseau un format de dimensiunea unui octet, cuvânt-mașină, cuvânt-mașină dublu, nu un multiplu de 8. Erau de obicei multipli de șase. Opt biți pe octet au fost adoptați în dezvoltarea setului de instrucțiuni pentru mașină pentru IBM System / 360. A devenit standard internationalși de la începutul anilor 1970 majoritatea computerelor folosesc octeți de 8 biți și cuvinte mașină care sunt multipli de 8.

3. Acționăm

Caracteristica protocolului FTP - pentru executarea comenzilor și transferul fișierelor, conexiuni diferite... Acest lucru este în general normal. soluție de proiectare... Nu știm ce este scris în aceste fișiere, iar dacă le transferați împreună cu comenzi, va trebui să codificați cumva conținutul fișierului pentru a-l deosebi de comenzi. De ce să creșteți traficul și să complicați protocolul când puteți doar să deschideți o nouă conexiune și să trimiteți fișierul așa cum este?

Când se stabilește o nouă conexiune, cineva ar trebui să se conecteze, iar cineva ar trebui să accepte conexiunea. Dacă clientul deschide un port și serverul se conectează la acesta, modul de transfer de fișiere se numește activ. Altfel, pasiv. Datorită faptului că mulți utilizatori de internet astăzi stau în spatele NAT, de obicei se folosește modul pasiv. Și acest lucru nu este foarte bun, deoarece numărul de porturi de pe server este limitat.

Ceea ce este interesant este că este posibil să transferați direct fișiere de la un server FTP la altul. Dar, deoarece această caracteristică a fost adesea folosită în atacurile DDoS, acum este dezactivată aproape peste tot.

Pentru a comuta în modul pasiv, utilizați comanda PASV, pentru a comuta la activ - PORT:

PORT 192,168,10,1,21,133
200 Comandă PORT reușită
PASV
227 Intrarea în modul pasiv (192,168,0,1,21,216)

După cum ați putea ghici, numerele sunt folosite pentru a codifica adresa IP și portul pentru conexiune. Să presupunem că suntem în modul pasiv și dorim să stabilim o conexiune de date:

$ telnet 192.168.0.1 `expr 21 \ * 256 + 216`
Încercați 192.168.0.1...
Conectat la example.ru.
Caracterul de evacuare este „^]”.

Apoi putem, de exemplu, vizualiza conținutul directorului curent folosind comanda LISTĂ:

LISTĂ
150 Conexiune de date acceptată
226-Optiuni: -a -l
226 5 meciuri în total

Ne uităm la ieșirea telnet:

drwx ------ 5 codificatori afiskon 512 Jul 7 11:35.
drwx ------ 5 codificatori afiskon 512 Jul 7 11:35 ..
drwxr - r-- 3 codificatori afiskon 512 6 iunie 14:30 site
drwxr-xr-x 2 codificatori afiskon 1024 7 iulie 00:16 jurnal
drwxr - r-- 2 codificatori afiskon 512 6 iunie 14:30 tmp
Conexiune închisă de către gazda externă.

Descărcarea și încărcarea fișierelor se desfășoară absolut în același mod, fiind folosite doar comenzile RETR (fișier)și STOR (fișier) respectiv. Comenzile RETR, STOR și LIST pot fi întrerupte în timpul execuției cu comanda ABOR, ca răspuns la care serverul ar trebui să răspundă 426 „transmisia anulată”, apoi 226 „operațiunea anulată a avut succes”.

4. Concluzie

Pe asta, poate, voi încheia povestea mea. S-a dovedit 9 KB de text față de 130 KB de RFC959. Acest articol este destul de posibil să scrieți un simplu client sau server FTP, am verificat! Cel mai important lucru este să-l testăm pentru compatibilitate cu cât mai multe software posibil, deoarece, după cum am observat, puțini oameni din lumea FTP urmează cu strictețe RFC-urile. Și ultimul lucru - amintește-ți regula de aur„Fii liberal cu inputul, strict cu outputul”.

FTP(File Transfer Protocol) este unul dintre cele trei protocoale principale de Internet (mail, www, ftp). FTP sau „File Transfer Protocol” este unul dintre cele mai vechi protocoale de pe Internet și face parte din standardele sale. Schimbul de date FTP are loc pe un canal TCP. Un schimb a fost construit folosind tehnologia „client-server”.

Protocol este un format agreat pentru transferul de date între două dispozitive. Protocolul definește următoarele:

  • cum va fi efectuată verificarea erorilor;
  • metoda de ambalare a datelor (dacă se utilizează ambalaj);
  • modul în care dispozitivul expeditor raportează că a terminat mesajul;
  • modul în care dispozitivul receptor raportează că a primit mesajul.

Există o serie de protocoale standard (de referință) din care îl puteți alege pe cel potrivit. Fiecare protocol are propriile sale avantaje și dezavantaje (dezavantaje); de exemplu, unele sunt mai simple decât altele, unele sunt mai fiabile, iar altele sunt mai rapide.

Din punctul de vedere al utilizatorului, singurul lucru care îl interesează la protocol este că computerul sau dispozitivul trebuie să îl suporte (protocolul) corect dacă vrei să comunici cu alte computere. Protocolul poate fi implementat fie în hardware, fie în software.

FTP este un set de reguli care dictează modul în care computerele pot partaja fișiere pe Internet.

FTP este construit în așa fel încât diverse calculatoare cu software diferit și hardware diferit poate schimba eficient orice fișiere.

Astăzi mulți utilizatori îl asociază cu formatele warez, mp3, jpeg și mpeg. Dar de fapt, acest protocol este folosit pentru a transfera orice fel de fișiere, de la obișnuit documente text la protejat fișiere de program... Protocolul FTP este utilizat pe scară largă în sisteme automate efectuarea de plăți prin internet și pentru transmiterea de informații de la sateliți în spațiu.

Încărcarea și descărcarea fișierelor pe Internet este atât de importantă sarcini de rutină că FTP a fost utilizat pe scară largă chiar înainte de a apărea pe web E-mail... Cu toate acestea, acest protocol face mult mai ușor să obțineți acces la fișierele de pe alt computer decât să permiteți altora să vă acceseze și să vă citească fișierele.

Procese tehnice pentru realizarea unei conexiuni folosind FTP

  • utilizator - nume de utilizator.
  • două puncte sunt separatorul programului dintre numele de utilizator și parolă
  • parola - parola.
  • @ - înseamnă separarea între datele utilizatorului și adresă.

Urmează adresa în sine. Poate fi IP, sau adresa poate avea sensul literar(ftp.ur.ru). Adresa este urmată din nou de două puncte de separare, care separă adresa și numărul portului la care se va conecta. În mod implicit, acest port este 21, dar poate fi orice număr furnizat de administratorul serverului.

Adresa poate arăta astfel:

Aceasta va însemna că numele de către anonim, parola este Adresa de e-mail, iar portul este al 21-lea.

Moduri FTP

Când se utilizează protocolul FTP, se stabilesc două conexiuni între și - guvernând(urmează comenzile) și conexiune de date(fișierele sunt transferate peste el). Conexiunea de control este aceeași pentru activși modul pasiv ... Clientul inițiază o conexiune TCP de la un port dinamic (1024-65535) la portul 21 de pe serverul FTP și spune "Bună! Vreau să mă conectez la tine. Iată numele meu și parola." Actiunile urmatoare depinde de ce mod FTP (activ sau pasiv) este selectat.

  • V modul activ când clientul spune „Bună ziua!” de asemenea, îi spune serverului numărul portului (de la interval dinamic 1024-65535), astfel încât serverul să se poată conecta la client pentru a stabili o conexiune de date. Serverul FTP se conectează la numărul portului client specificat utilizând portul TCP 20 pentru transferul de date. Pentru client, o astfel de conexiune este una de intrare, deci este adesea dificil să lucrezi în modul activ pentru clienții din spatele unui firewall sau NAT sau necesită setări suplimentare.
  • V modul pasiv, după ce clientul spune „Bună ziua!”, serverul îi spune clientului numărul portului TCP (din intervalul dinamic 1024-65535) la care se poate conecta pentru a stabili o conexiune de date. În același timp, după cum este ușor de observat, porturile dintr-o astfel de conexiune, atât din partea clientului, cât și din partea serverului, se dovedesc a fi arbitrare. În modul pasiv, clientul poate lucra cu ușurință cu serverul prin firewall-ul său, dar adesea pentru a suporta modul pasiv de către server, este necesară deja o configurație adecvată a firewall-ului pe partea serverului.

Principala diferență între modul FTP activ și modul FTP pasiv este partea care deschide conexiunea de date. În modul activ, clientul trebuie să poată accepta această conexiune de la serverul FTP. În modul pasiv, clientul inițiază întotdeauna această conexiune în sine, iar serverul trebuie să o accepte deja.

FTP este un serviciu bazat exclusiv pe TCP (Transmission Control Protocol). FTP este neobișnuit prin faptul că folosește două porturi, un port de „date” și un port de „comandă” (cunoscut și ca port de gestionare). În mod tradițional, acesta este portul 21 pentru comenzi și portul 20 pentru date. Cu toate acestea, în funcție de mod, portul de date nu va fi întotdeauna 20.

În modul activ, clientul FTP se conectează de la un port arbitrar neprivilegiat (N> 1024) la serverul FTP portul de comandă 21. Apoi, clientul începe să asculte pe portul N + 1 și trimite comanda FTP PORT N + 1 către serverul FTP. Ca răspuns, serverul se conectează la portul de date client specificat de la acesta port local date 20.

În modul pasiv, clientul FTP inițiază ambele conexiuni la server, rezolvând problema cu firewall-urile care filtrează port de intrare datele despre consumator. La deschidere Conexiuni FTP, clientul deschide două porturi neprivilegiate local (N> 1024 și N + 1). Primul port contactează serverul de pe portul 21, dar în loc să emită apoi o comandă PORT și să permită serverului să răspundă la portul său de date, clientul emite o comandă PASV. Ca urmare, serverul deschide un port arbitrar neprivilegiat (P> 1024) și trimite comanda PORT P către client. Apoi, pentru a transfera date, clientul inițiază o conexiune de la portul N + 1 la portul P de pe server.


FTP FTP (English File Transfer Protocol) este un protocol conceput pentru a transfera fișiere către retele de calculatoare... FTP vă permite să vă conectați la servere FTP, să vizualizați conținutul directoarelor și să încărcați fișiere de pe un server sau pe un server; în plus, este posibil și modul de transfer de fișiere între servere (vezi FXP).


FTP este unul dintre cele mai vechi protocoale de aplicație care datează cu mult înainte de HTTP, în 1971. Până la începutul anilor 1990, FTP a reprezentat aproximativ jumătate din traficul de pe Internet. Este încă utilizat pe scară largă astăzi pentru distribuția de software și accesul la gazde la distanță.


Protocolul FTP aparține protocoalelor de la nivelul aplicației și utilizează transportul Protocolul TCP... Comenzile și datele, spre deosebire de majoritatea altor protocoale, sunt transmise prin diferite porturi. Portul 20 este folosit pentru transmisia de date, portul 21 pentru transmiterea comenzilor. În cazul în care transferul fișierului a fost întrerupt din orice motiv, protocolul oferă mijloace pentru descărcarea fișierului, ceea ce este foarte convenabil atunci când transferați fișiere mari.


Problemă de securitate FTP Protocolul nu este criptat; în timpul autentificării, numele de utilizator și parola sunt transmise în text clar. În cazul construirii unei rețele utilizând un hub, un atacator, folosind un sniffer pasiv, poate intercepta datele de conectare și parolele utilizatorilor FTP pe același segment de rețea sau, dacă este disponibil un software special, poate primi transmise prin Fișiere FTP fara autorizatie. Pentru a preveni interceptarea traficului, trebuie să utilizați un protocol de criptare date SSL care este suportat de multe servere FTP moderne și de unii clienți FTP.


Procesul de autorizare FTP Procesul de autorizare necriptat are loc în mai multe etape (caracterele \ r \ n înseamnă flux de linie): 1. Stabilirea unei conexiuni TCP la server (de obicei pe portul 21) 2. Trimiterea comenzii USER login \ r \ n 3 .Trimiterea parolei comenzii PASS \ r \ n După autorizarea cu succes, puteți trimite alte comenzi către server.


Conectare anonimă la FTP Dacă accesul anonim este permis la server (de regulă, numai pentru descărcarea datelor de pe server), atunci se utilizează autentificarea cuvânt cheie„Anonim” sau „ftp” și parola este adresa de e-mail: 1. UTILIZATOR anonim \ r \ n 2. PASS


Comenzi de bază Protocolul ABOR Anulați transferul fișierelor CDUP Schimbați directorul la un nivel superior. CWD Schimbați directorul. DELE Ștergeți fișierul (Ștergeți numele fișierului). EPSV - Intrați în modul pasiv avansat. Folosit în loc de PASV. HELP Listează comenzile acceptate de server.


Comenzi protocol de bază LIST Returnează o listă de fișiere dintr-un director. Lista este trimisă printr-o conexiune de date (port 20). MDTM Returnează ora de modificare a fișierului. MKD Creați director. NLST Returnează o listă de fișiere dintr-un director în mai multe format scurt decât LIST. Lista este trimisă printr-o conexiune de date (port 20). NOOP Operațiune de golire


Comenzi de bază ale protocolului PASV Intră în modul pasiv. Serverul va returna adresa și portul la care trebuie să vă conectați pentru a prelua datele. Transmisia va începe când introduceți 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, pentru transferul de date, serverul însuși se conectează la client. PWD Returnează directorul curent. INIȚI Deconectați








Exemplu Funcționează FTP 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 transferată 150 Aici vine lista de director. // Serverul trimite lista de fișiere în directorul 226 Trimitere director 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ă o conexiune de la server este așteptată pe o gazdă cu o adresă IP pe portul 207 * 256 + 56 = Multe servere FTP au un director (numit de intrare, încărcare etc.) deschis pentru scriere și destinat să încărcați fișiere pe server. Acest lucru permite utilizatorilor să populeze serverul cu date noi.


MODUL PASIV Inițial, protocolul presupunea o conexiune TCP opusă de la server la client pentru a transfera conținutul unui fișier sau director. Acest lucru a făcut imposibilă comunicarea cu serverul dacă clientul se află în spatele IP NAT, în plus, de multe ori cererea de conectare la client este blocată de firewall. Pentru a evita acest lucru, a fost dezvoltată o extensie a protocolului de mod pasiv FTP, când conexiunea pentru transferul de date are loc și de la client la server. Un punct important este că clientul stabilește o conexiune cu adresa și portul, serverul specificat... Serverul alege un port la întâmplare dintr-un anumit interval (). Prin urmare, atunci când găsiți un server ftp în spatele NAT, ar trebui să specificați în mod explicit adresa acestuia în setările serverului.


NAT-PT Specific pentru FTP peste firewall-uri o extensie NAT numită NAT-PT (rfc2766) a fost realizată pentru a permite conexiunile de intrare de la server la client să fie traduse prin NAT. În cursul unei astfel de conexiuni, NAT înlocuiește datele transmise de la client, indicând serverului adresa adevărată și portul la care serverul se poate conecta și apoi difuzează conexiunea de la server de la această adresă către client la adresa sa. . În ciuda tuturor măsurilor și inovațiilor luate pentru a susține protocolul FTP, în practică, funcția NAT-PT este de obicei dezactivată în toate routerele și routerele pentru a se asigura securitate suplimentară din amenințările virale.


FXP FXP (English File eXchange Protocol File Exchange Protocol) este o metodă de transfer direct de fișiere între două servere FTP, fără a le încărca pe computer. În timpul unei sesiuni FXP, clientul deschide două conexiuni FTP la două servere diferite prin solicitarea unui fișier de la primul server, specificând adresa IP a celui de-al doilea server în comanda PORT. Avantajul indubitabil al acceptării standardului FXP este acela de a activa utilizatori finali care doresc să copieze fișiere de pe un server FTP pe altul, restricția nu mai este valabilă lățimea de bandă propria lor conexiune la internet. Nu este nevoie să descărcați un fișier pentru dvs. și apoi să-l puneț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 viteza „utilizatorului”.


FXP Din păcate, atacatorii au început să folosească FXP pentru a ataca alte servere: comanda PORT specifică adresa IP și portul serviciului atacat pe computerul victimei, iar comenzile RETR / STOR apelează acest port în numele serverului FTP, nu al atacatorului. care a făcut posibilă organizarea 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 situat pe un rețea de încredere sau pe un gateway. Drept urmare, acum aproape toate serverele verifică 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. Astfel, utilizarea FXP nu este posibilă atunci când lucrați cu servere FTP publice.


Client FTP Clientul FTP este un program pentru acces facil la serverul FTP. În funcție de scop, poate oferi utilizatorului acces simplu la un server FTP la distanță în modul consolă text, asumându-și doar munca de trimitere a comenzilor și fișierelor utilizatorului, fie afișarea fișierelor pe server la distanta ca și cum ar fi parte din sistemul de fișiere al computerului utilizatorului sau ambele. În ultimele două cazuri, clientul FTP își asumă sarcina de a interpreta acțiunile utilizatorului în comenzi de protocol FTP, făcând astfel posibilă utilizarea protocolului de transfer de fișiere fără a vă familiariza cu toate complexitățile sale.


Client FTP Exemple private de utilizare a unui client FTP pot fi: Publicarea paginilor site-ului pe un server de Internet Dezvoltator web Descărcarea de muzică, programe și orice alte fișiere de date utilizator obișnuit internetul. Acest exemplu de multe ori nici măcar nu este recunoscut de mulți utilizatori ca utilizând Client FTP si protocol, din moment ce multi servere publice nu cere date suplimentare pentru autentificarea utilizatorilor, dar browsere de internet(care sunt și clienți FTP) descărcați fișiere fără a pune întrebări.


Client FTP Exemple de astfel de programe sunt: ​​browserele de internet (funcționează adesea în modul doar citire, adică nu permit adăugarea de fișiere pe server) Multe manageri de fișiere, de exemplu: Windows Explorer(Explorator), Total Commander, FAR, comandant de la miezul nopții, Krusader Programe specializate de exemplu: FileZilla


Drepturi de acces și autorizare Sistemul de fișiere pe serverul de la distanță, de regulă, are setări de drepturi de acces pentru diferiți utilizatori. Deci, de exemplu, doar unele fișiere pot fi accesate de utilizatori anonimi; utilizatorii nu vor ști despre existența altora. Un alt grup de utilizatori poate avea acces la alte fișiere sau, de exemplu, pe lângă drepturile de citire a fișierelor, li se pot acorda și drepturi de a scrie noi sau de a actualiza fișiere existente. Gama drepturilor de acces depinde de sistem de operareși software fiecare server FTP specific. De regulă, ei împărtășesc drepturile de a vizualiza conținutul unui folder (adică abilitatea de a obține o listă de fișiere conținute în acesta), de a citi fișierul (fișierele), de a scrie (crea, șterge, actualiza) fisier(e)


Pentru autorizare, serverul FTP, atunci când se conectează la el un client FTP, îi cere acestuia din urmă un nume de utilizator și o parolă. Majoritatea clienților FTP, la rândul lor, solicită aceste date de la utilizator în modul interactiv... Există, de asemenea, o altă modalitate de a specifica aceste informații prin includerea lor în adresa URL a serverului FTP. Deci, de exemplu, în linia ftp: // care indică faptul că folosim protocolul FTP vasya username: username separator și cheia parolei separator pentru informațiile de autentificare și adresa serverului ftp.example.com adresa serverului FTP


Coduri de răspuns FTP Prima poziție Unu înseamnă că comanda a fost acceptată pentru execuție, dar nu a fost încă finalizată Două înseamnă că comanda a fost finalizată cu succes Trei înseamnă că comanda a fost acceptată și este așteptată una comandă suplimentară Cei patru spun că în acest moment comanda nu poate fi executată.Cinci înseamnă imposibilitatea fundamentală a executării comenzii


Coduri de răspuns FTP Poziția secundă Zero se potrivește eroare de sintaxă Unitatea corespunde mesaj informativ Un doi indică faptul că mesajul se referă fie la o conexiune de control, fie la o conexiune de date. Trei se potrivesc cu mesaje despre autentificarea și drepturile utilizatorului. Patru este nedefinit. Cinci corespunde unui mesaj de stare a sistemului de fișiere.




Top articole similare