Šta je FTP server. Karakteristike FTP protokola Kako ftp radi

FTP arhivski servis.

FTP arhive su jedan od glavnih informacionih resursa na Internetu. U stvari, to je distribuirano skladište tekstova, programa, fotografija i drugih informacija pohranjenih kao fajlovi na raznim kompjuterima širom svijeta.

Informacije u FTP arhivama podijeljene su uglavnom u tri kategorije: Zaštićene informacije, čiji način pristupa određuju vlasnici i dozvoljen je posebnim ugovorom sa potrošačem. Ova vrsta resursa uključuje komercijalne arhive (na primjer, komercijalne verzije programa u arhivama ftp.microsoft.com), zatvoreni nacionalni i međunarodni nekomercijalni resursi (na primjer, rad na međunarodnim CES ili IAEA projektima), privatne nekomercijalne informacije s posebnim režimima pristupa (na primjer, privatne dobrotvorne fondacije). Informacijski resursi ograničene upotrebe, koji uključuju, na primjer, programe za klase shareware. Ova klasa može uključivati ​​resurse ograničene upotrebe ili ograničenog trajanja. Slobodno distribuirani informacioni resursi ili besplatni, ako govorimo o softveru. Ovi resursi uključuju sve što se može besplatno nabaviti na mreži bez posebne registracije. To može biti dokumentacija, programi ili bilo šta drugo. Treba napomenuti da slobodno distribuirani softver nema certifikat kvaliteta, ali su njegovi programeri otvoreni za razmjenu iskustava.

Od gore navedenih resursa, najzanimljivije su posljednje dvije kategorije, koje su po pravilu formatirane kao FTP arhive.

FTP tehnologija je razvijena kao dio ARPA projekta i namijenjena je za razmjenu velikih količina informacija između mašina različitih arhitektura. Fokus dizajna bio je na osiguravanju pouzdanog prijenosa, tako da se iz moderne perspektive čini da je FTP preopterećen redundantnim, rijetko korištenim funkcijama. Srž tehnologije je FTP protokol.

FTP protokol.

FTP (File Transfer Protocol, ili “Protokol za prijenos podataka”) je jedan od najstarijih protokola na Internetu i uključen je u njegove standarde. Prve FTP specifikacije datiraju iz 1971. godine. Od tada, FTP je prošao mnoge modifikacije i značajno proširio svoje mogućnosti. FTP se može koristiti i u korisničkim programima i kao poseban uslužni program operativnog sistema.

FTP je dizajniran za rješavanje problema dijeljenja pristupa datotekama na udaljenim hostovima, direktnog ili indirektnog korištenja resursa udaljenih računara, osiguravanja nezavisnosti klijenta od fajl sistema udaljenih hostova, te efikasnog i pouzdanog prijenosa podataka.

Razmjena podataka u FTP-u se odvija preko TCP kanala. Razmjena je bazirana na klijent-server tehnologiji. FTP se ne može koristiti za prijenos povjerljivih podataka jer ne pruža sigurnost za prenesene informacije i prenosi čist tekst između servera i klijenta. FTP server može zahtijevati od FTP klijenta da se autentifikuje (to jest, od FTP korisnika će se tražiti da unese svoj ID i lozinku kada se pridruži serveru). Međutim, lozinka i korisnički ID će se prenijeti od klijenta do servera u čistom tekstu.

FTP operativni modeli.

Najjednostavniji model funkcioniranja FTP protokola prikazan je na slici 1. U FTP-u, vezu inicira korisnički interpreter protokola. Razmjena se kontroliše preko kontrolnog kanala u standardu TELNET protokola. FTP komande se generišu od strane tumača protokola korisnika i šalju na server. Odgovori servera se također šalju korisniku putem kontrolnog kanala. Općenito, korisnik ima mogućnost da uspostavi kontakt sa serverskim tumačem protokola i drugim sredstvima osim tumača protokola korisnika.

FTP komande definiraju parametre kanala za prijenos podataka i sam proces prijenosa. Oni također određuju prirodu rada sa udaljenim i lokalnim sistemima datoteka.

Kontrolna sesija inicijalizira podatkovnu vezu. Prilikom organiziranja kanala za prijenos podataka, slijed radnji je drugačiji, različit od organiziranja kontrolnog kanala. U tom slučaju server pokreće razmjenu podataka u skladu sa parametrima dogovorenim u sesiji upravljanja.

Kanal podataka se uspostavlja za isti host kao i kontrolni kanal preko kojeg je konfiguriran kanal podataka. Kanal podataka može se koristiti i za prijem i za prijenos podataka.

Algoritam rada FTP protokola je sljedeći:

FTP server koristi TCP port 21 kao kontrolnu vezu, koja je uvijek u stanju čekanja na konekciju od FTP korisnika. Nakon uspostavljanja kontrolne veze između modula “User Protocol Interpreter” i serverskog modula – “Server Protocol Interpreter”, korisnik (klijent) može da šalje komande serveru. FTP komande definiraju parametre veze za prijenos podataka: ulogu sudionika veze (aktivan ili pasivan), port veze (i za modul „Program prijenosa korisničkih podataka“ i za modul „Program prijenosa podataka sa servera“), tip prijenosa, vrste prenesenih podataka, strukture podataka i kontrolne direktive koje ukazuju na radnje koje korisnik želi izvršiti (na primjer, spremanje, čitanje, dodavanje ili brisanje podataka ili datoteke, itd.). Nakon što su svi parametri kanala za prijenos podataka dogovoreni, jedan od sudionika veze, koji je pasivan (na primjer, „Program prijenosa korisničkih podataka“), postaje u stanju pripravnosti za otvaranje veze na portu određenom za prijenos podataka . Nakon toga, aktivni modul (na primjer, „Program za prijenos podataka servera“) otvara vezu i započinje prijenos podataka. Nakon što je prijenos podataka završen, veza između "Programa prijenosa podataka servera" i "Programa prijenosa korisničkih podataka" je zatvorena, ali kontrolna veza "Tumači serverskih protokola" i "Tumač korisničkih protokola" ostaje otvorena. Korisnik, bez zatvaranja FTP sesije, može ponovo otvoriti kanal za prenos podataka.

Moguće je da se podaci prenesu na treću mašinu. U ovom slučaju korisnik organizira kontrolni kanal sa dva servera i direktnim kanalom podataka između njih. Kontrolne komande prolaze kroz korisnika, a podaci idu direktno između servera. Kontrolni kanal mora biti otvoren prilikom prijenosa podataka između strojeva. U suprotnom, ako se zatvori, prijenos podataka će se zaustaviti. Veza sa dva servera prikazana je na slici 2.

Algoritam radi kada se povezuju dva FTP servera, od kojih se nijedan ne nalazi na korisnikovom lokalnom hostu:

Modul “User Protocol Interpreter” je dao instrukcije serverskom modulu “Server Protocol Interpreter 1” da radi u pasivnom režimu, nakon čega je modul “Server Protocol Interpreter 1” poslao korisniku adresu i broj porta (N) koje će slušati. Modul “User Protocol Interpreter” je dodijelio serverski modul 2 “Server Protocol Interpreter 2” kao aktivnog učesnika u vezi i naložio mu da prenese podatke na host “Server Protocol Interpreter 1” na portu (N). “Tumač protokola korisnika” poslao je “Tumači protokola servera 1” naredbu da “snimi primljene podatke u takvu i takvu datoteku”, a “Tumač serverskih protokola 2” je poslao naredbu “da prenese sadržaj tog i tog fajl.” Tok podataka se formira između modula “Server Protocol Interpreter 1” i “Server Protocol Interpreter 2”, koji je kontroliran od strane klijenta. Ispod je dijagram organizacije prijenosa podataka između dva FTP servera, što odgovara slici 2. Ovdje se koriste sljedeće oznake: User PI - interpreter korisničkog protokola; Interpretator protokola Server1(2) za server1 (server2).

Korisnik PI (U) y Server1 (S1) Korisnik PI (U) y Server2 (S2)
U Yu S1: Connect

U L S1: 227 Ulazak u pasivni način rada.

A1, A2, A3, A4, a1, a2

U Yu S2 Connect

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

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

S1 Yu S2: Poveži...

Osnova za FTP prijenos podataka je mehanizam za uspostavljanje veza između odgovarajućih portova i odabir parametara prijenosa. Svaki učesnik u FTP vezi mora podržavati podrazumevani port podataka. Podrazumevano, „Program za prenos podataka korisnika“ koristi isti port kao i za slanje komandi (nazovimo ga „U“), a „Program za prenos podataka sa servera“ koristi port L-1, gde je „L“ kontrolni port. Međutim, učesnici u vezi koriste portove podataka koje je za njih izabrao „Tumač korisničkih protokola“, budući da od kontrolnih procesa koji učestvuju u vezi, samo „Tumač korisničkih protokola“ može promeniti portove podataka oba „Korisničkog protokola“. Interpreter” i “User Protocol Interpreter Server Data Transfer Programs”.

Pasivna strana veze mora, prije nego što se da naredba "pokreni prijenos", "slušati" svoj port za podatke. Aktivna strana, koja izdaje naredbu za početak prijenosa podataka, određuje smjer kretanja podataka.

Kada se veza uspostavi, počinje prijenos između "Programa prijenosa podataka sa servera" i "Programa prijenosa korisničkih podataka". Istovremeno, obavještenja o prijemu podataka se prenose putem kanala “Server Protocol Interpreter” - “User Protocol Interpreter”. FTP protokol zahtijeva da kontrolna veza bude otvorena dok se podatkovna veza prenosi. FTP sesija se smatra zatvorenom tek nakon što je kontrolna veza zatvorena.

Obično je FTP server odgovoran za otvaranje i zatvaranje kanala za prijenos podataka. FTP server mora samostalno zatvoriti kanal za prijenos podataka u sljedećim slučajevima:

Server je završio prijenos podataka u formatu koji zahtijeva da se veza zatvori. Server je dobio naredbu od korisnika da "prekine vezu". Korisnik je promijenio postavke porta podataka. Kontrolna veza je bila zatvorena. Došlo je do grešaka koje onemogućuju nastavak prijenosa podataka.

Komande protokola.

Kontrolne komande prijenosa podataka koje se razmjenjuju između "Tumača protokola servera" i "Tumača korisničkog protokola" mogu se podijeliti u tri velike grupe:

Sistemske komande za kontrolu pristupa. Komande kontrole toka. Komande FTP servisa.

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

USER. Obično ova komanda otvara FTP sesiju 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 ime kojeg će se izvršavati radnje. U ovom slučaju se oslobađaju sve varijable koje se odnose na stari identifikator. Ako se komunikacija dogodi za vrijeme promjene ID-a, razmjena se završava sa starim korisničkim ID-om.

