Set-top-boxy
Parfémy
Krása
Produkty pro zdraví
Hodinky
Elektro
Šperky
Nábytek
Nářadí a zahrada
Outdoor
Počítače a notebooky
| Internetové protokoly |
| Aplikační vrstva |
|---|
| Transportní vrstva |
| Síťová vrstva |
| Linková vrstva |
| Fyzická vrstva |
FTP (anglicky File Transfer Protocol) je v informatice protokol aplikační vrstvy z rodiny TCP/IP. Je určen pro přenos souborů mezi počítači, na kterých mohou běžet rozdílné operační systémy (je platformně nezávislý). Definován je v RFC 959 a rozšířen byl v RFC 2228. Jeho podpora je součástí webových prohlížečů nebo specializovaných programů.
Obsah |
FTP je jeden z nejstarších protokolů, na principu klient-server, využívá porty TCP/21 a TCP/20. Port 21 slouží k řízení a jsou jím také přenášeny příkazy FTP. Port 20 slouží k vlastnímu přenosu dat, který je 8bitový. Přenos může být binární nebo ascii (textový). Při textovém přenosu dochází ke konverzi konců řádků – CR/LF (DOS, Microsoft Windows) nebo jen LF (unixové systémy), pokud jsou koncové systémy rozdílné. Při binárním přenosu není do dat nijak zasahováno.
Protokol je interaktivní a umožňuje řízení přístupu (přihlašování login/heslo), specifikaci formátu přenášeného souboru (znakově - binárně), výpis vzdáleného adresáře atd. V současné době už není považován za bezpečný a z tohoto důvodu pro něj byla definována některá rozšíření (RFC 2228).
V protokolu je použit model klient-server. FTP server poskytuje data pro ostatní počítače. Klient se k serveru připojí a může provádět různé operace (výpis adresáře, změna adresáře, přenos dat atd.). Operace jsou řízeny sadou příkazů, které jsou definovány v rámci FTP protokolu, proto kdokoliv může vytvořit klienta pro jakékoliv prostředí nebo operační systém. Existuje mnoho programů pro FTP servery i klienty a mnoho je jich volně dostupných.
FTP běžně pracuje na dvou portech, 21 a 20 a běží výhradně přes TCP (Transmission control protocol). FTP server naslouchá na portu 21 na příchozí spojení z FTP klienta. Na tomto portu běží příkazy, které zachytává server. Na portu 20 se přenáší pouze data, nikoliv příkazy. Jakmile se začnou stahovat data, na příkazovém portu se nic nepřenáší. Při stahování velkých souborů přes připojení s firewallem může tento kvůli dlouhodobé nečinnosti zablokovat komunikaci na portu 21.
První co musíte udělat je stáhnout si FTP klienta. Mnoho operačních systémů má již integrovaný nějaký tento program. Pro spuštění FTP klienta ve Windows otevřete příkazovou řádku (klikněte na tlačítko Start, potom na Spustit, do okénka napište CMD a potvrďte stiskem klávesy Enter). Napište FTP a odešlete. Nyní se můžete příkazem open název serveru připojit k ftp server. např.:
open ftp.freebsd.org
Nyní jste připojeni na server ftp.freebsd.org. Tento server podporuje anonymní připojení, takže jméno uživatele může být třeba „ftp“ nebo „anonymous“ a heslo emailová adresa (nebo může být prázdné, někdy je vyžadován alespoň znak „@“). Jestliže server nepodporuje anonymní přihlašování, musíte jako jméno a heslo zadat údaje získané od administrátora serveru nebo pověřené osoby. Např:
user ftp
další informace můžete zobrazit napsáním příkazu „help“. Naprostá většina anonymních serverů umožňuje pouze čtení dat, takže umožní jen stažení souborů do vašeho počítače, u některých funguje i nahrávání dat na server.
Někdy je potřeba okamžitě odkázat na ftp server, který je zabezpečený heslem a neposílat přihlašovací údaje zvlášť. (Např. u webového prohlížeče) Adresa pak má následující tvar:
ftp://<uživatelské jméno>:<heslo>@<adresa serveru + adresář>
Nejčastější užití ftp přenosů jsou:
FTP je nejčastěji používáno lidmi, kteří chtějí mít přístup na systém souborů na jiném počítači. To je nejčastěji realizováno přes programy na používání FTP, u kterých si nemusíme pamatovat strukturu příkazů a pracují velice podobně jako běžný průzkumník (např. oblíbený Total Commander také podporuje FTP).
Při běžném připojování pomocí protokolu FTP jsou přihlašovací údaje (jméno a heslo) přenášeny v textové podobě a je technicky možné je odchytit. Následně mohou být data zcizena nebo upravena. Často se vyskytují zprávy o tom/, jak se hackeři nabourali do serverů a nezřídka jim k tomu stačil tak triviální úkon, jakým je zachycení nešifrovaného FTP hesla. Netřeba zdůrazňovat, že následky těchto útoků mohou mít katastrofální dopad. V dnešní době je dostupný tzv. FTPS, který je zpětně kompatibilní s běžným FTP.
Příkazy lze rozdělit do tří skupin:
Připojení k FTP serveru je možné realizovat v aktivním nebo pasivním režimu. Pasivní režim je bezpečnější, ale ne vždy je technicky realizovatelný.
Na portu TCP/20 jsou přenášena data (data connection). V aktivním režimu navazuje připojení pro přenos dat server, klient naslouchá. Problém zpravidla nastává v případě, kdy se klient připojuje z privátní sítě a jeho IP adresa je překládána (NAT).
V pasivním režimu navazuje data connection klient, kterému při sestavování připojení poslal server svou IP adresu a TCP port, na kterém naslouchá.
Pokud je připojení k FTP serveru realizováno prostřednictvím PF (nejčastěji se jedná o router s NAT a PF), tak router musí mít následující vlastnost - čte datovou část paketů FTP připojení, zjistí na jakém portu server naslouchá pro navázání data connection klientem a tento port začne forwardovat směrem k serveru. Po ukončení relace je ukončen i popsaný PF.
Routery mají zpravidla tuto vlastnost již vestavěnou. V případě systému Linux je nutné na routeru spustit příslušný modul - příkaz je 'modprobe nf_conntrack_ftp'
FTP přes SSH označuje tunelování FTP skrz spojení navázaného pomocí SSH protokolu. Někdy je též označováno jako Bezpečné FTP (Secure FTP), které by nemělo být zaměňováno za FTPS (tj. FTP s podporou SSL/TLS). Dalšími metodami bezpečného přenosu dat jsou SFTP a SCP, které využívají protokol SSH.
Protože protokol FTP používá dvě spojení, je velmi těžké zajistit, aby bylo tunelováno nejen řídící, ale i datové spojení. Pokud je FTP klient nastaven do pasivního režimu a instruován pro spojení se SOCKS serverem, které může SSH klient zajistit, může být dosaženo tunelování obou spojení.
Druhou možností je, aby SSH klient zasahoval do řídícího spojení podobně, jak je to nutné při průchodu FTP skrz NAT. Tuto funkci poskytuje 3. verze SSH Communications Security's software suite a program FONC distribuovaný pod GPL licencí.