Aktívny a pasívny režim FTP. Ako povoliť pasívny režim

  • 04.07.2019

» Prevádzkové režimy ftp serverov

FTP vyžaduje 2 spojenia - prvé pre príkazy a druhé pre dáta. Prvé spojenie (s dátami) ide vždy od klienta k serveru, ale smer druhého je rozdielny pre aktívny a pasívny režim.

V prípade aktívneho FTP ide druhé spojenie zo servera na klientsky počítač, ale keďže takéto spojenie bolo nemožné kvôli NAT a Firewallom, vynašli pasívny režim, v ktorom server klientovi povie (cez prvé pripojenie) cez ktorý port sa otvorí druhé pripojenie (zvyčajne je port náhodne vybraný serverom v určitom rozsahu) a druhé pripojenie sa otvorí aj z klientskeho počítača na server.

Jedným dôležitým bodom je, že väčšina FTP serverov (aspoň pod Windowsom) neumožňuje obmedziť rozsah portov pre druhé pripojenie, čo komplikuje konfiguráciu brán firewall a mnohým z nich znemožňuje náležitú ochranu. Napríklad, Serv-U- jeden z mála, ktorý umožňuje obmedziť tento rozsah.

Z "FAQ" TMeter

Protokol FTP znamená dve rôzne spojenia medzi klientom a serverom FTP. Prvé spojenie sa nazýva spojenie „riadenie“. Je určený pre klienta na "prihlásenie" na FTP server, navigáciu medzi adresármi na FTP serveri atď. Ak chcete získať zoznam súborov zo servera, stiahnuť súbor zo servera alebo nahrať súbor na server, používa sa druhé pripojenie, nazývané dátové pripojenie.

Riadiace pripojenie je rovnaké pre aktívny aj pasívny režim. Klient inicializuje pripojenie TCP z dynamického portu (1024-65535) na port 21 na serveri FTP a povie: „Ahoj! Chcem sa s vami spojiť. Tu je moje meno a moje heslo." Ďalšie akcie závisia od zvoleného režimu FTP (Aktívny alebo Pasívny).

V aktívny režim keď zákazník povie "Ahoj!" tiež oznámi serveru číslo portu (z dynamického rozsahu 1024-65535), aby sa server mohol pripojiť ku klientovi a vytvoriť dátové spojenie. FTP server sa pripája k zadanému číslu klientskeho portu pomocou TCP portu číslo 20 na prenos údajov.

V pasívny Keď klient povie „Ahoj!“, server oznámi klientovi číslo portu TCP (z dynamického rozsahu 1024-65535), ku ktorému sa môže pripojiť, aby vytvoril dátové spojenie.

Hlavný rozdiel medzi aktívnym režimom FTP a pasívnym režimom FTP je strane, ktorá otvára dátové pripojenie... V aktívnom režime musí klient akceptovať pripojenie zo servera FTP. V pasívnom režime klient vždy iniciuje spojenie.

Príklad aktívneho pripojenia:

Riadiace pripojenie: Klientsky port 1026>< Server port 20

Príklad pasívneho pripojenia:

Riadiace pripojenie: Klientsky port 1026> Serverový port 21 Dátové pripojenie: Klientsky port 1027< Server port 2065

V závislosti od napätia na svorkách môže byť tranzistor v týchto základných režimoch:

  • Režim prerušenia;
  • Aktívny režim;
  • Režim nasýtenia.

Okrem týchto režimov existuje aj inverzný režim, ktorý sa používa veľmi zriedka.

Režim cutoff

Keď je napätie medzi základňou a vysielačom nižšie ako 0,6V - 0,7V, potom je pn prechod medzi základňou a vysielačom uzavretý. V tomto stave nemá tranzistor prakticky žiadny základný prúd. V dôsledku toho nebude existovať ani kolektorový prúd, pretože v základni nie sú žiadne voľné elektróny pripravené na pohyb smerom k napätiu kolektora. Ukazuje sa, že tranzistor je uzamknutý a hovoria, že je v režime vypnutia.

Aktívny režim