PASS. Ova naredba se izdaje nakon unosa korisničkog ID-a i sadrži korisničku lozinku kao argument. Podsjetimo, FTP autentifikacijski podaci se prenose putem mreže u čistom tekstu, tako da korisnik mora poduzeti dodatne mjere kako bi osigurao sigurnost kanala.

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

REIN. Komanda za ponovnu inicijalizaciju. Ova naredba briše sve trenutne korisničke varijable i resetuje parametre veze. Ako se podaci prenose u trenutku izdavanja naredbe, prijenos se nastavlja i završava s istim parametrima.

QUIT. Komanda zatvara kontrolni kanal. Ako se podaci prenose kada se izda naredba, kanal se zatvara nakon završetka prijenosa podataka.

Komande kontrole toka postavljaju parametre za prijenos podataka. Svi parametri opisani ovim naredbama imaju zadane vrijednosti, tako da se naredbe kontrole protoka koriste samo kada je potrebno promijeniti vrijednost zadanih parametara prijenosa. Naredbe kontrole toka mogu se izdati bilo kojim redoslijedom, ali sve moraju prethoditi naredbama FTP usluge. Sljedeće komande kontrole toka podataka treba istaknuti:

LUKA. Komanda dodjeljuje adresu i port hosta koji će se koristiti kao aktivni učesnik u vezi preko data linka. Argumenti naredbe su 32-bitna IP adresa i 16-bitni broj porta veze. 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 (visoke do niske) i pN bajtovi porta (visoki do niske).

PASV. Ova komanda se šalje modulu, koji će igrati pasivnu ulogu u prenosu podataka („slušati“ vezu). Odgovor na ovu komandu treba da bude red koji sadrži adresu i port hosta koji je u stanju pripravnosti veze u formatu komande PORT - “h1, h2, h3, h4, p1, p2”.

Komande TYPE, STRU, MODE određuju, redom, tip prenetih podataka (ASCII, Slika i drugi), strukturu ili format prenosa podataka (File, Record, Page), te način prenosa (Stream, Block i drugi) . Upotreba ovih naredbi je vrlo važna kada se gradi komunikacija u heterogenim okruženjima i vrlo različitim operativnim i sistemima datoteka hostova koji komuniciraju.

Naredbe FTP servisa određuju radnje koje je potrebno izvršiti sa navedenim datotekama. Obično je argument naredbi u ovoj grupi putanja datoteke. Sintaksa specificirane staze mora zadovoljiti zahtjeve formata sistema datoteka rukovatelja naredbama. Naredbe FTP usluge uključuju sljedeće:

RETR. Ova naredba govori serverskom modulu prijenosa podataka da proslijedi kopiju datoteke specificirane ovim parametrom naredbe modulu prijenosa podataka na drugom kraju veze.

STOR. Komanda daje instrukcije modulu “Program za prijenos podataka servera” da primi podatke preko podatkovne veze i pohrani ih kao datoteku čije je ime specificirano parametrom ove naredbe. Ako takva datoteka već postoji, bit će zamijenjena novom;

Naredbe RNFR i RNTO moraju se pratiti jedna za drugom. Prva komanda sadrži staro ime datoteke kao argument, druga - novi. Uzastopna primjena ovih naredbi preimenuje datoteku.

ABOR. Komanda daje instrukcije serveru da prekine izvršenje prethodne naredbe usluge (na primjer, prijenos datoteke) i zatvori kanal podataka.

Naredba DELE briše navedenu datoteku.

Naredbe MKD i RMD kreiraju i brišu direktorij naveden u argumentu.

Možete koristiti naredbe LIST i NLST za popis datoteka u određenom direktoriju.

Sve naredbe FTP protokola šalje “Tumač korisničkih protokola” u tekstualnom obliku - jedna naredba 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 obradu svake komande. Obrada kodova formira specifičnu hijerarhijsku strukturu i, po pravilu, određena 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. Oznake: S - server, U - korisnik.

S: 220 Servis spreman za novog korisnika
U: KORISNIK Gluk
> S: 331 Korisničko ime u redu, potrebna je lozinka
U: PROLAŽI mrmljanje
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
U: TIP I
S: 200 Naredba u redu
U: STOR /home/images/first.my
S: 550 Pristup odbijen
U: QUIT

TFTP i SFTP protokoli.

FTP protokol ima dva “mlađa brata”: SFTP - Jednostavan FTP i TFTP - Trivijalni FTP.

TFTP protokol je najjednostavniji protokol za prijenos datoteka. Radi na vrhu UDP transportnog protokola i pruža samo najosnovnije operacije prijenosa datoteka, naime pisanje i čitanje datoteka. TFTP je dizajniran da bude jednostavan i lak za korištenje protokol. Ne dozvoljava pozivanje liste imenika i nema nikakvih sredstava za autentifikaciju, ali može prenijeti 8-bitne informacije u skladu sa svim Internet standardima.

Pošto se prenos podataka odvija preko UDP-a, TFTP protokol implementira sopstvene metode za pouzdanu isporuku podataka - pakete potvrde, numerisanje blokova podataka i paketa potvrde, itd. Sve je vrlo slično pojednostavljenoj verziji emulacije TCP protokola.

TFTP radi sa samo pet naredbi:

Zahtjev za čitanje (RRQ) - zahtjev za čitanje. Zahtjev za pisanje (WRQ) - zahtjev za pisanje. Podaci (DATA) - paket podataka. Potvrda (ACK) - potvrda. Greška (GREŠKA) - greška.

Proces prijenosa podataka počinje zahtjevom od TFTP klijenta do servera za čitanje ili pisanje datoteke. Veza se uspostavlja nakon prijema potvrde o spremnosti za jedan od zahtjeva, bilo pisanje ili čitanje.

Prilikom otvaranja veze, svaka strana bira (nasumično) jedinstveni identifikator - TID, koji također koristi UDP kao port za vezu. Svaki proslijeđeni paket je povezan s dva TID-a koji odgovaraju svakoj strani veze. Početni zahtjev šalje inicijator TF TP veze na UDP port 69 (port za inicijalizaciju), koji specificira port za povezivanje. Dalja razmjena se već odvija preko portova koje su odabrali učesnici u prijenosu podataka.

Ako server dozvoli zahtjev, otvara se razmjena i prenosi se navedeni fajl (u blokovima od 512 bajta). Svaki paket prenesenih podataka sadrži jedan blok (512 bajtova) i broj bloka u prenesenom toku. Dolazak svakog bloka do odredišnog hosta mora biti potvrđen ACK (potvrda) paketom, sa brojem primljenog bloka. Tek nakon prijema paketa potvrde biće poslat sljedeći paket podataka.

Ako je dužina paketa manja od 512 bajtova, to služi kao signal za zatvaranje komunikacijskog kanala. Ako se paket izgubi tokom prenosa, nakon određenog vremenskog perioda server će ponovo poslati ovaj paket podataka.

Tri vrste situacija uzrokuju slanje pogrešnih paketa:

Zahtjev nije potvrđen, na primjer, datoteka nije pronađena, nema prava pristupa itd. Format paketa je neispravan, na primjer, došlo je do greške pri prebacivanju. Gubitak pristupa potrebnom resursu.

Ako postoji veliki broj poruka o grešci, veza se može prekinuti na inicijativu jedne od strana.

Shema TFTP transakcije je sljedeća:

Host A šalje WRQ zahtjev hostu B. Izvorni port je TIDA, odredišni port je 69. Paket sadrži ime datoteke, tip prijenosa. Host B šalje ACK (broj bloka - 0) hostu A. Izvorni port je TIDB, odredišni port je TIDA. Host A šalje (preko veze TIDA do TIDB) naredbu DATA i blok podataka. Paket takođe sadrži broj bloka.

SFTP protokol za prijenos datoteka je popularan kada korisniku treba protokol koji je malo fleksibilniji i pouzdaniji od TFTP-a, a ne tako složen i glomazan kao FTP.

SFTP podržava mehanizme za autentifikaciju korisnika, prijenos datoteka, pretraživanje direktorija, promjenu trenutnog direktorija, preimenovanje i brisanje datoteka. Za većinu operacija koje korisnik obavlja sa udaljenim FTP serverom, ova usluga je sasvim dovoljna. SFTP može prenositi 8-bitni tok podataka i, poput TFTP-a, koristi samo jedan kanal veze - i za komande i za podatke. Za razliku od TFTP-a, SFTP radi preko TCP-a, port 115.

