Pochopení SFTP vs. FTPS vs. FTP

FTP nebo File Transfer Protocol je jednou z nejpopulárnějších metod přenosu dat dostupných pro různé případy použití.

FTP má k dispozici různé varianty zabezpečení, známé jako FTPS a SFTP, které zahrnují některé jemné a některé ne příliš jemné rozdíly v tom, jak fungují. Tyto rozdíly se týkají způsobu výměny dat, úrovně a typu zabezpečení v komunikaci a aspektů brány firewall.

Znalost toho, jak tyto protokoly fungují, a rozdíly mezi těmito oblíbenými přenosovými mechanismy vám mohou pomoci vybrat, který z nich nejlépe vyhovuje vašim potřebám.

FTP

FTP je desítky let starý protokol pro přenos souborů původně navržený podle RFC 114. Později se vyvinul jako RFC 959, což je dnes standard používaný.

FTP funguje na dvou kanálech pro výměnu informací: jeden pro příkazy a druhý pro data. To vyžaduje pro fungování FTP dva porty – příkazový kanál a datový kanál.

Příkazový kanál funguje na portu 21, který přijímá připojení od klientů a zpracovává předávání příkazů. Příkazový kanál zůstává otevřený po celou dobu trvání FTP relace, dokud klient neodešle příkaz QUIT nebo dokud se server násilně neodpojí z důvodu nečinnosti nebo jiného možného důvodu.

Datový kanál používá dočasný port na vyžádání naslouchající na serveru (pasivní režim) nebo na klientovi (aktivní režim). Tento kanál je zodpovědný za sdílení skutečných dat mezi serverem a klientem ve formě výpisů adresářů a přenosů souborů.

Na rozdíl od příkazového kanálu zůstává datový kanál otevřený pouze po dobu přenosu souboru a jakmile skončí, je datový kanál uzavřen. Pro současný přenos více souborů nebo výpisů adresářů je zapotřebí více portů datových kanálů.

FTP je ze své podstaty nezabezpečený protokol, protože jak příkazové, tak datové kanály přenášejí informace v nešifrované podobě, která je snadno náchylná k zachycení kýmkoli pomocí útoků typu man-in-the-middle.

  Jak uzamknout prezentaci PowerPoint před úpravou

Jak již bylo zmíněno dříve, FTP vyžaduje pro příkazový kanál příchozí připojení na portu 21/tcp na straně serveru. Pasivní rozsah portů je definován pro přenos souborů a výpisy adresářů a umožňuje příchozí připojení. Tento proces definice se může lišit v závislosti na používaném FTP serveru. Další podrobnosti naleznete v jeho dokumentaci. Na straně klienta by mělo být povoleno odchozí připojení na portu 21/tcp spolu s pasivním rozsahem portů definovaným na serveru.

Autentizace na FTP

Informace o autentizaci FTP jsou předány přes příkazový kanál během počátečního navázání připojení. FTP může k ověřování používat uživatelské jméno a heslo, nebo může být anonymní, aby umožnil komukoli přihlásit se a přistupovat k serveru.

Aktivní a pasivní režim FTP

FTP používá pro nastavení připojení buď aktivní, nebo pasivní režim.

V aktivním režimu se uživatel připojí z náhodného portu na FTP klientovi k FTP portu 21/tcp na serveru a odešle příkaz PORT s uvedením klientského portu, ke kterému se má server připojit. Tento port bude použit pro datový kanál.

Server se poté připojí z portu 20/tcp na klientský port dříve určený klientem pomocí příkazu PORT. Tento datový kanál se pak používá pro přenos souborů mezi serverem a klientem.

V pasivním režimu se klient připojí z náhodného portu z FTP klienta k portu 21/tcp na serveru a odešle příkaz PASV. Server poté odpoví náhodným portem, který by měl být použit pro datový kanál. Klient pak použije jiný náhodný port pro připojení k portu, na který odpověděl server v předchozím kroku. Toto připojení datového kanálu se pak používá pro přenos souborů mezi serverem a klientem.

Takže v aktivním režimu je počáteční požadavek na připojení iniciován klientem, zatímco požadavek na připojení datového kanálu je iniciován serverem.

  Tento nástroj vám řekne vše, co o vás webům řekne váš prohlížeč

Na druhou stranu v pasivním režimu jsou jak počáteční požadavky na připojení, tak následné požadavky na datový kanál iniciovány klientem na server. Tento nepatrný rozdíl někdy ovlivňuje, jak brána firewall povoluje/blokuje tradiční požadavky FTP kvůli směru typu příchozího/odchozího připojení.