V aktívnom režime je na základňu privedené napätie, dostatočné na otvorenie pn prechodu medzi základňou a emitorom. Generujú sa základné a kolektorové prúdy. Kolektorový prúd sa rovná základnému prúdu vynásobenému ziskom. To znamená, že aktívny režim sa nazýva normálny prevádzkový režim tranzistora, ktorý sa používa na zosilnenie.

Režim nasýtenia

Ak zvýšite základný prúd, môže prísť chvíľa, keď sa kolektorový prúd prestane zvyšovať, pretože tranzistor sa úplne otvorí a prúd bude určený iba napätím napájacieho zdroja a zaťažovacím odporom v kolektorovom obvode. Tranzistor dosiahne režim nasýtenia. V režime nasýtenia bude kolektorový prúd maximum, ktoré môže dodať napájací zdroj pre daný odpor záťaže a nebude závisieť od základného prúdu. V tomto stave tranzistor nie je schopný zosilniť signál, pretože kolektorový prúd nereaguje na zmeny základného prúdu. V režime saturácie je vodivosť tranzistora maximálna a je vhodnejší pre funkciu spínača (kľúča) v stave "zapnuté". Rovnako tak v režime cut-off je vodivosť tranzistora minimálna, čo zodpovedá prepínaču v stave „vypnuté“. Všetky tieto režimy možno vysvetliť pomocou výstupných charakteristík tranzistora.

Uvažujme zosilňovací stupeň na tranzistore zapojenom podľa obvodu so spoločným emitorom (obr. 4.14). Keď sa zmení hodnota vstupného signálu, zmení sa základný prúd Ib. Kolektorový prúd Ik sa mení v pomere k základnému prúdu:

Ik = β I b. (4.5.1)

Ryža. 4.14. Obvod stupňa zosilňovača (obrázok vytvorený autormi)

Zmenu kolektorového prúdu je možné sledovať vo výstupných charakteristikách tranzistora (obr. 4.15). Na vodorovnej osi odložíme segment rovný EK - napätiu napájacieho zdroja kolektorového obvodu a na osi y odložíme segment zodpovedajúci maximálnemu možnému prúdu v obvode tohto zdroja:

I až max = E až / R až (4.5.2)

Medzi týmito bodmi nakreslite priamku, ktorá sa nazýva zaťažovacia čiara a je opísaná rovnicou:

I k = (E k - U ke) / R k (4.5.3)

Kde U CE je napätie medzi kolektorom a emitorom tranzistora; R K - zaťažovací odpor v kolektorovom okruhu.

Ryža. 4.15. Spôsoby činnosti bipolárneho tranzistora (obrázok vytvorený autormi)

Z (4.5.3) vyplýva, že

R к = Eк / I к max = tanα. (4.5.4)

A preto je sklon čiary zaťaženia určený odporom R K. Z obr. 4.15 vyplýva, že v závislosti od základného prúdu Ib, tečúceho vo vstupnom obvode tranzistora, sa pracovný bod tranzistora, ktorý určuje jeho kolektorový prúd a napätie U FE, bude pohybovať po zaťažovacej čiare z najnižšej polohy (bod 1, určený priesečníkom čiary zaťaženia s výstupnou charakteristikou pri I b = 0), až po bod 2, určený priesečníkom čiary zaťaženia s počiatočným strmo rastúcim úsekom výstupnej charakteristiky.

Zóna nachádzajúca sa medzi osou x a počiatočnou výstupnou charakteristikou zodpovedajúcou I b = 0 sa nazýva medzná zóna a vyznačuje sa tým, že oba prechody tranzistora - emitorový aj kolektorový sú predpäté v opačnom smere. V tomto prípade je kolektorový prúd spätný prúd kolektorového prechodu - I K0, ktorý je veľmi malý, a preto takmer celé napätie napájacieho zdroja E K spadá medzi emitor a kolektor uzavretého tranzistora:

U ke ≈ E k.

A pokles napätia na záťaži je veľmi malý a rovný:

U Rк = I к0 R к (4.5.5)

V tomto prípade sa hovorí, že tranzistor pracuje v režime vypnutia. Pretože v tomto režime je prúd pretekajúci záťažou mizivo malý a takmer celé napätie zdroja energie je privedené na uzavretý tranzistor, potom v tomto režime môže byť tranzistor reprezentovaný ako otvorený spínač.

