Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • ftp protokol je protokol. FTP protokol. FTP FTP (English File Transfer Protocol) je protokol dizajniran za prijenos datoteka preko računarskih mreža. FTP

ftp protokol je protokol. FTP protokol. FTP FTP (English File Transfer Protocol) je protokol dizajniran za prijenos datoteka preko računarskih mreža. FTP

INFORMATIKA

Sažetak na temu:

„FTP protokol. Opće informacije i karakteristike".

Fakultet: pravni

Završio: ANTONiO.

Art. ulaznica: 13U02444

U ovom prozoru se konfigurišu postavke programa opšte funkcije... kao što su:

· Ime FTP servera;

· maksimalni iznos korisnici servera koji mogu biti na serveru u isto vrijeme;

· Opcije pokretanja servera, koje se aktiviraju kada se OS pokrene;

· Oznaka porta na kojem će se ftp slušati.



2.3. Opciona podešavanja programa

Ove postavke se koriste za konfigurisanje opcionih funkcija programa. Takve važne postavke kako:

· Mogućnost ograničavanja pristupa direktorijumu i poddirektorijumima u kojima se nalazi FTP server;

· Šifrovanje lozinki korisničkih naloga;

Ograničavanje provjere korisničkog računa i njegove lozinke na n-puta, dakle automatska instalacija zabranjen je ili jednostavno izbačen sa servera;

· Postavljanje ograničenja pristupa sa IP adresa.

2.4. Dodatne postavke programa

Ovaj prozor se koristi za konfigurisanje tehničke mogućnosti programe koji optimizuju njegove performanse i sistem u celini. Ovo su postavke kao što su:

· Postavljanje bafera za prijem (u bajtovima), korisno za spora ili zauzeta mrežna rješenja;

· Glavna namjena servera (upload/download, samo preuzimanje, samo upload);

· Prioritet FTP servera u opštoj listi OS procesa;

· Blokiranje prenosa sa servera na server;

· Anti-hammering sistem (prečesti pokušaji prijavljivanja na server bez razloga).

2.5. Postavke keširanja programa

Ove postavke vam omogućavaju da optimizirate mogućnosti keširanja programa. Ovo omogućava FTP serveru da pohrani u memoriju listu direktorija kojima je pristupio određeno vrijeme, što povećava odgovor na pristup njima ako je u određenom vremenu još uvijek bilo pokušaja pristupa direktorijima koji se nalaze u ram memorija kompjuter.

2.7. Generator statistike

Ovaj prozor vam omogućava da konfigurišete učestalost ažuriranja statistike, vrstu prikupljene statistike, kao i za koje korisnike da prikupljaju statistiku.

Ova opcija je korisna jer možete jasno vidjeti opterećenje servera i najpopularnije resurse, što vam omogućava da optimizirate vrijeme rada servera i preciznije konfigurirate svojstva keširanja programa (odjeljak 2.5).

2.7. Planer i konfigurisanje dinamičkih IP adresa

U ovim postavkama možete konfigurirati funkcije kao što su:

· Pokretanje/zaustavljanje FTP-servera prema rasporedu;

· Izvršavanje standardnih sistemskih funkcija OS-a po rasporedu;

· Praćenje dinamičke promjene određenih IP adresa.

Potonji omogućava korisnicima sa dinamička IP adresa je u bazi korisnika bez ikakvih ograničenja. BulletproofFTP-server će sam pratiti promjenu IP adrese i registrovati je u bazi podataka, kao dodatnu za datog korisnika.

2.8. Postavljanje MULTIIP adresa i vizualizacija programa

Ove opcije vam omogućavaju da konfigurišete više IP adresa (korisnici mogu imati iste prijave i lozinke na različitim "virtuelnim" FTP serverima), kao i vizualizaciju programa (prikazivanje ikone aktivnosti servera u sistemskoj traci, prikaz statusa prenosa datoteka, automatska provera ažuriranja programa, brisanje datoteka u korpu za otpatke OS-a ili direktno u DEV \ NULL (fizičko brisanje)).