SFTP komande se šalju jedna po jedna, nakon primanja odgovora obrade od prethodne naredbe. Sve naredbe se sastoje od četiri ASCII znaka i znaka za razmak koji odvaja naredbu od njenih argumenata. Odgovor servera se sastoji od koda odgovora i tekstualne poruke. Svaka komanda i odgovor moraju završiti simbolom (‘

Dijeljenje podataka prethodilo je Internetu. Ali pojava World Wide Weba proširila je opseg zadataka razmjene informacija. FTP protokol je glavni, zajedno sa poštom i www.

Omogućava prijenos informacija umjesto pristupa fajlu. FTP prijenos nije inherentno siguran, ali FTPS protokol, koji radi preko šifriranog kanala SSL protokola, osigurava siguran prijenos podataka. Ovo vam omogućava da zaštitite i komande i prenete podatke.

Opis FTPS protokola

FTPS serveri pružaju certifikate javnog ključa. Obično se kreiraju pomoću Unix alata ili prilagođenih Windows alata kao što je OpenSSL.

Svaki certifikat mora biti potpisan od strane ovlaštenog certifikata. U suprotnom, FTPS klijent generiše upozorenje.

Podaci se mogu kodirati na nivou veze (naredbe i/ili podaci). FTPS protokol koristi dvije veze:

  • jedan prenosi podatke;
  • drugi su komande serveru i odgovori servera na njih.

Ako se primjenjuje šifriranje zasnovano na SSL-u, informacije o broju porta za komunikaciju neće biti dostupne.

FTP pristup je primjena skupa pravila koja opisuju kompjuterske veze i upravljanje vezama, datotekama i prijenosima datoteka.

Protokol definira kako različiti računari mogu istovremeno (na daljinu) koristiti datoteke na zajedničkoj mreži. Internet protokol FTP je dizajniran da omogući različitim računarskim platformama koje koriste različite operativne sisteme da efikasno razmjenjuju bilo koju vrstu datoteke.

FTPS protokol omogućava razmjenu i binarnih i tekstualnih datoteka, a format kodiranja nije mnogo bitan. Važno je da bude razumljivo stranim pošiljaocima i primaocima.

Rad FTPS servera

Obično se veza putem FTPS-a vrši pomoću posebnih programa, posebno WinSCP, Far, Total Comander, FileZilla itd. Linija veze izgleda ovako:

  • Protokol:// Ime@Host: lozinka@Host. ru: 21.

Svaki program koji pruža vezu nudi vam da popunite relevantna polja na svoj način. Ali za bilo koju vezu morate znati:

  • naziv veze (login, nadimak);
  • lozinka za povezivanje;
  • FTP/FTPS ime hosta;
  • broj porta.

Moguće su i anonimne veze preko FTP/FTPS-a, ali one nemaju veliki praktični značaj.

FTPS klijent može uspostaviti vezu sa serverom u eksplicitnim ili implicitnim načinima.

U prvom slučaju prvo se uspostavlja normalna FTP veza. Za slanje osjetljivih informacija kao što su lozinke, klijent šalje zahtjev za prebacivanje na sigurnu FTP vezu. Nakon uspješnog pregovaranja (SSL), uspostavljen je siguran komandni kanal između strana u vezi (server, klijent).

I u drugom slučaju, klijent i server počinju da razmjenjuju podatke u sigurnom načinu rada. Tekstualne informacije se prenose u šifrovanom formatu.

Aktivni i pasivni FTP

Rad sa FTP serverom može biti dva tipa:

  1. Aktivan. Tada se pokreće prenos informacija, klijent sluša TCP port i prenosi podatke serveru: na kom portu sluša. Server otvara TCP vezu sa portom koji je odredio klijent. Podaci se zatim šalju preko ove veze.
  2. Pasivno. Klijent obaveštava server da je spreman za prenos podataka, a server počinje da nadgleda nespecijalan TCP port, govoreći klijentu koji je to. Klijent tada otvara TCP vezu sa portom koji je specificirao server, a razmena podataka se odvija preko ove veze.

FTP veza

Uobičajeno je da se za pristup FTP resursima koriste posebni programi koji obezbeđuju FTP protokol za prenos. Ali ponekad morate dobiti potpunu kontrolu nad serverom i koristiti komande ovog protokola prema vlastitom planu.

Konkretno, to se može učiniti u Windows okruženju unosom naredbe:

  • ftp "Naziv servera".

Kao rezultat, od vas će biti zatraženo da unesete ime i lozinku poznate serveru imena servera. Naravno, u ovom imenu nema navodnika ili ruskih slova. To jest, ovo je uobičajeno ime web resursa koji djeluje kao FTP server.

Treba napomenuti da FTP server može pružiti više od jednog pristupa i imati više od jednog resursa. Tipično, par ime/lozinka omogućava pristup određenom sistemu datoteka određene arhive datoteka ili lokacije.

Uglavnom, FTP se već dugo koristi za pristup sistemu datoteka stranice, a ne za učitavanje/preuzimanje pohranjenih podataka. Njihov prijenos je i dalje relevantan, ali u posljednje vrijeme sve više se razvijaju alati za rad sa web stranicama koji omogućavaju razvoj web resursa na lokalnom serveru i osiguravaju sinhronizaciju lokalnog sistema datoteka sa istoimenim sistemom koji se nalazi na hostingu.

U tom kontekstu, FTP pristup pruža pristup korijenskom korijenu stranice, omogućavajući vam da manipulirate njegovim stranicama: uređujete, dodajete, brišete.

Primjer: Povezivanje na FTP server

U ovom primeru (žuta pozadina), ftp komanda se unosi na klijentskom računaru u operativnom sistemu Windows. Server prijavljuje svoje podatke i traži od vas da unesete korisničko ime. U ovom slučaju (zelena pozadina), naziv je “SCi_WMiX_22G(a)wmix.isv.by”.

Pristup nije anoniman i server traži lozinku. Da biste provjerili, nakon uspješne veze, unesite naredbu “ls” - pogledajte trenutni direktorij.

Obično se FTP mrežni protokol ne koristi na tako niskom nivou. Mnogo je praktičnije koristiti posebne programe dizajnirane za to. Gotovo svi oni pružaju praktičnu i sigurnu vezu i omogućavaju prijenos/primanje datoteka, kreiranje foldera, navigaciju kroz njih, njihovo brisanje i obavljanje uobičajenih operacija na uobičajen način, kao na lokalnom sistemu datoteka.

FTP/FTPS komande

FTPS protokol se unapređuje, tako da tačna lista komandi i njihova imena (dobijena u pretrazi na Internet resursima) neće uvijek odgovarati alatu koji morate koristiti za pristup FTP resursu.

Najbolji način da odredite listu dostupnih opcija je izdavanje naredbe za pomoć.

Inače, korištenje FTP protokola je nesigurno sa stanovišta Internet napada: komande i podaci se prenose otvoreno. Sve je sigurno u FTPS protokolu. Međutim, morate imati na umu da radnje korisnika ne pružaju mogućnost vraćanja.

Brisanjem ili premeštanjem datoteke, kreiranjem fascikle na pogrešnoj lokaciji ili sa netačnim imenom, možete oštetiti sistem datoteka FTP servera. Zapravo, server se ne može oštetiti. Ali pristup koji on pruža određenom sistemu datoteka treba pravilno koristiti.

    Skraćenica FTP dolazi iz engleskog F ile T transfer P rotocol (file transfer protocol) je protokol sloja aplikacije za razmjenu datoteka preko TCP/IP transportnog protokola između dva računala, FTP klijenta i FTP servera. Ovo je jedan od najstarijih, a još uvijek aktivno korištenih protokola.

FTP protokol je dizajniran da riješi sljedeće probleme:

  • pristup fajlovima i direktorijumima na udaljenim hostovima
  • obezbeđivanje nezavisnosti klijenta od tipa sistema datoteka udaljenog računara
  • pouzdan prenos podataka
  • korištenje udaljenih sistemskih resursa.
  • FTP protokol podržava dva kanala povezivanja odjednom - jedan za prijenos timovi a rezultati njihove implementacije, drugi je za razmjenu podaci. Sa standardnim postavkama, FTP server koristi TCP port 21 da organizuje kanal za slanje i primanje komandi i TCP port 20 da organizuje kanal za prijem/prenos podataka.

    FTP server čeka konekcije od FTP klijenata na TCP portu 21 i, nakon uspostavljanja veze, prihvata i obrađuje FTP komande, koji su regularni tekstualni nizovi. Naredbe definiraju parametre veze, tip podataka koji se prenose i akcije u odnosu na datoteke i direktorije. Nakon usaglašavanja parametara prijenosa, jedan od učesnika u razmjeni ulazi u pasivni režim čekajući dolazne veze za kanal za razmjenu podataka, a drugi uspostavlja vezu sa ovim portom i započinje prijenos. Kada se prijenos završi, podatkovna veza se zatvara, ali kontrolna veza ostaje otvorena, što vam omogućava da nastavite FTP sesiju i kreirate novu sesiju prijenosa podataka.

    FTP protokol se može koristiti ne samo za prijenos podataka između klijenta i servera, već i između dva servera. U ovom slučaju, FTP klijent uspostavlja kontrolnu vezu sa oba FTP servera, prebacuje jedan od njih u pasivni režim, a drugi u aktivan, stvarajući kanal za prenos podataka između njih.

    FTP klijent je program koji se povezuje na FTP server i izvodi potrebne operacije za pregled sadržaja direktorija servera i primanje, prijenos i brisanje datoteka ili mapa. Takav program može biti običan pretraživač, komponente operativnog sistema ili posebno razvijeni softverski proizvodi, poput popularnog menadžera preuzimanja. Preuzmite Master ili multifunkcionalno besplatno FileZilla FTP klijent.

    FTP protokol je razvijen još u danima kada su klijent i server direktno komunicirali, bez ikakvih međutransformacija TCP paketa, a u standardnom režimu pretpostavlja mogućnost kreiranja TCP veze ne samo na inicijativu klijenta, već i na inicijativa servera sa TCP porta 20 na TCP - klijent portu, čiji se broj prenosi tokom kreiranja data sesije.

    Današnje realnosti su takve da je takva TCP veza od servera do klijenta u velikoj većini slučajeva nemoguća, ili vrlo teška za implementaciju zbog činjenice da se u većini slučajeva koristi tehnologija prevođenja mrežnih adresa za povezivanje na Internet NAT(Prevođenje mrežne adrese) kada klijent nema dostupno mrežno sučelje za kreiranje direktne TCP veze sa Interneta. Tipičan dijagram standardne internetske veze izgleda ovako:

    Internet veza se ostvaruje preko posebnog uređaja - Router(ruter sa NAT funkcijom) koji ima najmanje dva mrežna porta - jedan povezan na mrežu provajdera, koji ima mrežno sučelje s rutiranom IP adresom (tzv. “bijeli IP”), na primjer 212.248.22.144, i port sa mrežnim sučeljem za povezivanje uređaja lokalne mreže sa privatnom IP adresom koja se ne može usmjeravati, na primjer 192.168.1.1 („siva IP“). Prilikom kreiranja konekcija sa uređaja lokalne mreže na eksterne mrežne čvorove, IP paketi se šalju ruteru, koji vrši translaciju adrese i porta tako da adresa pošiljatelja postaje njegova bijela IP adresa. Rezultati prevođenja se pohranjuju i kada se primi paket odgovora, vrši se obrnuta translacija adrese. Dakle, ruter osigurava prosljeđivanje TCP/IP paketa sa bilo kojeg lokalnog mrežnog uređaja na vanjske mreže i povratno prosljeđivanje primljenih paketa odgovora. Ali u slučajevima kada se paket koji nije povezan s TCP paketima odgovora primi na ulaz mrežnog sučelja povezanog na mrežu provajdera, moguće su sljedeće opcije reakcije za softver rutera:

    Paket se zanemaruje jer ne postoji mrežni servis za njegovu obradu.

    Paket prima i obrađuje mrežni servis samog rutera, ako takav servis postoji i čeka na dolaznu vezu („slušanje“) na portu čiji je broj naveden u primljenom paketu.

    Paket se prosljeđuje serveru na lokalnoj mreži koji očekuje ovu vrstu dolaznih konekcija u skladu s pravilima mapiranja portova navedenim u postavkama rutera.

    Stoga je trenutno glavni način rada pomoću FTP protokola postao takozvani “pasivni način”, u kojem se TCP veze ostvaruju samo od klijenta do TCP porta servera. Aktivni način rada se koristi u slučajevima kada je moguće povezati TCP sa servera na portove klijenta, na primjer, kada su na istoj lokalnoj mreži. Način FTP veze se bira pomoću posebnih naredbi:

    PASV- klijent šalje komandu za obavljanje razmjene podataka u pasivnom režimu. Server će vratiti adresu i port na koji se trebate povezati da biste primali ili slali podatke. Primjer fragmenta FTP sesije sa postavljenim pasivnim načinom rada:

    PASSV- naredba za prebacivanje u pasivni način rada koju FTP klijent prenosi na FTP server

    227 Ulazak u pasivni način rada (212,248,22,144,195,89)- Odgovor FTP servera, gdje je 227 kod odgovora, tekstualna poruka o prelasku u pasivni način rada iu zagradama IP adresa i broj porta koji će se koristiti za kreiranje kanala za prijenos podataka. Adresa i broj porta se prikazuju kao decimalni brojevi odvojeni zarezom. Prva 4 broja su IP adresa (212.248.22.144), preostala 2 broja specificiraju broj porta koji se izračunava po formuli - prvi broj se množi sa 256, a drugi broj se dodaje rezultatu, u ovom primjeru broj porta je 195 * 256 +89 = 50017

    PORT Broj porta IP adrese klijenta- klijent šalje naredbu za uspostavljanje sesije u aktivnom modu. IP adresa i broj porta su navedeni u istom formatu kao u prethodnom primjeru, na primjer PORT 212.248.22.144,195,89 Da bi organizirao prijenos podataka, sam server se povezuje sa klijentom na navedenom portu.

    Instalacija i konfiguracija FileZilla FTP servera.

    Instalacioni paket FileZilla Server za svoju verziju operativnog sistema možete preuzeti na adresi

    Instalacija servera se vrši na standardni način, sa izuzetkom stavke sa izborom podešavanja centrale servera:

    Ovo je glavni alat za upravljanje serverom preko kojeg se vrše sva potrebna podešavanja. Podrazumevano, kontrolna tabla radi na interfejsu povratne petlje bez pristupa lozinkom. Ako je potrebno, na primjer, ako je potrebna daljinska kontrola FTP servera, ove postavke se mogu promijeniti.

    Kada se instalacija završi, otvoriće se prozor sa pozivnicom za povezivanje sa serverom:

    Nakon unosa IP adrese, broja porta i lozinke (ako ste ih naveli tokom procesa instalacije), otvara se kontrolni panel FileZilla servera:

    Na vrhu prozora nalazi se glavni meni i dugmad na kontrolnoj tabli. Ispod se nalaze dvije oblasti - poruke sa informacijama o serveru i statističke informacije. Sve u svemu, FTP kontrolna tabla FileZilla Servera je prilično jednostavna i laka za korištenje. Stavke glavnog menija:

    File- režimi rada kontrolne table FTP servera. Sadrži podstavke

    - Povežite se sa serverom- povežite se na server
    - Prekini vezu- prekinuti vezu sa serverom
    - Prestani- gašenje centrale.

    Server- Upravljanje FTP serverom. Sadrži podstavke:

    - Aktivan- start/stop FTP server. Ako je polje za potvrdu označeno, FTP server se pokreće, ako nije označeno, zaustavlja se.
    - Zaključaj- zabraniti/dozvoliti veze sa serverom. Kada je polje za potvrdu označeno, nove veze sa serverom su zabranjene.

    Uredi- uređivanje postavki. Podstavke:

    - Postavke- osnovne postavke servera.
    - Korisnici- Korisničke postavke FTP servera
    - Grupe- postavke grupe korisnika.

    Kao primjer, hajde da konfigurišemo server za sledeće uslove:

  • server je iza NAT-a, ima privatnu IP adresu, ali mora biti dostupan sa Interneta, podržava pasivni način rada i koristi nestandardne TCP portove. Upotreba nestandardnih portova smanjuje vjerovatnoću hakerskih napada, a osim toga, neki provajderi koriste filtriranje prometa i blokiraju standardne portove 20 i 21.
  • korisnici imaju mogućnost preuzimanja sa servera, postavljanja na server, brisanja i preimenovanja datoteka i foldera.
  • Ako koristite dinamičku IP adresu, morate osigurati da je serveru dostupan preko DNS imena.
  • server će raditi na radnoj stanici u Windows 7 / Windows 8 OS okruženju.
  • Drugim riječima, potrebno je kreirati FTP server dostupan sa Interneta za razmjenu datoteka između korisnika, naravno besplatno. Sasvim je jasno da ćete pored kreiranja potrebne konfiguracije samog FTP servera morati promijeniti neke postavke rutera, postavke Windows firewall-a i riješiti problem dinamičke IP adrese kako bi serveru bilo pristupačno po imenu, bez obzira promjene IP adrese.

    Rješavanje problema dinamičke IP adrese.

        Ovaj problem ne zahtijeva rješenje u slučajevima kada se pri povezivanju na Internet koristi statička IP adresa, ili dinamička, ali je u skladu sa postavkama provajdera gotovo uvijek ista. Inače, možete koristiti tehnologiju tzv Dinamički DNS (DDNS) . Ova tehnologija vam omogućava da ažurirate informacije o IP adresi na DNS serveru skoro u realnom vremenu i pristupite ruteru (i servisima iza njega) po registrovanom imenu, ne obraćajući pažnju na promene u dinamičkom IP-u.

    Da biste besplatno implementirali ovu tehnologiju, morat ćete se registrovati na nekom dinamičkom DNS servisu i instalirati klijentski softver za ažuriranje DNS zapisa ako se odgovarajuća IP adresa promijeni. Podršku za dinamički DNS obično pružaju proizvođači mrežne opreme (D-Link, Zyxel, itd.), neke hosting i specijalizovane kompanije, kao što je dobro poznati DynDNS. Međutim, nakon što su u drugoj polovini 2014. godine sve usluge koje su registrovanim korisnicima pružane besplatno za nekomercijalno korišćenje postale plaćene, najpopularnije rešenje je, možda, bilo korišćenje dinamičkog DNS-a zasnovanog na servisu. No-IP.org, koji pruža besplatne usluge podrške za 2 čvora sa dinamičkim IP-om. Da biste besplatno koristili uslugu, morat ćete se registrirati i povremeno (otprilike jednom mjesečno) posjećivati ​​stranicu kako biste ažurirali informacije o korištenim dinamičkim IP čvorovima. Ako preskočite ažuriranje podataka čvora, usluga je suspendovana, te će prema tome postati nemoguće povezati se na čvor po imenu. Kada koristite uslugu uz naknadu, nije potrebno ažuriranje.

        Gotovo svi moderni ruteri (modemi) imaju ugrađenu podršku za dinamički DNS klijent. Njegovo podešavanje je obično vrlo jednostavno - popunjavate polja sa korisničkim imenom i lozinkom, kao i imenom hosta koji ste dobili prilikom registracije na DDNS servisu. Primjer za Zyxel P660RU2

        Upotreba DDNS klijenta ugrađenog u ruter/modem je poželjnija od uslužnog programa za ažuriranje DNS podataka koji radi u OS okruženju, jer vam omogućava implementaciju dodatnih mogućnosti, kao što je upravljanje ruterom putem Interneta kada je računar isključen i daljinsko uključivanje napajanja računara iza NAT-a koristeći tehnologiju Wake On Lan.

    U onim slučajevima kada nije moguće koristiti ugrađeni DDNS klijent, morat ćete se zadovoljiti aplikativnim softverom - klijentskim programom za podršku dinamičkog DNS-a. Takav program se periodično povezuje sa serverom koji održava registrovano ime domene povezano sa ruterom preko kojeg se ostvaruje internet konekcija i poziva proceduru ažuriranja IP-a kada se promeni. Postavke servera su napravljene na način da se poređenje DNS imena i IP adrese internet konekcije završi u vrlo kratkom vremenu, a dinamička priroda adrese praktično nema uticaja na performanse usluga povezanih sa DNS ime.

    Procedura je sljedeća:

  • Idemo na web stranicu No-IP.org. Za rad sa postojećim ili novim nalogom, koristite dugme "Prijava"(gornja desna strana stranice).

  • Kreirajte, ako još nije kreiran, vaš nalog - kliknite "Kreiraj račun". Obrazac za registraciju se periodično mijenja, ali je obavezno unijeti željeno korisničko ime, lozinku i Vaš E-mail. E-mail sa vezom za potvrdu registracije šalje se na e-mail naveden prilikom registracije. Prilikom registracije odaberite slobodan pristup - kliknite na dugme Besplatna registracija nakon popunjavanja svih potrebnih polja obrasca.
  • Nakon uspješne registracije, prijavite se na stranicu i dodajte unos za svoj čvor - kliknite na dugme "Dodaj hostove"

    U stvari, trebate samo unijeti odabrano ime hosta, u ovom slučaju - myhost8.ddns.net. Nema potrebe za promjenom drugih parametara. Zatim morate preuzeti i instalirati poseban softver - Klijent za dinamičko ažuriranje(DUC), link na koji se nalazi na glavnoj stranici stranice. Nakon što se instalacija DUC-a završi, on će se pokrenuti i otvorit će se prozor za autorizaciju u koji trebate unijeti korisničko ime ili e-mail i lozinku primljenu prilikom registracije na web stranici no-ip.org. Zatim pritisnite dugme Uredi Hosta i potvrdite okvir pored prethodno kreiranog imena hosta (myhost8.ddns.net). Sada će odabrano ime hosta uvijek odgovarati “bijeloj IP adresi” vaše internetske veze. Ako imate problema s ažuriranjem svoje IP adrese, provjerite je li mrežna aktivnost vašeg DUC klijenta blokirana zaštitnim zidom.

    Postavljanje FTP servera

        Korišćenje nestandardnih brojeva portova za FTP server uopšte nije neophodno ako provajder ne koristi filtriranje saobraćaja, ili vam nije stalo do skeniranja portova u potrazi za ranjivostima i pokušaja da pogodite lozinke. U ovom članku je kao jedna od mogućih opcija predstavljena upotreba FTP servera sa nestandardnim TCP portovima.

    Postavke FileZilla servera se vrše preko menija "Edit" - "Settings".

    Prozor Opšte postavke namijenjen za opća podešavanja FTP servera.

    U polju "Slušaj na ovom portu" možete odrediti broj porta za dolazne TCP veze. Podrazumevano, ovo polje je postavljeno na 21 , a za korištenje nestandardnog broja potrebno je navesti odabranu vrijednost, na primjer - 12321 . Korištenje nestandardnog TCP porta ima neke neugodnosti, jer zahtijeva navođenje njegove vrijednosti prilikom kreiranja sesije:

    Ako se server planira koristiti i sa pristupom sa Interneta i na lokalnoj mreži, ima smisla ostaviti standardnu ​​vrijednost 21, a za konekcije sa Interneta koristiti nestandardni broj porta, podesiti preusmjeravanje paketa koji pristižu na portu 12321 rutera na port 21 FTP servera u lokalnoj mreži. Sa ovim podešavanjem, nema potrebe za specificiranjem broja porta za FTP sesije unutar lokalne mreže.

    Ostali parametri su za podešavanje performansi i vremenska ograničenja sesije. Mogu se ostaviti nepromijenjene. Preostale dijelove općih postavki također možete ostaviti kao zadane:

    Poruka dobrodošlice- tekst koji se šalje klijentu nakon povezivanja.

    IP Binding- na kojem mrežnom interfejsu će se očekivati ​​konekcije klijenata. Podrazumevano - na bilo koji, ali možete odrediti određeni, na primjer - 192.168.1.3.

    IP filter- postavljanje pravila filtriranja za klijentske IP adrese. Po defaultu, veze su dozvoljene za bilo koju IP adresu.

    Poglavlje Postavke pasivnog načina rada služi za konfiguraciju pasivnog FTP moda i zahtijeva promjenu gotovo svih zadanih parametara.

    Brojevi portova koji će se koristiti za prenos podataka u pasivnom režimu moraju se postaviti ručno, jer će ruter morati da bude konfigurisan da ga preusmeri na mrežni interfejs koji server sluša. Stoga morate označiti okvir da biste omogućili način rada "Koristi prilagođeni raspon portova" i postavili raspon - na primjer, od 50000 prije 50020 . Broj portova koje server sluša određuje ograničenje broja istovremenih sesija prijenosa podataka.

    Pododjeljak Specifičan IPv4 definira IP adresu koju će server poslati kao odgovor na PASV naredbu. U ovom slučaju, to ne bi trebao biti vlastiti IP servera 192.168.1.3, već "bijeli IP" naše internetske veze. Zbog toga morate podesiti režim „Koristi sledeću IP adresu“ i umesto IP adrese uneti ime primljeno prilikom registracije na dinamički DNS servis - myhost8.ddns.net. Kao alternativu, možete koristiti način za određivanje vanjske IP adrese pomoću FileZilla projekta uključivanjem. "Preuzmi eksternu IP adresu od:". Ova opcija se može odabrati u slučajevima kada nije moguće koristiti dinamički DNS alat. Ako namjeravate koristiti FTP server na vašoj lokalnoj mreži, morate postaviti način rada na "Nemoj koristiti vanjski IP za lokalne veze" (nemojte koristiti vanjsku IP adresu za veze unutar lokalne mreže)

    Ostale postavke servera se mogu ostaviti nepromijenjene ili, ako je potrebno, izvršiti kasnije: Sigurnosna podešavanja- Sigurnosne postavke. Po defaultu, veze koje se mogu koristiti za implementaciju DDoS napada su zabranjene

    Razno- postavke za veličine bafera i druge parametre dnevnika i neke FTP komande.

    Postavke interfejsa administratora- podešavanja kontrolne table servera. Možete odrediti mrežni interfejs, broj porta za slušanje, IP adrese sa kojih su dozvoljene veze sa kontrolnom tablom i lozinku.

    Logging- postavke serverskog dnevnika događaja. Podrazumevano, upisivanje u datoteku se ne izvodi.

    Ograničenje brzine- postavke ograničenja brzine prijenosa podataka. Podrazumevano - nema ograničenja.

    Kompresija prijenosa datoteka- postavke za kompresiju datoteke tokom prijenosa. Podrazumevano je bez kompresije.

    SSL/TLS postavke omogućavanje načina šifriranja za prenesene podatke. Zadana postavka nije šifriranje.

    Autoban- omogući automatsko blokiranje korisnika koji pogode lozinku za povezivanje. Prema zadanim postavkama, automatsko blokiranje je onemogućeno.

    Postavljanje prosljeđivanja portova i zaštitnog zida

    Da bi FTP server bio dostupan sa Interneta, potrebno je ruter konfigurisati na način da se dolazne veze koje dolaze na određene TCP portove na eksternom interfejsu preusmjeravaju na TCP portove koje sluša FTP server na interna mreža. Za različite modele rutera, postavke se mogu razlikovati u terminologiji, ali njihovo značenje je isto - TCP paket s određenim brojem porta primljen na vanjskom (WAN) sučelju se šalje u lokalnu mrežu na željenu IP adresu i port. Primjer postavki za D-Link DIR-320NRU ruter za prosljeđivanje portova koji se koristi za pasivni FTP način:

    Paketi primljeni na interfejsu sa "bijelim IP-om" i koji imaju brojeve portova u rasponu 50000-50020 biće preusmjereni na IP adresu navedenu u polju "Internal IP" (u našem slučaju - 192.168.1.3). Slično, kreira se preusmjeravanje za port 50021 ako ste promijenili standardni broj porta ili na port 21 FTP servera ako ste ga ostavili nepromijenjenog.

    Nakon primjene ovih postavki, FTP server će biti dostupan putem URL-a ftp://myhost8.ddns.net:50021 ili, za vezu unutar lokalne mreže:

    ftp://192.168.1.3- ako niste promijenili zadani broj porta (21) u postavkama FTP servera.

    ftp://192.168.1.3:50021- ako se koristi nestandardni broj porta.

    Možete koristiti ime računara umjesto IP adrese ako se može riješiti na IP adresu

    ftp://comp1

    ftp://comp1.mydomain.ru

    Dijagnoza problema

    Ako se ne uspostavi veza sa FTP serverom, može doći do problema sa zaštitnim zidom koji blokira veze neophodne za rad kreiranog FTP servera. Ako koristite ugrađeni Windows zaštitni zid, morate dodati pravilo koje dozvoljava mrežnu aktivnost za uslugu "FileZilla FTP server". Ako koristite zaštitni zid ili antivirus treće strane sa filtriranjem saobraćaja, morate kreirati odgovarajuće pravilo koristeći dostupne alate za podešavanja da biste omogućili mrežne veze. Opcije su moguće kada se naprave postavke koje dozvoljavaju bilo kakvu mrežnu aktivnost određenog programa ili dozvoljavaju odabrane adrese i portove koji se primjenjuju na sve programe.

    Najbolje mjesto za početak dijagnostike je na samom FTP serveru. Kao dijagnostički alat možete koristiti standard telnet klijent(korisnost telnet.exe) . Svi zaštitni zidovi ne blokiraju veze na sučelju povratne petlje, a da biste provjerili da li su postavke servera ispravne, možete se povezati na njega unosom naredbe:

    telnet localhost 21- ako se koristi standardni broj porta.

    telnet lokalni host 50021- ako je promijenjen standardni broj porta.

    Kada se ova naredba izvrši, uspostavlja se veza sa FTP serverom preko loopback interfejsa i pozivnica servera (Poruka dobrodošlice) treba da se prikaže u telnet prozoru. Ako se to ne dogodi, server je možda zaustavljen, postoji sukob portova ili port 21 (50021) ne sluša. Za dijagnostiku možete koristiti naredbu netstat:

    netstat –nab

    Opcije komandne linije znače:

    n- koristiti numeričke brojeve portova i IP adrese

    a- prikaz svih konekcija i portova za slušanje

    b- prikaz imena programa uključenih u stvaranje veza.

    Primjer prikazanih rezultata komande:

    Aktivne veze

    Ime     Lokalna adresa     Eksterna adresa     Status
    TCP         0.0.0.0:21                 0.0.0.0:0                    
    TCP         0.0.0.0:135               0.0.0.0:0               LISTA  
    RpcSs

    U koloni Lokalna adresa postoji značenje 0.0.0.0:21 , što označava da je program imenovan FileZilla Server.exe slušanje (stanje LISTENING) TCP port broj 21 na svim mrežnim sučeljima. Ako su u postavkama FTP servera specificirani određeni interfejs i drugi broj porta, tada će ova vrijednost sadržavati IP: port, Na primjer - 192.168.1.3:50021

    Za prikaz rezultata u načinu rada sa stranicama, možete koristiti naredbu:

    netstat -nab | više

    Ili koristite rezultate pretraživanja prema broju porta: netstat -nab | pronađi ":21"

    Ako server nije dostupan na sučelju bez povratne petlje, ali je dostupan na sučelju povratne petlje, morate razumjeti postavke zaštitnog zida.

    Postavljanje korisnika i grupa.

    Podešavanje korisnika i grupa vrši se preko menija "Uredi" - "Korisnici" ("Grupe"). Nije potrebno kreirati grupe, ali je ponekad zgodno u slučajevima kada postoji veliki broj korisnika i njihova prava u odnosu na FTP server se razlikuju. Postavke za grupe i korisnike su gotovo identične:

    Ovaj primjer pokazuje rezultat dodavanja korisnika FTP servera pod imenom korisnik1 imaju puna prava za pisanje, čitanje, brisanje i spajanje datoteka, kao i za pregled sadržaja, brisanje i kreiranje poddirektorija u direktoriju C:\ftp\public

    Na stranici Generale korisnička svojstva se dodaju, brišu i mijenjaju.
    Na stranici Shared Folders napravljene su postavke koje određuju listu direktorija sistema datoteka koje će koristiti FTP server da im omogući pristup preko FTP protokola. Svakom korisniku ili grupi korisnika može se dati vlastiti direktorij s određenim pravima u odnosu na njegov sadržaj.
    Na stranici Ograničenja brzine Možete postaviti ograničenja brzine razmjene podataka.
    Na stranici IP filter Možete postaviti pravila filtriranja za IP adresu korisnika, navodeći adrese sa kojih je veza sa serverom zabranjena ili dozvoljena.

    Lista osnovnih FTP komandi

    ABOR - Prekini prijenos datoteke
    CDUP - Promijenite direktorij u viši.
    CWD - Promjena trenutnog direktorija.
    DELE - Brisanje datoteke (DELE ime datoteke).
    POMOĆ - Prikazuje listu naredbi koje server prihvata.
    LIST - Vraća listu datoteka u direktoriju. Lista se prenosi putem podatkovne veze (port 20).
    MDTM - Vraća vrijeme izmjene datoteke.
    MKD - Kreirajte direktorij.
    NLST - Vraća listu datoteka u direktoriju u kraćem formatu od LIST. Lista se prenosi putem podatkovne veze (port 20).
    NOOP - Prazan rad
    PASV - Ulazak u pasivni način rada. Server će vratiti adresu i port na koji se morate povezati da biste prikupili podatke. Prijenos će početi kada se unesu naredbe RETR, LIST, itd.
    PORT - Ulazak u aktivni mod. Na primjer PORT 12,34,45,56,78,89. Za razliku od pasivnog režima, sam server se povezuje sa klijentom radi prenosa podataka.
    PWD - Vraća trenutni direktorij servera.
    QUIT - Prekini vezu
    REIN - Ponovo inicijalizirajte vezu
    RETR - Preuzmite datoteku. RETR-u mora prethoditi naredba PASV ili PORT.
    RMD - Izbriši direktorij
    RNFR i RNTO - Preimenujte datoteku. RNFR - šta preimenovati, RNTO - šta preimenovati.
    VELIČINA - Vraća veličinu datoteke
    STOR - Otpremite fajl na server. STOR-u mora prethoditi naredba PASV ili PORT.
    SYST - Vraća tip sistema (UNIX, WIN,)
    TYPE - Postavite tip prijenosa datoteke (A - ASCII tekst, I - binarni)
    KORISNIK - Korisničko ime za prijavu na server

    Primjer FTP sesije

    FTP klijent se povezuje na server sa korisničkim imenom korisnik1, praznu lozinku i preuzima datoteku pod nazivom cpu-v. Poruke sa FTP servera su istaknute crvenom bojom, poruke sa FTP klijenta su istaknute plavom bojom. Razmjena direktiva i parametara može se neznatno razlikovati između različitih verzija softvera FTP klijenta i FTP servera.

    Nakon povezivanja, server prenosi informacije o sebi klijentu:
    220-FileZilla Server verzija 0.9.45 beta
    220-napisao Tim Kosse ( [email protected])
    220 Molimo posjetite http://sourceforge.net/projects/filezilla/
    Klijent prosljeđuje korisničko ime:
    USER user1
    Server traži lozinku:
    331 Lozinka je potrebna za korisnika1
    Klijent prosljeđuje praznu lozinku:
    PASS
    Server verifikuje korisnički nalog i prijavljuje početak sesije:
    230 Prijavljen
    Klijent traži tip operativnog sistema na serveru:
    SYST
    Server javlja da je tip Unix, emuliran od strane Filezilla servera:
    215 UNIX emuliran od strane FileZilla
    Klijent traži listu parametara koje server podržava:
    FEAT
    Server odgovara sa listom podržanih parametara:
    211-Karakteristike:
    MDTM
    REST STREAM
    VELIČINA
    MLST tip*;veličina*;izmjena*;
    MLSD
    UTF8
    CLNT
    MFMT
    211 Kraj

    Klijent traži trenutni direktorij servera:
    P.W.D.
    Server javlja da je trenutni direktorij korijenski direktorij ("/"):
    257 "/" je trenutni direktorij.
    Klijent prijavljuje da će prenijeti binarne podatke:
    TIP I

    Server potvrđuje vrstu podataka koji se prenose:
    200 Tip postavljen na I
    Klijent izvještava da će koristiti pasivni FTP način:
    PASV
    Server prijavljuje prelazak u pasivni režim i prenosi IP i port za pasivni FTP režim.
    227 Ulazak u pasivni način rada (212,248,22,114,195,97)
    Klijent traži da primi datoteku pod nazivom cpu-v iz trenutnog direktorija servera
    RETR cpu-v
    Server javlja početak prijenosa podataka:
    150 Otvaranje kanala podataka za preuzimanje fajla sa servera "/cpu-v"
    Po završetku, server prijavljuje uspješan prijenos:
    226 Uspješno preneseno "/cpu-v"

    U zaključku, želio bih dodati da projekt Filezilla uključuje ne samo razvoj i podršku visokokvalitetnog besplatnog FTP servera, već i popularnog besplatnog FTP klijenta

    Članak sa kratkim opisom besplatnog FTP klijenta za Linux, Mac OS i Windows. Ovaj FTP klijent podržava mnoge protokole za prijenos podataka aplikacije - FTP, FTP preko SSL/TLS (FTPS), SSH protokol za prijenos datoteka (SFTP), HTTP, SOCKS i FTP-Proxy. Drugim riječima, Filezilla FTP Client je univerzalni softver za primanje i prijenos datoteka preko svih modernih aplikacijskih protokola između čvorova na različitim platformama.

    FTP (File Transfer Protocol) je standardni protokol dizajniran za prijenos datoteka preko TCP mreža (na primjer, Interneta). FTP se često koristi za preuzimanje web stranica i drugih dokumenata sa privatnog razvojnog uređaja na javne hosting servere.

    Protokol je izgrađen na klijent-server arhitekturi i koristi različite mrežne veze za prijenos naredbi i podataka između klijenta i servera. Korisnici FTP-a mogu se autentifikovati prenošenjem korisničkog imena i lozinke u čistom tekstu, ili, ako server to dozvoljava, mogu se povezati anonimno. Možete koristiti SSH protokol za sigurne prijenose koji sakrivaju (šifriraju) podatke za prijavu i lozinku i također šifriraju sadržaj.

    Prilično upečatljiva karakteristika FTP protokola je da koristi višestruke (barem dvostruke) veze. U ovom slučaju, jedan kanal je kontrolni kanal, preko kojeg se šalju komande serveru i vraćaju se njegovi odgovori (obično preko TCP porta 21), a kroz ostatak se odvija stvarni prijenos podataka, po jedan kanal za svaki prijenos. Stoga, unutar jedne sesije putem FTP protokola, možete prenijeti nekoliko datoteka istovremeno, i to u oba smjera. Za svaki kanal podataka otvara se vlastiti TCP port, čiji broj bira server ili klijent, ovisno o načinu prijenosa.

    FTP protokol ima binarni način prijenosa, koji smanjuje opterećenje prometa i smanjuje vrijeme komunikacije prilikom prijenosa velikih datoteka. HTTP protokol nužno zahtijeva kodiranje binarnih informacija u tekstualni oblik, na primjer korištenjem Base64 algoritma.

    Prilikom pokretanja rada preko FTP protokola, klijent ulazi u sesiju, a sve operacije se izvode u okviru ove sesije (drugim riječima, server pamti trenutno stanje). HTTP protokol ne "pamti" ništa - njegov zadatak je dati podatke i zaboraviti ih, pa se pamćenje stanja pri korištenju HTTP-a provodi metodama izvan protokola.

    FTP radi na sloju aplikacije OSI modela i koristi se za prijenos datoteka koristeći TCP/IP. Da biste to učinili, FTP server mora biti pokrenut i čekati dolazne zahtjeve. Klijentski računar može kontaktirati server na portu 21. Ova veza (kontrolni tok) ostaje otvorena za vrijeme trajanja sesije. Drugu vezu (tok podataka) može otvoriti ili server sa porta 20 na portu odgovarajućeg klijenta (aktivan način), ili klijent sa bilo kojeg porta na port odgovarajućeg servera (pasivni način), koji je potrebno za prijenos datoteke podataka. Kontrolni tok se koristi za upravljanje sesijom - na primjer, razmjena komandi i lozinki između klijenta i servera koristeći protokol sličan telnet-u. Na primjer, "RETR ime datoteke" će prenijeti navedenu datoteku sa servera na klijenta. Zbog ove strukture sa dva porta, FTP se smatra izvanpojasnim protokolom, za razliku od in-band HTTP-a.

    Povezivanje i prijenos podataka

    Protokol je definiran u RFC 959. Server odgovara na kontrolni tok troznakovnim ASCII statusnim kodovima s opcionom tekstualnom porukom. Na primjer, "200" (ili "200 OK") znači da je posljednja komanda uspješno izvršena. Brojevi predstavljaju šifru odgovora, a tekst predstavlja pojašnjenje ili zahtjev. Trenutni prijenos u toku podataka može biti prekinut porukom prekida poslanom u kontrolnom toku.

    FTP može raditi u aktivnom ili pasivnom režimu, čiji izbor određuje kako će se veza uspostaviti. U aktivnom režimu, klijent kreira TCP kontrolnu vezu sa serverom i šalje njegovu IP adresu i proizvoljni broj porta klijenta serveru, a zatim čeka dok server ne pokrene TCP vezu sa ovom adresom i brojem porta. U slučaju da se klijent nalazi iza firewall-a i ne može prihvatiti dolaznu TCP vezu, može se koristiti pasivni način rada. U ovom režimu, klijent koristi kontrolni tok da pošalje PASV naredbu serveru, a zatim prima njegovu IP adresu i broj porta od servera, koji klijent zatim koristi da otvori tok podataka od proizvoljnog porta klijenta do primljena adresa i luka. Oba načina rada su ažurirana u septembru 1998. da podržavaju IPv6. U ovom trenutku, izvršene su dalje promjene u pasivnom načinu rada, nadogradnjom ga na poboljšani pasivni način rada.

    Prilikom prijenosa podataka preko mreže mogu se koristiti četiri prikaza podataka:

      ASCII - koristi se za tekst. Podaci se, ako je potrebno, konvertuju iz prikaza znakova na hostu koji šalje u "osmobitni ASCII" prije prijenosa i (opet, ako je potrebno) u prikaz znakova na hostu koji prima. Kao rezultat toga, ovaj način rada nije prikladan za datoteke koje sadrže više od običnog teksta.

      Način rada slike (obično nazvan binarni) - uređaj koji šalje svaki fajl šalje bajt po bajt, a primalac pohranjuje tok bajtova nakon prijema. Podrška za ovaj način rada je preporučena za sve FTP implementacije.

      EBCDIC - koristi se za prijenos običnog teksta između hostova u EBCDIC kodiranju. Inače, ovaj način rada je sličan ASCII modu.

      Lokalni režim - omogućava dva računara sa identičnim postavkama da šalju podatke u sopstvenom formatu bez konverzije u ASCII.

    Za tekstualne datoteke su obezbeđeni različiti formati upravljanja i postavke strukture zapisa. Ove funkcije su dizajnirane za rad sa datotekama koje sadrže Telnet ili ASA formatiranje.

    Prijenos podataka može se izvršiti na bilo koji od tri načina:

      Stream mode - podaci se šalju kao kontinuirani tok, oslobađajući FTP od obavljanja bilo kakve obrade. Umjesto toga, svu obradu obavlja TCP. Indikator kraja datoteke nije potreban osim za odvajanje podataka u zapise.

      Blok režim - FTP razbija podatke u nekoliko blokova (blok zaglavlja, broj bajtova, polje podataka) i zatim ih prenosi na TCP.

      Način kompresije - podaci se komprimiraju pomoću jednog algoritma (obično kodiranjem dužine serije).

    Autentifikacija

    FTP autentifikacija koristi uobičajenu šemu korisničkog imena/lozinke za odobravanje pristupa. Korisničko ime se šalje na server naredbom USER, a lozinka se šalje naredbom PASS. Ako server prihvati informacije koje daje klijent, server će poslati pozivnicu klijentu i sesija počinje. Korisnici se mogu, ako server podržava ovu funkciju, prijaviti bez davanja vjerodajnica, ali server može odobriti samo ograničen pristup za takve sesije.

    AnonymousFTP

    Domaćin koji pruža FTP uslugu može pružiti anonimni FTP pristup. Korisnici se obično prijavljuju sa "anonymous" kao svojim korisničkim imenom. Iako se od korisnika obično traži da unesu svoju adresu e-pošte umjesto lozinke, verifikacija se zapravo ne vrši. Mnogi FTP hostovi koji pružaju ažuriranja softvera podržavaju anonimni pristup.

    NAT- P.T.

    Posebno da bi FTP protokol radio kroz zaštitne zidove, napravljena je NAT ekstenzija nazvana NAT-PT (rfc2766), koja omogućava da se dolazne veze prevedu sa servera na klijenta preko NAT-a. Tokom takve veze, NAT zamjenjuje prenesene podatke sa klijenta, ukazujući serveru pravu adresu i port sa kojim 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 obezbedila dodatna sigurnost od virusnih pretnji.

    NATi zaobilazeći zaštitne zidove

    FTP obično prenosi podatke kada postoji veza između servera i klijenta, nakon što je klijent poslao naredbu PORT. Ovo stvara problem i za NAT i za firewall, koji ne dozvoljavaju konekcije sa Interneta na interne hostove. Za NAT, dodatni problem je što se prikaz IP adresa i brojeva portova u naredbi PORT odnosi na IP adresu i port internog hosta, umjesto na javnu IP adresu i NAT port. Postoje dva pristupa ovom problemu. Prvi je da FTP klijent i FTP server koriste PASV naredbu, koja poziva podatkovnu vezu uspostavljenu od klijenta do servera. Drugi pristup je promjena vrijednosti naredbe PORT za NAT koristeći gateway na sloju aplikacije.

    Podrška za web pretraživač

    Većina uobičajenih web pretraživača može dohvatiti datoteke koje se nalaze na FTP serverima, iako možda ne podržavaju proširenja protokola kao što je FTPS. Kada je navedena FTP adresa, a ne HTTP adresa, dostupni sadržaj na udaljenom serveru se prikazuje slično kao i drugi web sadržaj. Potpuno funkcionalan FTP klijent može se pokrenuti u Firefoxu kao FireFTP ekstenzija.

    Sigurnost

    FTP nije dizajniran da bude siguran protokol (posebno prema današnjim standardima) i ima brojne sigurnosne propuste. U maju 1999., autori RFC 2577 sumirali su ranjivosti u sljedeću listu problema:

      Skriveni napadi (napadi odbijanja)

      Lažni napadi

      Napadi grube sile

      Hvatanje paketa, njuškanje

      Zaštita korisničkog imena

      Krađa luka

    FTP ne može da šifrira svoj saobraćaj, svi prenosi su čisti tekst, tako da korisnička imena, lozinke, komande i podatke može pročitati svako ko može da presretne paket preko mreže. Ovaj problem je tipičan za mnoge specifikacije Internet protokola (uključujući SMTP, Telnet, POP, IMAP) razvijene prije stvaranja mehanizama za šifriranje kao što su TLS i SSL. Uobičajeno rješenje ovog problema je korištenje "sigurnih", TLS-zaštićenih verzija ranjivih protokola (FTPS za FTP, TelnetS za Telnet, itd.) ili drugog, sigurnijeg protokola, kao što je SFTP/SCP, koji ima većinu sigurnih Implementacije Shell protokola.

    SafeFTP

    Postoji nekoliko metoda za siguran prijenos datoteka, u jednom ili drugom trenutku koji se nazivaju "Bezbedan FTP": FTPS, SFPS, FTP preko SSH.

    Eksplicitni FTPS je proširenje FTP standarda koje omogućava klijentima da zahtijevaju da FTP sesija bude šifrirana. Ovo se implementira slanjem naredbe "AUTH TLS". Server ima mogućnost da dozvoli ili odbije veze koje ne zahtevaju TLS. Ovo proširenje protokola je definirano u RFC 4217. Implicitni FTPS je naslijeđeni standard za FTP koji zahtijeva korištenje SSL ili TLS veze. Ovaj standard je trebao koristiti različite portove od normalnog FTP-a.

    SFTP, ili "SSH File Transfer Protocol", nije povezan sa FTP-om, osim što takođe prenosi datoteke i ima sličan skup komandi za korisnike. SFTP, ili siguran FTP, je program koji koristi SSH (Secure Shell) za prijenos datoteka. Za razliku od standardnog FTP-a, on šifrira i komande i podatke, sprečavajući lozinke i osjetljive informacije da se otvoreno prenose preko mreže. SFTP je po funkcionalnosti sličan FTP-u, ali pošto koristi drugačiji protokol, standardni FTP klijenti ne mogu komunicirati sa SFTP serverom i obrnuto.

    FTPkrozSSH(NeSFTP)

    FTP preko SSH (ne SFTP) odnosi se na praksu tuneliranja redovne FTP sesije preko SSH veze. Budući da FTP koristi više TCP veza, tuneliranje preko SSH-a je posebno teško. Kada mnogi SSH klijenti pokušaju uspostaviti tunel za kontrolni kanal (originalna veza klijent-server na portu 21), samo će ovaj kanal biti zaštićen; prilikom prijenosa podataka, FTP softver na oba kraja će uspostaviti nove TCP veze (kanale podataka) koje će zaobići SSH vezu i tako izgubiti integritet.

    Inače, SSH klijentski softver mora imati određeno znanje o FTP-u kako bi nadgledao i prepisivao FTP kontrolne poruke toka i autonomno otvarao nova preusmjeravanja za FTP tok podataka.

    FTP preko SSH-a se ponekad naziva siguran FTP; ali ga ne treba miješati s drugim metodama kao što je SSL/TLS (FTPS). Druge metode prijenosa datoteka koje koriste SSH i nisu povezane sa FTP-om su SFTP i SCP; u svakom od njih, i vjerodajnice i podaci o fajlu uvijek su zaštićeni SSH protokolom.

    FXP (File eXchange Protocol) je način direktnog prijenosa datoteka između dva FTP servera bez njihovog preuzimanja na vaš računar. U FXP sesiji, klijent otvara dvije FTP veze na dva različita servera, zahtijevajući datoteku na prvom serveru, specificirajući IP adresu drugog servera u naredbi PORT.

    Nesumnjiva prednost podrške FXP standardu je da krajnji korisnici koji žele kopirati datoteke s jednog FTP servera na drugi više ne podliježu ograničenjima propusnog opsega svoje internetske veze. Nema potrebe da preuzimate datoteku za sebe, a zatim je postavljate 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 one „korisničke“.

    FXP su počeli da koriste napadači za napad na druge servere: naredba PORT specificira IP adresu i port napadnutog servisa na računaru žrtve, a RETR/STOR komande pristupaju ovom portu u ime FTP servera, a ne napadača. stroj, koji je omogućio izvođenje DDoS napada velikih razmjera koristeći više FTP servera odjednom, ili zaobići sigurnosni sistem žrtvinog računara ako se oslanja samo na verifikaciju IP-a klijenta, a FTP server koji se koristi za napad se nalazi na pouzdana mreža ili gateway. Kao rezultat toga, skoro svi serveri sada provjeravaju da li IP adresa navedena u naredbi PORT odgovara IP adresi FTP klijenta i, po defaultu, zabranjuju korištenje IP adresa trećih strana tamo. Stoga korištenje FXP-a nije moguće kada radite sa javnim FTP serverima.

    Osnovne komande

      ABOR - Prekini prijenos datoteke

      CDUP - Promijenite direktorij u viši.

      CWD - Promjena imenika.

      DELE - Brisanje datoteke (DELE ime datoteke).

      EPSV - Uđite u prošireni pasivni način rada. Koristi se umjesto PASV.

      POMOĆ - Prikazuje listu naredbi koje server prihvata.

      LIST - Vraća listu datoteka u direktoriju. Lista se šalje preko podatkovne veze.

      MDTM - Vraća vrijeme izmjene datoteke.

      MKD - Kreirajte direktorij.

      NLST - Vraća listu datoteka u direktoriju u kraćem formatu od LIST. Lista se šalje preko podatkovne veze.

      NOOP - Prazan rad

      PASV - Ulazak u pasivni način rada. Server će vratiti adresu i port na koji se morate povezati da biste prikupili podatke. Prijenos će početi kada se unesu sljedeće komande: RETR, LIST, itd.

      PORT - Ulazak u aktivni mod. Na primjer PORT 12,34,45,56,78,89. Za razliku od pasivnog režima, sam server se povezuje sa klijentom radi prenosa podataka.

      PWD - Vraća trenutni direktorij.

      QUIT - Prekini vezu

      REIN - Ponovo inicijalizirajte vezu

      RETR - Preuzmite datoteku. RETR-u mora prethoditi naredba PASV ili PORT.

      RMD - Izbriši direktorij

      RNFR i RNTO - Preimenujte datoteku. RNFR - šta preimenovati, RNTO - šta preimenovati.

      VELIČINA - Vraća veličinu datoteke

      STOR - Upload file. STOR-u mora prethoditi naredba PASV ili PORT.

      SYST - Vraća tip sistema (UNIX, WIN, ...)

      TYPE - Postavite vrstu prijenosa datoteke (binarni, tekstualni)

      KORISNIK - Korisničko ime za prijavu na server

    Opis protokola

    Razlika od HTTP-a

    Povezivanje i prijenos podataka

    Podrška za web pretraživač

    Sintaksa

    Sintaksa FTP URL-a je opisana u RFC1738, u obliku: ftp://[<пользователь>[:<пароль>]@]<хост>[:<порт>]/<путь>(parametri u uglastim zagradama nisu obavezni). Na primjer:

    Više detalja o određivanju korisničkog imena i lozinke napisano je u dokumentaciji pretraživača. Podrazumevano, većina web pretraživača koristi pasivni (PASV) način rada, koji bolje zaobilazi zaštitne zidove krajnjih korisnika.

    Sigurnost

    FTP nije dizajniran da bude siguran protokol (posebno prema današnjim standardima) i ima brojne sigurnosne propuste. U maju 1999. godine, autori RFC 2577 sumirali su ranjivosti u sljedeću listu problema:

    • Skriveni napadi (napadi odbijanja)
    • Lažni napadi
    • Napadi grube sile
    • Hvatanje paketa, njuškanje
    • Zaštita korisničkog imena
    • Krađa luka

    FTP ne može da šifrira svoj saobraćaj, svi prenosi su čisti tekst, tako da korisnička imena, lozinke, komande i podatke može pročitati svako ko može da presretne paket preko mreže. Ovaj problem je tipičan za mnoge specifikacije Internet protokola (uključujući SMTP, Telnet, POP, IMAP) razvijene prije stvaranja mehanizama za šifriranje kao što su TLS i SSL. Uobičajeno rješenje ovog problema je korištenje "sigurnih", TLS-zaštićenih verzija ranjivih protokola (FTPS za FTP, TelnetS za Telnet, itd.) ili nekog drugog, sigurnijeg protokola, kao što je SFTP /SCP, koji ima većinu sigurnih Implementacije Shell protokola.

    Secure FTP

    Postoji nekoliko metoda za siguran prijenos datoteka, u jednom ili drugom trenutku pod nazivom "Bezbedan FTP".

    FTPS

    Eksplicitni FTPS je proširenje FTP standarda koje omogućava klijentima da zahtijevaju da FTP sesija bude šifrirana. Ovo se implementira slanjem naredbe "AUTH TLS". Server ima mogućnost da dozvoli ili odbije veze koje ne zahtevaju TLS. Ovo proširenje protokola je definirano u RFC 4217 specifikaciji. Implicitni FTPS je naslijeđeni standard za FTP koji zahtijeva SSL ili TLS vezu. Ovaj standard je trebao koristiti različite portove od normalnog FTP-a.

    SFTP

    SFTP, ili "SSH File Transfer Protocol", nije povezan sa FTP-om, osim što takođe prenosi datoteke i ima sličan skup komandi za korisnike. SFTP, ili siguran FTP, je program koji koristi SSH (Secure Shell) za prijenos datoteka. Za razliku od standardnog FTP-a, on šifrira i komande i podatke, sprečavajući lozinke i osjetljive informacije da se otvoreno prenose preko mreže. SFTP je po funkcionalnosti sličan FTP-u, ali pošto koristi drugačiji protokol, standardni FTP klijenti ne mogu komunicirati sa SFTP serverom i obrnuto.

    FTP preko SSH (ne SFTP)

    FTP preko SSH (ne SFTP) odnosi se na praksu tuneliranja redovne FTP sesije preko SSH veze. Budući da FTP koristi više TCP veza, tuneliranje preko SSH-a je posebno teško. Kada mnogi SSH klijenti pokušaju uspostaviti tunel za kontrolni kanal (originalna veza klijent-server na portu 21), samo će ovaj kanal biti zaštićen; prilikom prijenosa podataka, FTP softver na oba kraja će uspostaviti nove TCP veze (kanale podataka) koje će zaobići SSH vezu i tako izgubiti integritet.

    Inače, SSH klijentski softver mora imati određeno znanje o FTP-u kako bi nadgledao i prepisivao FTP kontrolne poruke toka i autonomno otvarao nova preusmjeravanja za FTP tok podataka. Softverski paketi koji podržavaju ovaj način rada:

    • Tectia ConnectSecure (Win/Linux/Unix)
    • Tectia Server za IBM z/OS iz SSH Communications Security paketa
    • (pod GPL licencom)

    FTP preko SSH-a se ponekad naziva siguran FTP; ali ga ne treba miješati s drugim metodama kao što je SSL/TLS (FTPS). Druge metode prijenosa datoteka koje koriste SSH i nisu povezane sa FTP-om su SFTP i SCP; u svakom od njih, i vjerodajnice i podaci o fajlu uvijek su zaštićeni SSH protokolom.

    Priča

    Prva implementacija protokola (1971) predviđala je razmjenu između klijenta i servera poruka koje se sastoje od zaglavlja (72 bita) i podataka promjenjive dužine. Zaglavlje poruke uključivalo je zahtjev ili odgovor od FTP servera, vrstu i dužinu podataka koji se prenose. Parametri zahtjeva (na primjer, putanja i naziv datoteke), informacije sa servera (na primjer, lista datoteka u direktoriju) i sami fajlovi su preneseni kao podaci. Dakle, komande i podaci su se prenosili istim kanalom.

    1972. godine protokol je potpuno izmijenjen i poprimio je oblik blizak modernom. Naredbe sa parametrima iz odgovora klijenta i servera se prenose preko TELNET konekcije (kontrolni kanal) kreira se za prijenos podataka.

    U narednim izdanjima dodata je mogućnost rada u pasivnom režimu, prenos datoteka između FTP servera, uvedene su komande za dobijanje informacija, promenu trenutnog direktorijuma, kreiranje i brisanje direktorijuma i čuvanje fajlova pod jedinstvenim imenom. Neko vrijeme postojale su komande za slanje e-pošte preko FTP-a, ali su kasnije uklonjene iz protokola.

    1980. godine, FTP protokol je počeo da koristi TCP. Najnovija verzija protokola objavljena je 1985. Godine 1997. pojavio se dodatak protokolu koji omogućava šifriranje i potpisivanje informacija u kontrolnom kanalu i kanalu podataka. Godine 1999. objavljen je dodatak posvećen internacionalizaciji protokola, koji preporučuje upotrebu UTF-8 kodiranja za serverske komande i odgovore i definiše novu LANG komandu koja postavlja jezik odgovora.

    Osnovne komande

    • ABOR - Prekini prijenos datoteke
    • CDUP - Promijenite direktorij u viši.
    • CWD - Promjena imenika.
    • DELE - Brisanje datoteke (DELE ime datoteke).
    • EPSV - Uđite u prošireni pasivni način rada. Koristi se umjesto PASV.
    • POMOĆ - Prikazuje listu naredbi koje server prihvata.
    • LIST - Vraća listu datoteka u direktoriju. Lista se šalje preko podatkovne veze.
    • MDTM - Vraća vrijeme izmjene datoteke.
    • MKD - Kreirajte direktorij.
    • NLST - Vraća listu datoteka u direktoriju u kraćem formatu od LIST. Lista se šalje preko podatkovne veze.
    • NOOP - Prazan rad
    • PASV - Ulazak u pasivni način rada. Server će vratiti adresu i port na koji se morate povezati da biste prikupili podatke. Prijenos će početi kada se unesu sljedeće komande: RETR, LIST, itd.
    • PORT - Ulazak u aktivni mod. Na primjer PORT 12,34,45,56,78,89. Za razliku od pasivnog režima, sam server se povezuje sa klijentom radi prenosa podataka.
    • PWD - Vraća trenutni direktorij.
    • QUIT - Prekini vezu
    • REIN - Ponovo inicijalizirajte vezu
    • RETR - Preuzmite datoteku. RETR-u mora prethoditi naredba PASV ili PORT.
    • RMD - Izbriši direktorij
    • RNFR i RNTO - Preimenujte datoteku. RNFR - šta preimenovati, RNTO - šta preimenovati.
    • VELIČINA - Vraća veličinu datoteke
    • STOR - Upload file. STOR-u mora prethoditi naredba PASV ili PORT.
    • SYST - Vraća tip sistema (UNIX, WIN, ...)
    • TYPE - Postavite vrstu prijenosa datoteke (binarni, tekstualni)
    • KORISNIK - Korisničko ime za prijavu na server

    FTP kodovi odgovora

    Ispod je kratak opis kodova odgovora koje može vratiti FTP server. Ove kodove je standardizirao IETF u RFC 959. Kao što je ranije spomenuto, kod odgovora je trocifreni broj. Prva cifra je odgovorna za jedan od tri ishoda: uspjeh, odbijanje ili naznaku greške ili nepotpunog odgovora.

    • 2xx – Uspješan odgovor
    • 4xx/5xx – Naredba se ne može izvršiti
    • 1xx/3xx – Greška ili nepotpun odgovor

    Druga cifra određuje vrstu greške:

    • x0z – Sintaktički.
    • x1z – Informacije. Odgovara informativnoj poruci.
    • x2z – Veze. Poruka se odnosi na kontrolnu ili podatkovnu vezu.
    • x3z – Odgovara autentifikaciji korisnika i porukama o pravima.
    • x4z – Nije definisano.
    • x5z – Sistem datoteka. Odgovara poruci statusa sistema datoteka.

    Treća znamenka definitivno označava grešku.

    Primjer

    220 FTP server spreman. KORISNIK ftp //Anonimno 230 Prijava je uspjela. PASV 227 Ulazak u pasivni mod (192,168,254,253,233,92)//Klijent mora otvoriti konekciju na prenijetu IP LISTU 150 Evo liste direktorija. //Poslužitelj š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 File receive OK. QUIT 221 Zbogom.

    Argument 192,168,254,253,207,56 znači da se očekuje veza sa serverom na čvoru sa IP adresom 192.168.254.253 na portu 207<< 8 + 56 = 53048 (где << - операция побитового сдвига, 207 записывается в младший разряд, а потом сдвигается в старший, чтобы в младший записать 56 или 207*256+56=53048).

    Mnogi FTP serveri imaju direktorij (koji se zove dolazni, upload, itd.) u koji se može pisati i koji je namijenjen za otpremanje datoteka na server. Ovo omogućava korisnicima da nahrane server sa svežim podacima.

    FXP

    FXP(engleski) Protokol za razmjenu datoteka- protokol za razmjenu datoteka) - način direktnog prijenosa datoteka između dva FTP servera, bez njihovog preuzimanja na vaš računar. U FXP sesiji, klijent otvara dvije FTP veze na dva različita servera, zahtijevajući datoteku na prvom serveru, specificirajući IP adresu drugog servera u naredbi PORT.

    Nesumnjiva prednost podrške FXP standardu je da krajnji korisnici koji žele kopirati datoteke s jednog FTP servera na drugi više ne podliježu ograničenjima propusnog opsega svoje internetske veze. Nema potrebe da preuzimate datoteku za sebe, a zatim je postavljate 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 one „korisničke“.

    FXP su počeli da koriste napadači za napad na druge servere: naredba PORT specificira IP adresu i port napadnutog servisa na računaru žrtve, a RETR/STOR komande pristupaju ovom portu u ime FTP servera, a ne napadača. mašine, koja je omogućila organizovanje velikih DDoS napada koristeći više FTP servera odjednom, ili zaobići sigurnosni sistem računara žrtve ako se oslanja samo na proveru IP klijenta i FTP server koji se koristi za napad se nalazi na pouzdana mreža ili gateway. Kao rezultat toga, skoro svi serveri sada provjeravaju da li IP adresa navedena u naredbi PORT odgovara IP adresi FTP klijenta i, po defaultu, zabranjuju korištenje IP adresa trećih strana tamo. Stoga korištenje FXP-a nije moguće kada radite sa javnim FTP serverima.

    vidi takođe

    • Lista FTP servera (engleski)
    • Komande FTP servera i kodovi grešaka

    Linkovi

    • Originalna FTP specifikacija RFC 959
    • RFC 2228 Sigurnosna proširenja
    • FTP internacionalizacija RFC 2640
    • NAT-PT ekstenzija za podršku FTP RFC 2766
    • Šifriranje KEA i SKIPJACK RFC 2773
    • RFC 3659 Proširenje FTP komande