Ak teraz zvýšime základný prúd I b, potom sa pracovný bod bude pohybovať pozdĺž čiary zaťaženia, kým nedosiahne bod 2. Prúd bázy zodpovedajúci charakteristike prechádzajúcej bodom 2 sa nazýva saturačný základný prúd I b us. Tu sa tranzistor dostane do režimu saturácie a ďalšie zvýšenie prúdu bázy nepovedie k zvýšeniu kolektorového prúdu I K. Zóna medzi osou y a strmo sa meniacim úsekom výstupných charakteristík sa nazýva saturačná zóna. V tomto prípade sú oba prechody tranzistora predpäté; kolektorový prúd dosiahne svoju maximálnu hodnotu a takmer sa rovná maximálnemu prúdu kolektorového napájacieho zdroja:

I k max ≈ I nám (4.5.6)

a napätie medzi kolektorom a emitorom otvoreného tranzistora je veľmi malé. Preto v režime nasýtenia môže byť tranzistor reprezentovaný ako uzavretý spínač.

Medziľahlá poloha pracovného bodu medzi zónou cutoff a zónou nasýtenia určuje činnosť tranzistora v režime zosilnenia a oblasť, v ktorej sa nachádza, sa nazýva aktívna oblasť. Pri práci v tejto oblasti je prechod emitoru posunutý dopredu a prechod kolektora je posunutý opačným smerom (Petrovich V.P., 2008).

3 odpovede

Aktívny a pasívny sú dva režimy, prostredníctvom ktorých môže FTP fungovať. FTP používa dve linky medzi klientom a serverom, príkazovú a dátovú, čo sú vlastne samostatné TCP spojenia. Príkazový kanál je pre príkazy a odpovede, dátový kanál je pre samotný prenos súborov. Je to skvelý spôsob odosielania príkazov na server bez čakania na dokončenie aktuálneho prenosu.

V aktívnom režime klient nastaví príkazový kanál (z klientskeho portu X na serverový port 21 (b)), ale server nastaví dátový kanál (z portu servera 20 (b) do klientskeho portu Y, kde bolo poskytnuté Y zo strany klienta).

V pasívnom režime klient nastavuje oba kanály. V tomto prípade server oznámi klientovi, ktorý port by sa mal použiť pre dátový kanál.

Pasívny režim sa zvyčajne používa v situáciách, keď server FTP nemôže vytvoriť dátový kanál. Jedným z hlavných dôvodov sú sieťové brány firewall. Hoci môžete mať pravidlo brány firewall, ktoré vám umožňuje otvárať kanály FTP na ftp.microsoft.com, servery spoločnosti Microsoft nemusia byť schopné otvoriť dátový kanál cez bránu firewall.

Pasívny režim to rieši otvorením oboch typov kanálov zo strany klienta. Aby to bolo spoľahlivo prehľadnejšie:

Aktívny režim:

  • Klient pošle PORT 2001 (a) na server a server potvrdí na príkazovom kanáli.
  • Server otvorí dátový kanál z portu servera 20 (b) do portu klienta 2001 (a).
  • Klient potvrdí dátový kanál.

Pasívny režim:

  • Klient otvorí príkazový kanál z klientskeho portu 2000 (a) do portu servera 21 (b).
  • Klient odošle PASV na server na príkazovom kanáli.
  • Server odošle späť (na príkazovom kanáli) PORT 1234 (a) po tom, čo začne na tomto porte počúvať.
  • Klient otvorí dátový kanál z klienta 2001 (a) do portu servera 1234 (a).
  • Server potvrdí dátový kanál.

V tomto bode sú príkazy a dátové kanály otvorené.

(a) Upozorňujeme, že výber portov na strane klienta závisí od klienta, pretože výber portu dátového kanála servera v pasívnom režime závisí od servera.

b) Ďalej je potrebné poznamenať, že použitie portov 20 a 21 je len podmienené (aj keď silné). Neexistuje žiadna absolútna požiadavka, aby sa tieto porty používali, hoci klient a server sa musia dohodnúť na tom, ktoré porty sa používajú. Videl som implementácie, ktoré sa pokúšali skryť pred klientmi pomocou rôznych portov (podľa môjho názoru márne).