2.9. Postavljanje log fajlova (izvještaja.

U ovom prozoru možete podesiti održavanje detaljan fajl izvještaj bez kojeg nijedan ozbiljan FTP server ne može.

2.10. Konfiguriranje reakcija programa na događaje

Ova funkcija je, po mom mišljenju, najkorisnija na web lokacijama koje hostuju ovaj FTP server. Za svaku akciju ili odgovor servera možete konfigurisati određenu reakciju, kao što je prikazivanje poruke, pokretanje određeni fajl ili radiš funkcija sistema... To. efikasnost web stranica se povećava nekoliko puta, a interakcija sa aktivni korisnik, generalno, uzdiže se na nedostižnu visinu.

2.11. Postavljanje korisničkih prava i ovlaštenja

Ova podešavanja se mogu izvršiti putem kartice KORISNIČKI RAČUNI. Ovdje možete registrirati sljedeća ovlaštenja:

· Pitajte specifična lista korisnike i registruju svoja ovlašćenja za svakog od njih;

· Postavite listu direktorija kojima korisnik može pristupiti, kao i pristupne atribute za svaki od njih;

Prilagodba dodatna podešavanja;

· Postavljanje kvota i ograničenja brzine;

· Mogućnost postavljanja liste dozvoljenih / odbijenih IP adresa;

· Detaljan opći status za cijeli period rada servera.



3.0. Neki problemi sa FTP serverima

FTP serveri mogu raditi u dva načina rada: aktivni i pasivni. U aktivnom režimu, kada počne prenos podataka, klijent počinje da sluša na TCP portu i govori serveru na kom portu sluša, nakon čega server otvara TCP vezu od porta 20 do porta koji je odredio klijent. Podaci se zatim prenose preko ove veze. U pasivnom režimu, klijent obaveštava server da je spreman za prenos podataka i server počinje da sluša na nespecijalnom TCP portu i govori klijentu koji. Tada klijent otvara TCP konekciju na port koji je specificirao server i razmjena podataka se odvija preko ove veze.

Problem sa ovim pomoćnim vezama je u tome što postojeća specifikacija FTP protokola ne pruža nikakav metod za provjeru da je klijent ili server koji je uspostavio vezu taj koji je zatražio ovu vezu u kontrolnoj sesiji. Ovo, u kombinaciji sa činjenicom da mnogi operativni sistemi dodeljuju TCP portove u rastućem redosledu, znači da rezultirajući FTP protokol stvara uslove koji omogućavaju napadaču da presretne podatke koje neko drugi prenosi ili da lažira podatke. Ovi napadi se neznatno razlikuju u aktivnom i pasivnom načinu rada. Kada je prijenos podataka aktivan, napadač pogađa broj TCP porta na kojem krajnji klijent čeka na vezu. Tada napadač neprekidno šalje FTP server na koji je klijent povezan, PORT ip, of, klijent, mašina, port, port, RETR ime datoteke ili STOR ime datoteke. Koristeći RETR, ako trebate zamijeniti podatke koji se prenose do klijenta, ili STOR, ako trebate presresti podatke od klijenta do servera. Ili, napadač može koristiti napade zasnovane na poznavanju TCP rednog broja i lažirati komunikacijsku sesiju od servera do klijenta. Istina, korištenjem ove vrste napada nemoguće je presresti podatke, možete ih samo zamijeniti svojim.

4.0. Komande FTP protokola

Kontrolne naredbe za kontrolu prijenosa podataka koje se razmjenjuju između tumača serverskog protokola i tumača korisničkog protokola mogu se podijeliti u tri velike grupe:

1. Komande za kontrolu pristupa sistemu.

2. Komande kontrole toka podataka.

3. Komande FTP servisa.

Razmotrimo nekoliko najtipičnijih timova iz svake grupe. Među naredbama za kontrolu pristupa sistemu treba istaći sljedeće:

KORISNIK. Obično se ova komanda otvara FTP sesija između klijenta i servera. Argument naredbe je ime (identifikator) korisnika za rad sa datotečnim sistemom. Ova naredba se može izdati ne samo na početku, već i na sredini sesije, ako, na primjer, korisnik želi promijeniti identifikator u čije ime će se radnje izvršiti. U ovom slučaju, sve varijable povezane sa starim identifikatorom se oslobađaju. Ako se podaci razmjenjuju dok se identifikator mijenja, razmjena se završava sa starim identifikatorom korisnika.

PASS. Ova naredba se izdaje nakon unosa korisničkog ID-a i kao argument sadrži korisničku lozinku. Podsjećamo, FTP autentifikacijski podaci se prenose preko mreže. u običnom tekstu, dakle, da bi se osigurala sigurnost kanala, korisnik treba poduzeti dodatne mjere.

CWD. Komanda omogućava korisnicima da rade sa različitim direktorijumima na udaljenom sistemu datoteka. Argument naredbe je niz koji specificira putanju direktorija na udaljenom sistemu datoteka u kojem korisnik želi raditi.

REIN. Komanda za ponovnu inicijalizaciju. Ova naredba briše sve varijable trenutni korisnik, resetuje parametre veze. Ako u trenutku naredbe dođe do prijenosa podataka, prijenos se nastavlja i završava s istim parametrima.

QUIT. Komanda zatvara kontrolni kanal. Ako u trenutku slanja komande dođe do prenosa podataka, kanal se zatvara nakon završetka prenosa podataka.

Komande za kontrolu protoka postavljaju parametre prijenosa podataka. Svi parametri opisani ovim naredbama imaju zadanu vrijednost, tako da se naredbe kontrole toka koriste samo kada trebate promijeniti vrijednost zadanih parametara prijenosa. Komande kontrole toka mogu se izdati bilo kojim redoslijedom, ali sve moraju prethoditi naredbama FTP usluge. Od komandi kontrole protoka podataka treba razlikovati sljedeće:

PORT. Naredba dodjeljuje adresu i port hosta koji će se koristiti kao aktivni član veze podatkovne veze. Argumenti naredbe su 32-bitna IP adresa i 16-bitni broj porta za povezivanje. Ove vrijednosti su podijeljene u šest 8-bitnih polja i predstavljene su u decimalnom obliku: h1, h2, h3, h4, p1, p2, gdje su hN bajtovi adrese (od visoke do niske) i pN bajtovi porta (visoki do niske)...

PASV. Ova naredba se šalje modulu, koji će igrati pasivnu ulogu u prijenosu podataka („slušanje“ veze). Odgovor na ovu naredbu treba da postoji niz koji sadrži adresu i port hosta koji su u režimu čekanja za konekciju u formatu naredbe PORT - "h1, h2, h3, h4, p1, p2".

Komande TYPE, STRU, MODE definišu, redom, tip podataka koji se prenose (ASCII, Slika i drugi), strukturu ili format prenosa podataka (File, Record, Page), način prenosa (Stream, Block i drugi). Upotreba ovih komandi je veoma važna kada se gradi interoperabilnost u heterogenim okruženjima i veoma različitim operativnim i fajl sistemima interakcionih hostova.

Naredbe FTP usluge definiraju radnje koje će se izvršiti navedene datoteke... Obično je argument komandi u ovoj grupi putanja do datoteke. Sintaksa za specificiranu stazu mora zadovoljiti zahtjeve formata za sistem datoteka rukovaoca naredbama. Od naredbi FTP servisa mogu se razlikovati sljedeće:

RETR. Ova komanda daje instrukcije modulu Server Communications Utility da pošalje kopiju datoteke, dat parametrom ove naredbe modulu za prijenos podataka na drugom kraju veze.

STOR. Naredba nalaže modulu "Server Data Transfer Program" da prima podatke putem kanala za prijenos podataka i pohranjuje ih kao datoteku, čiji naziv je specificiran parametrom ove naredbe. Ako takav fajl već postoji, biće zamenjen novim, ako ne, kreiraće se novi.

Komande RNFR i RNTO moraju da prate jedno drugo. Prva naredba sadrži staro ime datoteke kao argument, druga novi. Dosljedna primjena ove komande preimenuju datoteku.

ABOR. Komanda daje instrukcije serveru da prekine prethodni servisni tim(npr. prijenos datoteka) i zatvorite kanal podataka.

Tim DELE briše navedenu datoteku.

Komande MKD i RMD, odnosno, kreirajte i izbrišite direktorij naveden u argumentu.

Korišćenje komandi LIST i NLST možete dobiti listu datoteka u navedenom direktoriju.

Sve FTP komande se šalju od strane tumača korisničkog protokola na tekstualni oblik- jedna komanda po redu. Svaka komandna linija - identifikator i argumenti - završava se znakovima ... Ime naredbe je odvojeno od argumenta razmakom - .

Rukovalac komandom vraća trocifreni kod za svaku komandu. Kodovi za obradu čine određenu hijerarhijsku strukturu i, po pravilu, specifična komanda može vratiti samo određeni skup kodova. Nakon koda za obradu naredbe slijedi razmak - nakon čega slijedi tekst objašnjenja. Na primjer, linija uspješnog završetka operacije izgleda ovako: "200 Command u redu".

Ispod je primjer rada sa FTP protokolom. Legenda: S - server, U - korisnik.

S: 220 Servis spreman za novog korisnika

> S: 331 Korisničko ime u redu, potrebna je lozinka

S: 230 Korisnik prijavljen, nastavite

U: RETR test.txt

S: 150 Status datoteke u redu; o otvaranju podatkovne veze

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

S: 226 Zatvaranje podatkovne veze, prijenos datoteke uspješan

S: 200 Naredba u redu

Mreža file service File Transfer Protocol (FTP) je jedan od najranijih servisa koji se koristio za pristup udaljenim datotekama. Prije pojave WWW-a, to je bila najpopularnija usluga udaljenog pristupa podacima na Internetu i korporativnim IP mrežama. Prve FTP specifikacije datiraju iz 1971. godine. FTP serveri i klijenti se nalaze u gotovo svakom UNIX operativnom sistemu, kao iu mnogim drugim mrežnim operativnim sistemima. FTP klijenti su danas ugrađeni u pretraživače na Internetu jer su arhive datoteka zasnovane na FTP-u i dalje popularne i pretraživač koristi FTP za pristup takvim arhivama.

FTP protokol omogućava vam da premjestite cijeli fajl iz udaljeni računar na lokalno i obrnuto, odnosno radi po shemi utovar-istovar. Osim toga, podržava nekoliko naredbi za pregledavanje udaljenog direktorija i navigaciju direktorijumima na udaljenom sistemu datoteka. Stoga je FTP posebno pogodan za pristup onim datotekama čije podatke nema smisla gledati na daljinu, ali je mnogo efikasnije premjestiti cijeli fajl u klijent računar(na primjer, izvršne datoteke aplikacije).

FTP ugrađen u primitivnu autentifikaciju udaljeni korisnici na osnovu prijenosa lozinke preko mreže do otvorena forma... Osim toga, podržano anonimni pristup to ne zahtijeva korisničko ime i lozinku, što je sigurnije jer ne izlaže korisničke lozinke prijetnji presretanja.

FTP protokol je napravljen prema klijent-server šemi. FTP klijent se sastoji od nekoliko funkcionalni moduli:

  • Korisničko sučelje - Korisničko sučelje koje prihvaća znakovne komande od korisnika i prikazuje stanje FTP sesije na ekranu sa znakovima.
  • User-Pi - tumač za korisničke komande. Ovaj modul je u interakciji sa odgovarajućim modulom FTP servera.
  • User-DTP je modul koji prenosi podatke datoteke koristeći komande primljene od User-Pi modula koristeći klijent-server protokol. Ovaj modul je u interakciji sa klijentovim lokalnim sistemom datoteka.

FTP server uključuje sljedeće module:

  • Server-Pi - modul koji prima i tumači komande koje preko mreže prenosi User-PL modul
  • Server-DTP - modul koji kontrolira prijenos podataka fajla naredbama iz Server-PL modula Interagira sa lokalnim fajl sistemom servera.

FTP klijent i server podržavaju dvije istovremene sesije — kontrolnu sesiju i sesiju prijenosa podataka. Kontrolna sesija se otvara kada se uspostavi početna FTP veza između klijenta i servera, a tokom jedne kontrolne sesije može se izvršiti nekoliko sesija prenosa podataka uzastopno, tokom kojih se prenosi ili prima više fajlova.


Opća šema interakcije između klijenta i servera je sljedeća:

1. FTP server uvijek otvara kontrolu TCP port 21 za slušanje, čekajući dolazak zahtjeva za uspostavljanje kontrolne FTP sesije od udaljenog klijenta.

2. Nakon uspostavljanja kontrolne veze, klijent šalje komande serveru koje specificiraju parametre veze:

· Ime i lozinka klijenta;

· Uloga učesnika u vezi (aktivna ili pasivna);

· Port za prijenos podataka;

· Vrsta transfera;

· Vrsta prenesenih podataka (binarni podaci ili ASCII kod);

3. Nakon što su parametri dogovoreni, pasivni učesnik veze prelazi u režim čekanja za otvaranje veze sa portom za prenos podataka. Aktivni učesnik pokreće ovu vezu i započinje prenos podataka.

4. Nakon završetka prijenosa podataka, veza podatkovnog porta se zatvara, a kontrolna veza ostaje otvorena. Korisnik može aktivirati novu sesiju prijenosa podataka preko kontrolne veze.

FTP klijent bira portove za prijenos podataka (po defaultu, klijent može koristiti port kontrolne sesije za prijenos podataka), a server mora koristiti port koji je za jedan manji od porta klijenta.

FTP koristi nekoliko komandi u komunikaciji klijent-server (ne treba se brkati sa komandama korisničkog interfejsa klijenta koje koriste ljudi).

Ove naredbe su podijeljene u tri grupe:

  • komande kontrole pristupa sistemu;
  • komande za kontrolu protoka podataka;
  • komande FTP usluge.

Skup naredbi kontrole pristupa uključuje sljedeće naredbe:

  • KORISNIK - Isporučuje ime klijenta na server. Ova naredba otvara kontrolnu sesiju i također se može poslati kada je kontrolna sesija otvorena za promjenu korisničkog imena.
  • PASS - prenosi korisničku lozinku u čistom tekstu.
  • CWD - Mijenja trenutni direktorij na serveru.
  • REIN - Ponovo inicijalizira kontrolnu sesiju.
  • QUIT - završava kontrolnu sesiju.

Komande kontrole toka postavljaju parametre prijenosa podataka:

  • PORT - definira adresu i port hosta koji će aktivni učesnik podatkovne veze. Na primjer, naredba PORT 194,85,135,126,7,205 čini host 194.85.135.126 i port 1997 aktivnim učesnikom (izračunavanje broja porta nije trivijalno, već sasvim nedvosmisleno).
  • PASV - Određuje host kao pasivnog člana podatkovne veze. Kao odgovor na ovu naredbu, naredba PORT mora biti poslana s adresom mirovanja i portom.
  • TYPE - postavlja tip podataka koji se prenose (ASCII kod ili binarni podaci).
  • STRU - definira strukturu prenesenih podataka (fajl, zapis, stranica).
  • MODE - postavlja način prijenosa (po streamu, blokovima, itd.).

Kao što vidite iz opisa, FTP servis se može koristiti za rad kako sa strukturiranim datotekama, podijeljenim na zapise ili stranice, tako i sa nestrukturiranim.

Naredbe FTP usluge pokreću radnje za prijenos datoteka ili pregledavanje udaljenog direktorija:

  • RETR - Zahtijeva prijenos datoteke sa servera na host klijenta. Parametri komande su naziv datoteke. Može se odrediti i pomak od početka datoteke - to vam omogućava da započnete prijenos datoteke sa određene tačke u slučaju neočekivanog prekida veze (ovaj parametar se koristi u naredbi reget korisničkog interfejsa).
  • STOR - inicira prijenos datoteke sa klijenta na server. Parametri su isti kao i za naredbu RETR.
  • RNFR i RNTO - preimenuj komande udaljeni fajl... Prvi uzima staro ime datoteke kao argument, a drugi uzima novi.
  • DELE, MKD, RMD, LIST - ove naredbe respektivno brišu datoteku, kreiraju direktorij, brišu direktorij i prosljeđuju listu datoteka trenutnog direktorija.

Svaka FTP naredba se prenosi u tekstualnom obliku, jedna naredba po redu. Niz završava ASCII znakovima CR i LF.

Korisnički interfejs FTP klijent zavisi od toga implementacija softvera... Uz tradicionalne klijente karakternog moda, postoje i klijenti grafičke školjke koje ne zahtijevaju od korisnika poznavanje simboličkih naredbi.

Klijenti znakova općenito podržavaju sljedeći osnovni skup naredbi:

  • open hostname - otvaranje sesije sa udaljenim serverom.
  • ćao - završava sesiju sa udaljenim hostom i izlazi iz ftp uslužnog programa.
  • zatvori - završi sesiju sa udaljenim hostom, ftp uslužni program nastavlja da radi.
  • ls (dir) - Ispisuje sadržaj trenutnog udaljenog direktorija.
  • get filename - kopirajte udaljenu datoteku u localhost.
  • put filename - Kopira udaljenu datoteku na udaljeni server.

Ako već dugo čitate ovaj blog, možda se sjećate kako sam odlučio da u njemu prikupim opis popularnog (i ne tako) mrežni protokoli... Zašto mi je ovo potrebno, možete pročitati u članku Prilično kompletan opis SMTP protokola. Stoga sam odlučio da nadopunim kolekciju FTP protokolom, koji se naširoko koristi za prijenos datoteka.

1. Idemo

Po tradiciji, odmah ću početi s primjerom:

$ telnet example.ru 21
Pokušavam 192.168.0.1 ...
Povezano na example.ru.
Escape znak je "^]".
220-Dobrodošli u Pure-FTPd
Vi ste korisnik broj 5 od 100 dozvoljenih.
Lokalno vrijeme je 17:41. Port servera: 21.
220 Bit ćete isključeni nakon 15 minuta neaktivnosti.
USER afiskon
331 Korisnik afiskon OK. Lozinka je potrebna
PASS lamepassword
230-Korisnik afiskon ima grupni pristup: koderima
230 OK. Trenutni ograničeni direktorij je /

FTP server obično radi na portu 21. U gornjem primjeru nizove koji počinju brojevima šalje server, a ostale šalje klijent. Zahtjevi klijenta se uvijek sastoje od jednog reda formata KOMANDA [argumenti], dok odgovori servera mogu sadržavati više redova.

Prvi i posljednji red počinju sa tri cifre koje predstavljaju kod odgovora, nakon čega slijedi tekstualni opis odgovor, odvojen od koda razmakom ili crticom. Ako se kao separator koristi razmak, tada je red zadnji u odgovoru (i, moguće, jedini), u suprotnom dobijamo prvi red višerednog odgovora. Negdje smo to vidjeli, zar ne?

Postoji pet grupa odgovora servera:

Kao što možete vidjeti iz primjera, sve počinje tako što server pošalje kod 220. Zatim se korisnik mora prijaviti koristeći komande USER i PASS. Ako je sve urađeno kako treba, prvi server će odgovoriti kodom 331, a drugi - 230. Za anonimnu prijavu (ako je to dozvoljeno postavkama servera) unesite “anonymous” kao korisničko ime, a svoju e-poštu kao lozinku. U praksi se obično šalje ili prazan e-mail ili nešto slično [email protected]

Kao što vidite, lozinka se prenosi u čistom tekstu, stoga je vrlo poželjno šifrirati FTP vezu pomoću SSL-a (ovo se zove FTPS - FTP plus SSL), a još bolje - prenijeti datoteke preko SSH-a koristeći scp, sftp ili WinSCP uslužni programi. Prva dva se nalaze u bilo kojem unix sistemu i koriste protokole istog imena za prijenos datoteka, radeći preko SSH-a. WinSCP je napisan za Windows i izgleda kao Totalni komandant, može raditi i sa zastarjelim SCP (Secure Copy) i SFTP (SSH File Transfer Protocol), koji se pojavio samo u SSH-2.

2. Gledanje okolo

Ali nešto me je odvelo u pogrešnu stepu. Nakon prolaska autentifikacije (vau, više ga ne brkam sa autorizacija) FTP server će sa zadovoljstvom izvršiti naše komande. Evo liste njih:

Tim Očekivani kod Opis
DELE 250 Izbrišite fajl
RMD 250 Izbriši direktorij
CWD 250 Idi na imenik
MKD 257 Kreirajte direktorij
OSI 257 Saznajte trenutni direktorij
QUIT 221 Završi posao
TYPE 200 Postavite tip prijenosa
PORT 200 Idi aktivni način rada
PASV 227 Idite u pasivni način rada
LIST 150, 226 Nabavite sadržaj direktorija
RETR 150, 226 Preuzmite datoteku
STOR 150, 226 Upload file
ABOR 426,226 Otkažite transfer
RNFR 350 Odaberite datoteku za preimenovanje
RNTO 250 Preimenuj fajl

Ovdje sam naveo samo osnovne komande, koje su dovoljne za pisanje punopravnog FTP klijenta. Poenta je da u realnim uslovima FTP serveri su vrlo selektivni u pogledu podrške komandama opisanim u RFC959 i RFC3659. Dakle, ako želimo da dobijemo zaista funkcionalnu aplikaciju, a ne sfernog konja u vakuumu, moraćemo da se ograničimo samo na komande sa gornje liste.

Najviše jednostavne komande- to QUIT, DELE, MKD, CWD i RMD... Mi samo naređujemo i provjeravamo kod koji je vratio server. Ako je jednak očekivanom, onda je sve u redu, ako nije, obrađujemo grešku.

MKD ftp_test
257 "ftp_test": Direktorij je uspješno kreiran
CWD ftp_test
250 OK. Trenutni direktorij je / ftp_test
CWD ..
250 OK. Trenutni direktorij je /
RMD ftp_test
250 Direktorij je uspješno uklonjen

Da sam pisao FTP klijenta, tada bi kod odgovoran za izvršavanje imenovanih komandi izgledao otprilike ovako:

int kod;
char * dir;
// ...
if (kod = rawcmd (250, "RMD% s \ r \ n ", r.))
printf ("Greška:% d \ n ", kod);
ostalo
printf ("Sve gotovo! \ n ") ;

Nešto teže sa raščlanjivanjem odgovora servera na naredbu OSI:

OSI
257 "/ ftp_test" je vaša trenutna lokacija

Trenutni direktorij se prosljeđuje u jednom (poslednjem?) redu u odgovoru servera, stavljen u dvostruke navodnike. Ako puno ime trenutni direktorij sadrži dvostruke navodnike, oni se zamjenjuju s dva navodnika:

OSI
257 "/ ftp" "test" je vaša trenutna lokacija

Nekoliko naredbi se koristi za preimenovanje datoteka - RNFR i RNTO:

RNFR old_file.zip
350 Da li sišalim se?
RNTO new_file.zip
250 Gotovo!

Očigledno je to takva optimizacija da je bafer u koji server čita klijentske komande reda maksimalno dozvoljene dužine punog imena datoteke, a ne duplo duži. 1971. godine, kada je protokol kreiran, to je moglo biti važno.

Tim TYPE omogućava vam da postavite način prijenosa datoteka. primjer:

TIP E
200 TYPE je sada EBCDIC
TIP A
200 TYPE je sada ASCII
TIP I
200 TYPE je sada 8-bitno binarno

Koliko ja znam, danas je ova komanda već zastarjela i svi podaci se mogu sigurno prenijeti u binarnom formatu (TIP I). Citat sa Wikipedije:

Prvi računari su koristili format veličine bajta, mašinsku reč, dvostruku mašinsku reč, a ne višekratnu od 8. Obično su bili višekratnici od šest. Osam bitova po bajtu je usvojeno u razvoju skupa mašinskih instrukcija za IBM System / 360. To je postalo međunarodni standard i od ranih 1970-ih većina računara koristi 8-bitne bajtove i mašinske riječi koje su višestruke od 8.

3. Mi djelujemo

Karakteristike FTP protokola - za izvršavanje naredbi i prijenos datoteka, različite veze... To je općenito normalno. dizajnersko rješenje... Ne znamo šta je napisano u ovim datotekama, a ako ih prenesete zajedno sa naredbama, morat ćete nekako kodirati sadržaj datoteke da biste ga razlikovali od naredbi. Zašto povećavati promet i komplikovati protokol kada možete jednostavno otvoriti novu vezu i poslati datoteku kakva je?

Prilikom uspostavljanja nove veze, neko bi se trebao stvarno povezati, a neko bi trebao prihvatiti vezu. Ako klijent otvori port i server se poveže na njega, način prijenosa datoteka naziva se aktivnim. Inače, pasivno. Zbog činjenice da mnogi korisnici interneta danas sjede iza NAT-a, obično se koristi pasivni način rada. A to nije baš dobro, jer je broj portova na serveru ograničen.

Ono što je zanimljivo je da je moguće direktno prenositi fajlove sa jednog FTP servera na drugi. Ali pošto se ova funkcija često koristila u DDoS napadima, sada je onemogućena skoro svuda.

Za prebacivanje u pasivni način rada koristite naredbu PASV, za prebacivanje na aktivno - PORT:

PORT 192,168,10,1,21,133
200 PORT komanda uspješna
PASV
227 Ulazak u pasivni način rada (192,168,0,1,21,216)

Kao što možete pretpostaviti, brojevi se koriste za kodiranje IP adrese i porta za vezu. Recimo da smo u pasivnom načinu rada i želimo uspostaviti podatkovnu vezu:

$ telnet 192.168.0.1 `expr 21 \ * 256 + 216`
Pokušavam 192.168.0.1 ...
Povezano na example.ru.
Escape znak je "^]".

Tada možemo, na primjer, vidjeti sadržaj trenutnog direktorija pomoću naredbe LIST:

LIST
150 Prihvaćena podatkovna veza
226-Opcije: -a -l
226 Ukupno 5 utakmica

Gledamo telnet izlaz:

drwx ------ 5 afiskon kodera 512 Jul 7 11:35.
drwx ------ 5 afiskon coders 512 Jul 7 11:35 ..
drwxr - r-- 3 afiskon kodera 512 6. jun 14:30 stranica
drwxr-xr-x 2 afiskon kodera 1024 7. jul 00:16 zapisi
drwxr - r-- 2 afiskon kodera 512 Jun 6 14:30 tmp
Veza je zatvorena od strane stranog hosta.

Preuzimanje i učitavanje datoteka odvija se na potpuno isti način, samo se koriste komande RETR (fajl) i STOR (fajl) respektivno. Naredbe RETR, STOR i LIST mogu se prekinuti tokom izvršavanja naredbom ABOR, kao odgovor na što server treba odgovoriti 426 "prijenos prekinut", a zatim 226 "otkazana operacija je uspješna."

4. Zaključak

Na ovom ću, možda, završiti svoju priču. Ispostavilo se 9 KB teksta naspram 130 KB RFC959. Ovaj članak je sasvim moguće napisati jednostavan FTP klijent ili server, provjerio sam! Najvažnije je testirati ga na kompatibilnost sa što više softvera, jer, kao što sam primijetio, malo ljudi u FTP svijetu striktno prati RFC. I poslednja stvar - zapamtite Zlatno pravilo"Budite liberalni sa unosom, strogi sa izlazom".

FTP(File Transfer Protocol) je jedan od tri glavna Internet protokola (mail, www, ftp). FTP ili "File Transfer Protocol" jedan je od najstarijih protokola na Internetu i dio je njegovih standarda. FTP razmjena podataka se odvija preko TCP kanala. Razmjena je izgrađena korištenjem tehnologije "klijent-server".

Protokol je dogovoreni format za prijenos podataka između dva uređaja. Protokol definiše sljedeće:

  • kako će se izvršiti provjera grešaka;
  • način pakovanja podataka (ako se koristi pakovanje);
  • kako uređaj za slanje izvještava da je završio poruku;
  • kako prijemni uređaj izvještava da je primio poruku.

Postoji veliki broj standardnih (referentnih) protokola od kojih možete izabrati odgovarajući. Svaki protokol ima svoje prednosti i nedostatke (nedostatke); na primjer, neki su jednostavniji od drugih, neki su pouzdaniji, a neki brži.

Sa tačke gledišta korisnika, jedino što ga zanima u vezi sa protokolom je da ga računar ili uređaj mora ispravno podržavati (protokol) ako želite da komunicirate sa drugim računarima. Protokol se može implementirati bilo u hardveru ili softveru.

FTP je skup pravila koja diktiraju kako računari mogu dijeliti datoteke na Internetu.

FTP je izgrađen na način da raznih kompjutera sa različitim softverom i različitim hardverom mogu efikasno razmjenjivati ​​bilo koje datoteke.

Danas ga mnogi korisnici povezuju sa warez, mp3, jpeg i mpeg formatima. Ali u stvari, ovaj protokol se koristi za prijenos bilo koje vrste datoteka, od običnih tekstualni dokumenti da zaštićeni programske datoteke... FTP protokol se široko koristi u automatski sistemi plaćanje putem interneta i za prijenos informacija sa satelita u svemiru.

Učitavanje i preuzimanje datoteka na Internetu je veoma važno rutinskih zadataka da je FTP bio naširoko korišten i prije nego što se pojavio na webu Email... Međutim, ovaj protokol čini mnogo lakšim pristup datotekama na drugom računaru nego omogućavanje drugima da pristupe i čitaju vaše datoteke.

Tehnički procesi za uspostavljanje veze pomoću FTP-a

  • korisnik - korisničko ime.
  • dvotočka je programski separator između korisničkog imena i lozinke
  • lozinka - lozinka.
  • @ - znači razdvajanje između korisničkih podataka i adrese.

Slijedi sama adresa. Može biti IP ili adresa može imati doslovno značenje(ftp.ur.ru). Nakon adrese opet slijedi dvotočka koja razdvaja adresu i broj porta na koji se povezuje. Podrazumevano, ovaj port je 21, ali može biti bilo koji broj koji je dao administrator servera.

Adresa bi mogla izgledati ovako:

To će značiti da ime od anonimnog, lozinka je E-mail adresa, a luka je 21.

FTP modovi

Kada se koristi FTP protokol, uspostavljaju se dvije veze između i - vladanje(komande slijede) i data veza(preko njega se prenose fajlovi). Kontrolna veza je ista za aktivan i pasivni način rada ... Klijent inicira TCP vezu sa dinamičkog porta (1024-65535) na port broj 21 na FTP serveru i kaže "Bok! Želim da se povežem sa vama. Evo mog imena i moje lozinke." Sljedeći koraci zavisi od toga koji je FTP mod (aktivan ili pasivan) odabran.

  • V aktivni način rada kada mušterija kaže "Zdravo!" takođe govori serveru broj porta (od dinamički raspon 1024-65535) tako da se server može povezati s klijentom kako bi uspostavio podatkovnu vezu. FTP server se povezuje na navedeni broj porta klijenta koristeći TCP port 20 za prijenos podataka. Za klijenta je takva konekcija dolazna, pa je često teško raditi u aktivnom režimu za klijente iza firewall-a ili NAT-a, ili su potrebna dodatna podešavanja.
  • V pasivni način rada, nakon što klijent kaže "Zdravo!", server kaže klijentu broj TCP porta (iz dinamičkog raspona 1024-65535) na koji se može povezati kako bi uspostavio podatkovnu vezu. Istovremeno, kao što je lako vidjeti, portovi u takvoj vezi, kako sa strane klijenta tako i sa strane servera, ispadaju proizvoljni. U pasivnom režimu, klijent može lako da radi sa serverom preko njegovog zaštitnog zida, ali često da bi podržao pasivni režim od strane servera, potrebna je odgovarajuća konfiguracija zaštitnog zida već na strani servera.

Glavna razlika između aktivnog FTP načina i pasivnog FTP načina je strana koja otvara podatkovnu vezu. U aktivnom režimu, klijent mora biti u mogućnosti da prihvati ovu vezu sa FTP servera. U pasivnom načinu, klijent uvijek sam inicira ovu vezu, a server je već mora prihvatiti.

FTP je usluga zasnovana isključivo na TCP (Transmission Control Protocol). FTP je neobičan po tome što koristi dva porta, port za "podatke" i "komandni" port (također poznat kao port za upravljanje). Tradicionalno, ovo je port 21 za komande i port 20 za podatke. Međutim, ovisno o načinu rada, port za podatke neće uvijek biti 20.

U aktivnom režimu, FTP klijent se povezuje sa proizvoljnog neprivilegovanog porta (N> 1024) na FTP server komandni port 21. Zatim, klijent počinje da sluša na portu N + 1 i šalje FTP komandu PORT N + 1 na FTP server. Kao odgovor, server se povezuje na specificirani port podataka klijenta sa svog lokalna luka podaci 20.

U pasivnom režimu, FTP klijent pokreće obe veze sa serverom, rešavajući problem sa zaštitnim zidovima koji filtriraju ulazna luka podaci o kupcima. Na otvaranju FTP veze, klijent otvara dva neprivilegirana porta lokalno (N> 1024 i N + 1). Prvi port kontaktira server na portu 21, ali umjesto da potom izda naredbu PORT i dozvoli serveru da odgovori na svoj port podataka, klijent izdaje PASV naredbu. Kao rezultat toga, server otvara proizvoljni neprivilegirani port (P>1024) i klijentu šalje naredbu PORT P. Zatim, za prijenos podataka, klijent inicira vezu sa porta N + 1 na port P na serveru.


FTP FTP (engleski File Transfer Protocol) je protokol dizajniran za prijenos datoteka na kompjuterske mreže... FTP vam omogućava da se povežete na FTP servere, pregledate sadržaj direktorijuma i otpremite datoteke sa servera ili na server; osim toga, moguć je način prijenosa datoteka između servera (pogledajte FXP).


FTP je jedan od najstarijih aplikacijskih protokola koji datira mnogo prije HTTP-a, 1971. godine. Do ranih 1990-ih, FTP je činio otprilike polovinu saobraćaja na Internetu. I danas se široko koristi za distribuciju softvera i pristup udaljenim hostovima.


FTP protokol pripada protokolima sloja aplikacije i koristi transport TCP protokol... Naredbe i podaci, za razliku od većine drugih protokola, prenose se preko različitih portova. Port 20 se koristi za prenos podataka, port 21 za prenos komandi. U slučaju da je prenos fajla iz bilo kog razloga prekinut, protokol obezbeđuje sredstva za preuzimanje fajla, što je veoma zgodno kada se prenose velike datoteke.


FTP sigurnosni problem Protokol nije šifrovan; tokom autentifikacije, korisničko ime i lozinka se prenose u čistom tekstu. U slučaju izgradnje mreže pomoću čvorišta, napadač pomoću pasivnog sniffera može presresti prijave i lozinke korisnika FTP-a koji se nalaze u istom segmentu mreže ili, ako je dostupan poseban softver, primiti poslane putem FTP fajlovi bez ovlašćenja. Da biste spriječili presretanje saobraćaja, morate koristiti protokol za šifriranje SSL podaci koji podržavaju mnogi moderni FTP serveri i neki FTP klijenti.


Proces FTP autorizacije Nešifrirani proces autorizacije odvija se u nekoliko faza (znakovi \ r \ n označavaju prijelaz linije): 1. Uspostavljanje TCP veze sa serverom (obično na portu 21) 2. Slanje naredbe USER login \ r \ n 3 Slanje lozinke naredbe PASS \ r \ n Nakon uspješne autorizacije, možete poslati druge komande serveru.


Anonimna prijava na FTP Ako je serveru dozvoljen anonimni pristup (po pravilu samo za preuzimanje podataka sa servera), tada se koristi prijava ključna riječ"Anonimno" ili "ftp" a lozinka je email adresa: 1. KORISNIK anoniman \ r \ n 2. PROLAZI


Osnovne komande ABOR protokol Prekinite prijenos CDUP datoteke Promijenite direktorij na viši nivo. CWD Promjena imenika. DELE Brisanje datoteke (DELE ime datoteke). EPSV - Uđite u napredni pasivni način rada. Koristi se umjesto PASV. POMOĆ Navodi komande koje je server prihvatio.


Osnovne naredbe protokola LIST Vraća listu datoteka u direktoriju. Lista se šalje preko podatkovne veze (port 20). MDTM Vraća vrijeme izmjene datoteke. MKD Kreirajte direktorij. NLST Vraća listu datoteka u direktoriju u više kratki format nego LIST. Lista se šalje preko podatkovne veze (port 20). NOOP Prazna operacija


Osnovne naredbe PASV protokola Uđite u pasivni način rada. Server će vratiti adresu i port na koji se morate povezati da biste preuzeli podatke. Prijenos će započeti kada unesete sljedeće komande RETR, LIST, itd. PORT Uđite u aktivni mod. Na primjer PORT 12,34,45,56,78,89. Za razliku od pasivnog režima, za prenos podataka, sam server se povezuje sa klijentom. PWD Vraća trenutni direktorij. QUIT Prekini vezu








Primjer FTP rad 220 FTP server spreman. KORISNIK ftp // Anonymous 230 Prijava uspješna. PASV 227 Ulazak u pasivni način (192,168,254,253,233,92) // Klijent mora otvoriti konekciju na prenijetu IP LISTU 150 Evo liste direktorija. // Server šalje listu datoteka u direktoriju 226 Direktorij šalje OK. CWD dolazni 250 direktorij je uspješno promijenjen. PASV 227 Ulazak u pasivni način (192,168,254,253,207,56) STOR gyuyfotry.avi 150 U redu za slanje podataka. // Klijent šalje sadržaj datoteke 226 Datoteka prima OK. QUIT 221 Zbogom.


Argument 192,168,254,253,207,56 znači da se očekuje konekcija sa servera na hostu sa IP adresom na portu 207 * 256 + 56 = Mnogi FTP serveri imaju direktorijum (koji se naziva dolazni, upload, itd.) otvoren za pisanje i namenjen za otpremite fajlove na server. Ovo omogućava korisnicima da popune server svježim podacima.


PASIVNI NAČIN U početku, protokol je pretpostavljao suprotnu TCP vezu od servera do klijenta za prijenos datoteke ili sadržaja direktorija. Ovo je onemogućilo komunikaciju sa serverom ako je klijent iza IP NAT-a, osim toga, često je zahtjev za povezivanje sa klijentom blokiran od strane firewall-a. Da bi se to izbjeglo, razvijeno je proširenje protokola FTP pasivnog režima, kada se konekcija za prijenos podataka javlja i od klijenta do servera. Važna tačka je da klijent uspostavlja vezu sa adresom i portom, navedeni server... Server nasumično bira port iz određenog raspona (). Stoga, kada pronađete ftp server iza NAT-a, trebali biste eksplicitno navesti njegovu adresu u postavkama servera.


NAT-PT Posebno za FTP over zaštitni zidovi NAT ekstenzija nazvana NAT-PT (rfc2766) je napravljena kako bi se omogućilo da se dolazne veze od servera do klijenta prevedu preko NAT-a. U toku takve veze, NAT zamjenjuje prenesene podatke od klijenta, ukazujući serveru pravu adresu i port na koji se server može povezati, a zatim emituje vezu sa servera sa ove adrese na klijenta na njegovu adresu . Uprkos svim merama i inovacijama koje su preduzete za podršku FTP protokolu, u praksi je NAT-PT funkcija obično onemogućena u svim ruterima i ruterima kako bi se osiguralo dodatnu sigurnost od virusnih prijetnji.


FXP FXP (English File eXchange Protocol File Exchange Protocol) je metoda direktnog prijenosa datoteka između dva FTP servera bez njihovog učitavanja na vaš računar. Tokom FXP sesije, klijent otvara dvije FTP veze na dvije različiti serveri traženjem datoteke od prvog servera, specificirajući IP adresu drugog servera u naredbi PORT. Nesumnjiva prednost podrške FXP standardu je to što je uključeno krajnjim korisnicima koji žele kopirati datoteke s jednog FTP servera na drugi, ograničenje više ne vrijedi propusni opseg vlastitu internet vezu. Nema potrebe da preuzimate fajl za sebe, a zatim ga stavljate na drugi FTP server. Dakle, vrijeme prijenosa datoteka ovisit će samo o brzini veze između dva udaljena FTP-servera, koja je u većini slučajeva očito veća od brzine "korisnika".


FXP Nažalost, napadači su počeli da koriste FXP za napad na druge servere: komanda PORT specificira IP adresu i port napadnutog servisa na računaru žrtve, a naredbe RETR/STOR pozivaju ovaj port u ime FTP servera, a ne napadača. koji je omogućio pokretanje velikih DDoS napada koristeći više FTP servera odjednom, ili zaobići sigurnosni sistem žrtvinog računara ako se oslanja samo na provjeru IP klijenta i FTP server koji se koristi za napad se nalazi na pouzdanoj mreži ili na mrežnom prolazu. Kao rezultat toga, sada skoro svi serveri provjeravaju da li IP adresa navedena u naredbi PORT odgovara IP adresi FTP klijenta i, prema zadanim postavkama, zabranjuju korištenje IP adresa trećih strana tamo. Stoga korištenje FXP-a nije moguće kada radite sa javnim FTP serverima.


FTP klijent FTP klijent je program za lak pristup FTP serveru. Ovisno o namjeni, može ili omogućiti korisniku jednostavan pristup udaljenom FTP serveru u tekstualnom režimu konzole, preuzimajući samo posao slanja korisničkih naredbi i datoteka, ili prikazati datoteke na udaljeni server kao da su dio korisničkog kompjuterskog sistema datoteka, ili oboje. U posljednja dva slučaja, FTP klijent preuzima zadatak tumačenja radnji korisnika u komande FTP protokola, čime je omogućeno korištenje protokola za prijenos datoteka bez upoznavanja sa svim njegovim zamršenostima.


FTP klijent Privatni primeri korišćenja FTP klijenta mogu biti: Objavljivanje stranica sajta na Internet serveru Web developer Preuzimanje muzike, programa i svih drugih datoteka sa podacima redovni korisnik internet. Ovaj primjer mnogi korisnici često čak ni ne prepoznaju da koristi FTP klijent i protokol, pošto mnogi javni serveri ne traže dodatne podatke za autentifikaciju korisnika, već Internet pretraživači(koji su takođe FTP klijenti) preuzimaju datoteke bez postavljanja pitanja.


FTP klijent Primeri takvih programa su: Internet pretraživači (često rade u režimu samo za čitanje, odnosno ne dozvoljavaju dodavanje datoteka na server) Mnogi fajl menadžeri, Na primjer: Windows Explorer(Explorer), Total Commander, FAR, Ponoćni komandant, Krusader Specijalizovani programi na primjer: FileZilla


Prava pristupa i autorizacija Sistem podataka na udaljenom serveru, po pravilu, ima podešavanja prava pristupa za različite korisnike. Tako, na primjer, anonimni korisnici mogu pristupiti samo nekim datotekama; korisnici neće znati za postojanje drugih. Druga grupa korisnika može imati pristup drugim datotekama ili, na primjer, pored prava čitanja datoteka, može im se dati i prava za pisanje novih ili ažuriranje postojećih datoteka. Opseg prava pristupa zavisi od operativni sistem i softvera svaki određeni FTP server. U pravilu dijele prava na pregled sadržaja foldera (tj. mogućnost da dobiju listu datoteka sadržanih u njemu), da čitaju fajl(ove), da pišu (kreiraju, brišu, ažuriraju) fajl(ovi)


Za autorizaciju, FTP server, kada na njega povezuje FTP klijent, traži od potonjeg korisničko ime i lozinku. Većina FTP klijenata, zauzvrat, traži ove podatke od korisnika interaktivni način rada... Postoji i drugi način da navedete ove informacije uključivanjem u URL FTP servera. Tako, na primjer, u ftp: // redu koji označava da koristimo FTP protokol vasya korisničko ime: separator korisničkog imena i ključ za lozinku separator za informacije o autentifikaciji i adresu servera ftp.example.com adresu FTP servera


FTP kodovi odgovora Prva pozicija Jedan znači da je komanda prihvaćena za izvršenje, ali još nije završena. Dva znači da je naredba uspješno završena. dodatna komandaČetvorica to kaže u ovog trenutka naredba se ne može izvršiti Pet znači suštinsku nemogućnost izvršenja naredbe


FTP kodovi odgovora Druga pozicija Nula podudaranja sintaksna greška Jedinica odgovara informativnu poruku Dva označava da se poruka odnosi ili na kontrolnu vezu ili na podatkovnu vezu. Tri odgovara porukama o autentifikaciji korisnika i korisničkim pravima. Četiri je nedefinisana. Pet odgovara poruci o stanju sistema datoteka.




Top srodni članci