FTPS

I když jste ochotni podstoupit rizika spojená s FTP s nešifrovaným přenosem dat a útoky main-in-the-middle, průmyslové požadavky vás nutí používat bezpečnější alternativu, jako jsou FTPS a SFTP, které jsou srovnatelně mnohem bezpečnější.

V roce 1990, s měnícím se prostředím zabezpečení, vytvořil Netscape protokol SSL nebo Secure Sockets Layer (SSL, nyní známý jako TLS) pro ochranu komunikace po síti. SSL byl použit na FTP, který se stal FTPS nebo File Transfer Protocol Secure. FTPS nebo FTP/S běžně běží na portu 990/tcp, ale lze jej vidět i na portu 21/tcp. Podobně pro datový kanál je port 989/tcp společný port používaný pro FTPS. Pokud je příkazový port 21/tcp, očekává se, že jeho datový port bude 20/tcp.

Stejně jako FTP používá FTPS pro komunikaci dva kanály: příkazový a datový kanál. Buď lze datový kanál šifrovat pomocí FTPS, nebo lze pro větší bezpečnost zašifrovat jak příkazové, tak datové kanály.

FTPS, stejně jako FTP, také používá více portů pro příkazové a datové kanály. Port 21/tcp se tedy používá pro počáteční připojení a přenos autentizačních informací. Později budou pro nastavení datových kanálů pro každý požadavek klienta na přenos souborů nebo výpis adresáře potřeba různé porty. Proto, stejně jako FTP, potřebuje řadu portů, které mají být povoleny ve vašem firewallu.

Autentizace na FTPS

Autentizace pro FTPS funguje pomocí uživatelského jména a hesla spolu s certifikátem serveru pro šifrování. Když se klient FTPS připojí k serveru, zkontroluje, zda je certifikát serveru důvěryhodný, aby mohl pokračovat v připojení. Tento certifikát lze vyžádat od klienta i serveru.

  11 tipů pro práci z domova na Macu

SFTP

Na rozdíl od FTP a FTPS je SFTP (SSH File Transfer Protocol) zcela odlišný protokol postavený na SSH (neboli Secure Shell). SFTP ve výchozím nastavení funguje na portu 22/tcp, stejně jako SSH, i když jej lze nakonfigurovat tak, aby na serveru používal vlastní volný port.

SFTP je zabezpečený protokol FTP, který používá SSH k odesílání a přijímání souborů. SSH je zcela šifrovaný, SFTP je robustní a bezpečný způsob přenosu souborů přes síť.

SFTP, na rozdíl od FTP a FTPS, používá k přenosu příkazů a datového provozu jeden komunikační kanál, přičemž všechny jsou předávány v šifrované podobě spolu s počáteční autentizací.

Autentizace na SFTP

Autentizaci na SFTP lze provést pomocí jednoduchého uživatelského jména a hesla, ale na rozdíl od FTP jsou všechny informace včetně autentizačních údajů přenášeny šifrovaně přes síť.

SFTP také podporuje autentizaci pomocí páru klíčů SSH, kombinace soukromých a veřejných klíčů, kdy klient poskytuje soukromý klíč pro zadaného uživatele a server by měl mít odpovídající veřejný klíč, aby autentizace byla úspěšná. Je to bezpečnější než použití kombinace uživatelského jména a hesla. Je možné ověřit stejného uživatele pomocí hesla a klíčů SSH, pokud jsou na serveru SFTP nakonfigurovány obě metody.

souhrn

Tento článek shrnuje základní funkce různých oblíbených protokolů pro přenos souborů, jmenovitě FTP, FTPS a SFTP, a zdůrazňuje jemné a hlavní rozdíly mezi těmito protokoly. Pokrývá porty, které je třeba povolit ve bráně firewall pro nastavení funkčního serveru FTP/FTPS/SFTP, a zároveň zdůrazňuje potřebu přechodu na bezpečnější protokoly, jako jsou FTPS a SFTP.

Když zde říkám FTP, mám na mysli všechny diskutované protokoly v tomto článku. Důvodem je, že FTP je starý desítky let a dokonce i novější zabezpečené verze jsou někdy označovány jako FTP místo jejich určeného názvu pro každodenní použití.

Také by vás mohlo zajímat znát nejlepší FTP serverový software a FTP/SFTP klienty.