Nedávno som narazil na túto otázku na svojom pracovisku, takže si myslím, že by som tu mal povedať niečo iné. Použijem obrázok na vysvetlenie, ako FTP funguje ako doplnkový zdroj pre predchádzajúcu odpoveď.

Aktívny režim:

Pasívny režim:

V konfigurácii aktívneho režimu sa server pokúsi pripojiť k náhodnému klientskemu portu. Tento port s najväčšou pravdepodobnosťou nebude jedným z týchto preddefinovaných portov. V dôsledku toho bude pokus o pripojenie k nemu zablokovaný bránou firewall a spojenie sa nevytvorí.

Pasívna konfigurácia nebude mať tento problém, pretože klient spustí pripojenie. Serverová strana môže mať samozrejme aj firewall. Keďže sa však očakáva, že server dostane viac požiadaviek na pripojenie ako klient, bolo by logické, aby sa správca servera prispôsobil situácii a otvoril výber portov, aby vyhovoval konfiguráciám pasívneho režimu.

Takže by bolo lepšie, keby ste svoj server nakonfigurovali tak, aby podporoval pasívny režim FTP. Pasívny režim však ponechá váš systém zraniteľný voči útokom, pretože klienti sa musia pripájať k náhodným serverom. Takže na podporu tohto režimu musí mať váš server k dispozícii nielen viacero portov, ale aj váš firewall musí umožňovať pripojenie ku všetkým týmto portom!

Ak chcete zmierniť riziká, dobrým riešením by bolo špecifikovať rozsah portov na vašom serveri a potom povoliť iba tento rozsah portov na vašom firewalle.

Viac informácií nájdete v oficiálnom dokumente.

Zmenšená verzia môjho článku Režimy pripojenia FTP (aktívne vs. pasívne):

Režim pripojenia FTP (aktívny alebo pasívny) určuje spôsob nadviazania dátového pripojenia. V oboch prípadoch klient vytvorí riadiace pripojenie TCP k portu 21 FTP servera. Toto je štandardné odchádzajúce pripojenie ako akýkoľvek iný protokol na prenos súborov (SFTP, SCP, WebDAV) alebo akákoľvek iná klientska aplikácia TCP (napríklad webový prehliadač). Preto zvyčajne nie je problém s otvorením riadiaceho spojenia.

Ak je FTP zložitejší ako iné protokoly na prenos súborov, ide o prenos súborov. Zatiaľ čo iné protokoly používajú rovnaké pripojenie na riadenie relácie a prenos súborov (údajov), FTP používa samostatné pripojenie na prenos súborov a adresárov.

V aktívnom režime začne klient počúvať na náhodnom porte prichádzajúce dátové spojenia zo servera (klient odošle príkaz FTP PORT, aby oznámil serveru, na ktorom porte počúva). Teraz je bežné, že klient je za bránou firewall (ako je napríklad vstavaná brána firewall systému Windows) alebo smerovač NAT (napríklad modem ADSL), ktorý nedokáže akceptovať prichádzajúce pripojenia TCP.

Z tohto dôvodu bol zavedený pasívny režim, ktorý sa v súčasnosti používa najmä. Uprednostňuje sa použitie pasívneho režimu, pretože väčšinu zložitých konfigurácií vykonáva iba raz na strane servera skúsený administrátor, a nie individuálne na strane klienta (možno) neskúsenými používateľmi.

V pasívnom režime klient používa riadiace pripojenie na odoslanie príkazu PASV na server a potom získa IP adresu servera a číslo portu zo servera, ktoré potom klient použije na otvorenie dátového spojenia s IP adresou a serverom servera. číslo portu.

Konfigurácia siete pre pasívny režim

V pasívnom režime je väčšina konfiguračného zaťaženia na strane servera. Správca servera musí nakonfigurovať server podľa popisu nižšie.

Firewall a NAT na strane servera FTP musia byť nakonfigurované nielen na povolenie/smerovanie prichádzajúcich pripojení na port FTP 21, ale aj na množstvo portov pre prichádzajúce dátové pripojenia. Softvér servera FTP má zvyčajne možnosť konfigurácie na konfiguráciu rozsahu portov, ktoré bude server používať. A rovnaký rozsah musí byť otvorený / smerovaný na firewalle / NAT.

Keď je FTP server za NAT, potrebuje poznať svoju externú IP adresu, aby ju mohol poskytnúť klientovi ako odpoveď na príkaz PASV.

Konfigurácia siete pre aktívny režim

V aktívnom režime je väčšina zaťaženia konfigurácie na strane klienta.

Firewall (napríklad Windows Firewall) a NAT (napríklad pravidlá smerovania ADSL modemu) na strane klienta musia byť nakonfigurované tak, aby umožňovali / smerovali rozsah portov pre prichádzajúce dátové pripojenia. Ak chcete otvoriť porty v systéme Windows, prejdite do časti Ovládací panel > Systém a zabezpečenie > Brána firewall systému Windows > Rozšírené možnosti > Pravidlá pre prichádzajúce > Nové pravidlo. Smerovanie portov na NAT (ak existuje) nájdete v jeho dokumentácii.

Keď je NAT vo vašej sieti, FTP klient potrebuje poznať svoju externú IP adresu, ktorú by WinSCP mal poskytnúť FTP serveru pomocou príkazu PORT. Aby sa server mohol správne pripojiť ku klientovi a otvoriť dátové pripojenie. Niektorí FTP klienti dokážu automaticky zistiť externú IP adresu, niektoré z nich je potrebné nakonfigurovať manuálne.

Smart Firewall / NAT

Niektoré firewally/NAT sa pokúšajú automaticky otvárať/zatvárať dátové porty testovaním FTP pripojenia a/alebo prekladať IP adresy dátového pripojenia na riadenie prevádzky pripojenia.

S takýmto firewallom / NAT nie je vyššie uvedená konfigurácia potrebná pre jednoduché nešifrované FTP. To však nemôže fungovať s FTPS, pretože prevádzka riadiaceho pripojenia je šifrovaná a firewall / NAT ho nemôže kontrolovať a upravovať.

Pri práci cez FTP sú medzi klientom a serverom vytvorené dve spojenia - riadiace (cez neho sa odosielajú príkazy) a spojenie na prenos dát (cez neho sa prenášajú súbory).
Zapojenie ovládania je rovnaké pre Aktívne a Pasívne režimu. Klient inicializuje pripojenie TCP z dynamického portu (1024-65535) na port 21 na serveri FTP a povie: „Ahoj! Chcem sa s vami spojiť. Tu je moje meno a moje heslo." Ďalšie akcie závisia od zvoleného režimu FTP (Aktívny alebo Pasívny).

V aktívnom režime keď zákazník povie "Ahoj!" tiež oznámi serveru číslo portu (z dynamického rozsahu 1024-65535), aby sa server mohol pripojiť ku klientovi a vytvoriť dátové spojenie. FTP server sa pripája k zadanému číslu klientskeho portu pomocou TCP portu číslo 20 na prenos údajov.

V pasívnom režime, potom, čo klient povie „Ahoj!“, server oznámi klientovi číslo portu TCP (z dynamického rozsahu 1024-65535), ku ktorému sa môže pripojiť a nadviazať dátové spojenie.

Hlavný rozdiel medzi aktívnym režimom FTP a pasívnym režimom FTP je strane, ktorá otvára dátové pripojenie... V aktívnom režime musí klient akceptovať pripojenie zo servera FTP. V pasívnom režime klient vždy iniciuje spojenie.

Základné príkazy

ABOR - Zrušenie prenosu súboru
CDUP - Zmena adresára proti prúdu.
CWD - Zmena adresára.
DELE - Odstrániť súbor (názov súboru DELE).
EPSV - Vstup do pokročilého pasívneho režimu. Používa sa namiesto PASV.
HELP - Zobrazí zoznam príkazov akceptovaných serverom.
LIST - Vráti zoznam súborov v adresári. Zoznam sa prenáša cez dátové pripojenie.
MDTM - Vráti čas úpravy súboru.
MKD - Vytvoriť adresár.
NLST - Vráti zoznam adresárových súborov v stručnejšom formáte ako LIST. Zoznam sa prenáša cez dátové pripojenie.
NOOP - prázdna prevádzka
PASV - Vstup do pasívneho režimu. Server vráti adresu a port, ku ktorému sa potrebujete pripojiť, aby ste mohli vyzdvihnúť údaje. Prenos sa spustí po zadaní nasledujúcich príkazov: RETR, LIST atď.
PORT - Vstup do aktívneho režimu. Napríklad PORT 12,34,45,56,78,89. Na rozdiel od pasívneho režimu sa pri prenose dát ku klientovi pripája samotný server.
PWD - Vráti aktuálny adresár.
QUIT - Odpojiť
REIN - Opätovná inicializácia pripojenia
RETR - Stiahnite si súbor. RETR musí predchádzať príkaz PASV alebo PORT.
RMD - Odstrániť adresár
RNFR a RNTO - Premenovanie súboru. RNFR - čo premenovať, RNTO - čo.
SIZE - Vráti veľkosť súboru
STOR - Nahrajte súbor. STOR musí predchádzať príkaz PASV alebo PORT.
SYST - Vráti typ systému (UNIX, WIN, ...)
TYP - Nastavte typ prenosu súboru (binárny, textový)
USER - Používateľské meno na prihlásenie na server

Kompletný zoznam kódov odozvy servera FTP

100 Požadovaná akcia bola spustená, pred vykonaním nového príkazu počkajte na ďalšiu odpoveď.
110 Komentár
120 Funkcia bude implementovaná za nnn minút
125 Kanál otvorený, začala sa výmena údajov
150 Stav súboru je správny, pripravuje sa otvorenie kanála
200 Príkaz správny
202 Príkaz nie je podporovaný
211 Stav systému alebo odpoveď na otázku
212 Stav adresára
213 Stav súboru
214 Vysvetľujúca správa Pomocníka
215 Zobrazuje sa spolu s informáciami o systéme v príkaze SYST.
220 Služba je pripravená pre nového používateľa.
221 Ukončite úspešne.
225 Kanál je vytvorený, ale nedochádza k výmene informácií
226 Zatvorte kanál, výmena bola úspešne dokončená
227 Prepnutie do pasívneho režimu (h1, h2, h3, h4, p1, p2).
228 prechod do dlhého pasívneho režimu (dlhá adresa, port).
229 Prepnite do rozšíreného pasívneho režimu (||| port |).
230 Identifikovaný používateľ, pokračujte
231 Užívateľská relácia sa skončila; Služba bola prerušená.
232 Príkaz na koniec relácie bol prijatý a dokončí sa po dokončení prenosu súboru.
250 Žiadosť bola úspešná
257 "WAY" je vytvorený.
331 Používateľské meno je správne, vyžaduje sa heslo
332Prihlásenie vyžaduje autentifikáciu
350 Požadovaná akcia so súborom vyžaduje viac informácií.
404 Daný vzdialený server sa nenašiel.
421 Postup nie je možný, kanál je zatvorený.
425 Otvorenie informačného kanála nie je možné.
426 Kanál zatvorený, výmena prerušená
434 Požadovaný hostiteľ nie je dostupný.
450 Požadovaná funkcia nie je implementovaná, súbor nie je dostupný, napr
451 Lokálna chyba, operácia prerušená
452 Chyba pri zápise súboru (nedostatok miesta)
500 Chyba syntaxe, príkaz nie je možné interpretovať (môže byť príliš dlhý).
501 Syntaktická chyba (neplatný parameter alebo argument).
502 Príkaz sa nepoužíva (nelegálny typ MODE)
503 Neplatná postupnosť príkazov
504 Príkaz nie je použiteľný pre tento parameter.
530 Prihlásenie zlyhalo! Vyžaduje sa autorizácia (neprihlásený)
532 Na zapamätanie súboru je potrebná autentifikácia
550 Požadovaná funkcia nie je implementovaná, súbor nie je dostupný, napríklad sa nenašiel.
551 Požadovaná operácia bola prerušená. Neznámy typ stránky.
552 Požadovaná operácia bola prerušená. Nie je pridelená dostatočná pamäť
553 Požadovaná operácia nebola prijatá. Neplatný názov súboru.

Režimy FTP

Pri práci cez FTP sú medzi klientom a serverom vytvorené dve spojenia - riadiace (cez neho sa odosielajú príkazy) a spojenie na prenos dát (cez neho sa prenášajú súbory). Riadiace pripojenie je rovnaké pre aktívny aj pasívny režim. Klient inicializuje pripojenie TCP z dynamického portu (1024-65535) na port 21 na serveri FTP a povie: "Ahoj! Chcem sa k vám pripojiť. Tu je moje meno a heslo." Ďalšie akcie závisia od zvoleného režimu FTP (Aktívny alebo Pasívny).

V aktívnom režime, keď klient povie "Ahoj!" tiež oznámi serveru číslo portu (z dynamického rozsahu 1024-65535), aby sa server mohol pripojiť ku klientovi a vytvoriť dátové spojenie. FTP server sa pripája k zadanému číslu klientskeho portu pomocou TCP portu číslo 20 na prenos údajov. Pre klienta je takéto pripojenie prichádzajúce pripojenie, takže pre klientov za firewallom alebo NAT je často ťažké pracovať v aktívnom režime alebo vyžadovať dodatočné nastavenia.

V pasívnom režime, keď klient povie "Ahoj!", server oznámi klientovi číslo portu TCP (z dynamického rozsahu 1024-65535), ku ktorému sa môže pripojiť, aby vytvoril dátové spojenie. Zároveň, ako je ľahké vidieť, porty v takomto spojení, ako zo strany klienta, tak zo strany servera, sú ľubovoľné. V pasívnom režime môže klient jednoducho pracovať so serverom cez svoj firewall, ale často na podporu pasívneho režimu serverom je potrebná vhodná konfigurácia firewallu už na strane servera.

Hlavným rozdielom medzi aktívnym režimom FTP a pasívnym režimom FTP je strana, ktorá otvára dátové pripojenie. V aktívnom režime musí byť klient schopný prijať toto pripojenie zo servera FTP. V pasívnom režime toto pripojenie vždy iniciuje klient sám a server ho už musí akceptovať.

FTP je služba založená výlučne na TCP (Transmission Control Protocol). FTP je nezvyčajné v tom, že používa dva porty, „údajový“ port a „príkazový“ port (známy aj ako port na správu). Tradične je to port 21 pre príkazy a port 20 pre dáta. V závislosti od režimu však dátový port nebude vždy 20.

V aktívny režim FTP klient sa pripája z ľubovoľného neprivilegovaného portu (N> 1024) na príkazový port FTP servera 21. Potom klient začne počúvať na porte N + 1 a odošle FTP príkaz PORT N + 1 na FTP server. V reakcii na to sa server pripojí k určenému dátovému portu klienta zo svojho lokálneho dátového portu 20.

V pasívny režim FTP klient inicializuje obe pripojenia k serveru, čím sa rieši problém s bránami firewall, ktoré filtrujú porty prichádzajúcich údajov klienta. Pri otvorení FTP pripojenia klient lokálne otvorí dva neprivilegované porty (N> 1024 a N + 1). Prvý port kontaktuje server na porte 21, ale namiesto toho, aby potom vydal príkaz PORT a umožnil serveru reagovať na jeho dátový port, klient vydá príkaz PASV. Výsledkom je, že server otvorí ľubovoľný neprivilegovaný port (P> 1024) a odošle klientovi príkaz PORT P. Potom na prenos údajov klient iniciuje spojenie z portu N + 1 na port P na serveri.

FTP je výhradne služba založená na TCP. FTP neobsahuje žiadny komponent UDP. FTP je neobvyklá služba v tom, že využíva dva porty, „údajový“ port a „príkazový“ port (známy aj ako riadiaci port). Tradične sú to port 21 pre príkazový port a port 20 pre dátový port. Zmätok však začína, keď zistíme, že v závislosti od režimu nie je dátový port vždy na porte 20.

Aktívne FTP

V aktívnom režime FTP sa klient pripája z náhodného neprivilegovaného portu (N> 1023) k príkazovému portu FTP servera, port 21. Potom klient začne počúvať port N + 1 a odošle FTP príkaz PORT N + 1 na server FTP. Server sa potom pripojí späť k dátovému portu špecifikovanému klientom zo svojho lokálneho dátového portu, ktorým je port 20.

Z hľadiska brány firewall na strane servera je na podporu aktívneho režimu FTP potrebné otvoriť nasledujúce komunikačné kanály:

Port 21 servera FTP na porty>
FTP server "port 20 na porty> 1023 (Server inicializuje dátové pripojenie k dátovému portu klienta)
Port 20 FTP servera z portov> 1023 (klient posiela ACK na dátový port servera)

V kroku 1 „príkazový port klienta“ kontaktuje príkazový port servera a odošle príkaz PORT 1027. Server potom pošle ACK späť na príkazový port klienta v kroku 2. V kroku 3 server inicializuje spojenie na svojom lokálnom dátovom porte na dátový port, ktorý klient zadal skôr. Nakoniec klient odošle ACK späť, ako je znázornené v kroku 4.

Hlavný problém s aktívnym režimom FTP je v skutočnosti na strane klienta. FTP klient "nevytvára skutočné spojenie s dátovým portom servera - jednoducho povie serveru, na akom porte počúva a server sa pripojí späť k určenému portu na klientovi. Z brány firewall na strane klienta to vyzerá, že byť vonkajším systémom, ktorý iniciuje pripojenie k internému klientovi – niečo, čo je zvyčajne blokované.

Pasívny FTP

Na vyriešenie problému s inicializáciou pripojenia ku klientovi serverom bola vyvinutá iná metóda pre FTP pripojenia. Toto bolo známe ako pasívny režim alebo PASV po príkaze, ktorý klient použil na to, aby oznámil serveru, že je v pasívnom režime.

V pasívnom režime FTP klient inicializuje obe spojenia so serverom, čím sa rieši problém firewallov filtrujúcich prichádzajúce spojenie dátového portu ku klientovi zo servera. Pri otvorení FTP pripojenia klient otvorí dva náhodné neprivilegované porty lokálne (N> 1023 a N + 1). Prvý port kontaktuje server na porte 21, ale namiesto toho, aby potom vydal príkaz PORT a umožnil serveru pripojiť sa späť k jeho dátovému portu, klient vydá príkaz PASV. Výsledkom je, že server potom otvorí náhodný neprivilegovaný port (P> 1023) a odošle príkaz PORT P späť klientovi. Klient potom inicializuje spojenie z portu N + 1 do portu P na serveri, aby preniesol dáta.

Z hľadiska brány firewall na strane servera je potrebné na podporu pasívneho režimu FTP otvoriť nasledujúce komunikačné kanály:
Port 21 FTP servera odkiaľkoľvek (klient inicializuje pripojenie)
FTP server „port 21 na porty> 1023 (Server odpovedá na riadiaci port klienta)
Porty FTP servera> 1023 odkiaľkoľvek (Klient inicializuje dátové pripojenie na náhodný port určený serverom)
Porty FTP servera> 1023 na vzdialené porty> 1023 (Server posiela ACK (a údaje) na dátový port klienta)

Nasledujúca tabuľka by mala pomôcť správcom zapamätať si, ako jednotlivé režimy FTP fungujú:
Aktívny FTP:
príkaz: klient> 1023 -> server 21
údaje: klient> 1023<- server 20

Pasívny FTP:
príkaz: klient> 1023 -> server 21
údaje: klient> 1023 -> server> 1023

Rýchle zhrnutie výhod a nevýhod aktívneho vs. pasívny FTP je tiež v poriadku:

Aktívny FTP je výhodný pre správcu FTP servera, ale je škodlivý pre správcu na strane klienta. FTP server sa pokúša nadviazať spojenie s náhodnými vysokými portami na klientovi, čo by takmer určite zablokoval firewall na strane klienta. Pasívny FTP je výhodný pre klienta, ale škodlivý pre správcu FTP servera. Klient vytvorí obe pripojenia k serveru, ale jedno z nich bude na náhodný vysoký port, ktorý by bol takmer určite blokovaný firewallom na strane servera.

Našťastie existuje určitý kompromis. Keďže správcovia serverov FTP budú musieť sprístupniť svoje servery čo najväčšiemu počtu klientov, takmer určite budú musieť podporovať pasívny FTP. Vystavenie vysokoúrovňových portov na serveri možno minimalizovať špecifikovaním obmedzeného rozsahu portov, ktoré má FTP server použiť. Takže všetko okrem tohto rozsahu portov môže byť na strane servera zabezpečené firewallom. Aj keď to nevylučuje všetky riziká pre server, výrazne to znižuje.