Bezpečnější možnost vzdáleného přístupu [2023]

V dnešní digitální době, kdy je vzdálený přístup klíčový, se uživatelé i správci systémů spoléhají na nástroje, které zajišťují bezpečnost, spolehlivost a rychlost vzdálené práce.

Když se mluví o metodách vzdáleného připojení, dvě technologie se často objevují na předních místech: SSH a Telnet.

Je tedy lepší SSH nebo Telnet? Tento článek se zaměří na porovnání těchto dvou protokolů, abychom zjistili, který z nich je pro vzdálený přístup vhodnější. Pojďme se tedy podívat na srovnání SSH a Telnetu.

Co je to vzdálený přístup?

Vzdálený přístup umožňuje uživatelům nebo administrátorům připojovat se k počítačům nebo zařízením v sítích z jakéhokoli místa na světě prostřednictvím internetu. Díky tomu mohou provádět různé operace, jako je přenos souborů, spolupráce na projektech nebo zabezpečení běhu aplikací.

Vzdálený přístup je pro organizace klíčový pro jejich přežití a úspěšné fungování. Navíc správci potřebují kvalitní vzdálený přístup pro správu serverů, sítí a aplikací, aniž by museli fyzicky navštěvovat datová centra.

Co je SSH?

Secure Shell, zkráceně SSH, je síťový protokol, který umožňuje bezpečnou komunikaci mezi počítači v nezabezpečené síti.

Po navázání bezpečného spojení se uživatel nebo správce může přihlásit ke vzdálenému počítači, spouštět aplikace na dálku nebo používat šifrované spojení pro přenos souborů přes síť.

SSH zahrnuje celou sadu technologií a nástrojů, které tento protokol implementují. Bezpečnost SSH je zajištěna různými technikami, jako je autentizace pomocí veřejného klíče, šifrovaná komunikace a silná hesla.

Původní vývoj SSH je spojen se společností Netscape Communications Corporation, avšak finský počítačový vědec Tatu Ylonen přišel s prvními návrhy SSH. Impulsem pro něj byl objev nezabezpečených hesel v jeho nově vytvořené síti.

Jak funguje SSH?

SSH nahradil starší protokoly pro vzdálené připojení, jako jsou Telnet, rlogin, rsh atd. Ačkoli se jednalo o populární protokoly, postrádaly bezpečnost. SSH je tak kvalitní, že jej uživatelé upřednostňují před protokoly pro přenos souborů, jako je vzdálené kopírování (rcp) a protokol pro přenos souborů (FTP).

SSH pracuje na principu klient-server, kdy se SSH klient připojuje k SSH serveru.

  • SSH klient je program, který běží na počítači nebo zařízení a spouští protokol SSH. Klient odesílá požadavek SSH serveru a čeká na jeho přijetí. Pro ověření a zajištění připojení ke správnému serveru využívá SSH klient šifrování pomocí veřejného klíče. Díky tomu se útočníci nemohou vydávat za server a krást citlivé údaje od klienta.
  • SSH server zpracovává příchozí připojení SSH a spouští patřičnou službu. SSH server naslouchá na TCP portu 22 (ve výchozím stavu) a čeká na příchozí požadavky. Po obdržení požadavku na něj reaguje. Server také kontroluje a ověřuje klienta pomocí autentizace veřejným klíčem. Teprve po úspěšné autentizaci získá klient přístup do hostitelského systému.

Klient a server si vyjednávají způsob šifrování a mohou deaktivovat slabší šifrovací metody. SSH také podporuje více připojení, což umožňuje provádět různé úkoly (stahování, úpravy nebo spouštění aplikací) prostřednictvím jediného SSH spojení.

Syntaxe SSH je následující:

$ ssh [email protected]

Zde je user_name uživatelské jméno, které používáte pro připojení k hostiteli. Hostitel může být IP adresa nebo doménové jméno.

Zjednodušeně lze tok SSH popsat takto:

  • SSH klient inicializuje připojení ke konkrétnímu SSH serveru.
  • SSH server přijme připojení a odešle svůj veřejný klíč klientovi.
  • Klient uloží veřejný klíč serveru do svého souboru hostitele (pro budoucí připojení).
  • Server a klient si poté vyjednají a nastaví parametry připojení.
  • SSH nabízí robustní konektivitu s vysokou úrovní zabezpečení a ochranou integrity dat. Díky dodržování standardů IETF je v posledních 15 letech neměnný a spolehlivý.

    Pokud máte zájem o technické detaily SSH, podívejte se na standardizační dokument SSH RFC 4253 a článek od Wdzwdz o pochopení SSH.

    Co je Telnet?

    Telnet je zkratka pro Teletype Network. Jedná se o další populární síťový protokol, který umožňuje vzdálené připojení přes rozhraní příkazového řádku. Podobně jako SSH jej můžete použít k získání vzdálené kontroly a provádění různých akcí. Avšak postrádá bezpečnostní prvky, které SSH nabízí.

    Nedostatek zabezpečení je dán tím, že v době svého vzniku v roce 1969 probíhala většina komunikace v místní síti, která byla v porovnání s dnešním internetem považována za bezpečnou.

    Jak funguje Telnet?

    Telnet funguje tak, že vytváří textovou komunikaci mezi terminály klienta a serveru. Využívá model klient-server s osmibajtovým připojením.

    Po navázání spojení můžete na vzdáleném počítači provádět různé operace, jako je kontrola otevřených portů, konfigurace zařízení, úpravy souborů a dokonce i spouštění programů.

    Syntaxe Telnetu je:

    $ telnet hostname port

    Pro více informací o Telnetu si můžete přečíst článek o příkazech Telnetu pro testování a odstraňování problémů s připojením.

    Kdy a kde byste měli používat SSH?

    SSH se primárně používá pro:

    • Vzdálenou správu systémů
    • Vzdálené spouštění příkazů
    • Zabezpečení provozu aplikací
    • Přenos souborů

    Správci mohou také nastavit automatizované SSH relace, které zpracovávají opakující se úkoly, jako je vytváření síťových záloh, shromažďování souborů s protokoly, pravidelná údržba a podobně.

    SSH by se měl používat pro všechny operace vzdáleného připojení, zejména v nezabezpečené síti, a to především v internetu. SSH je také skvělou volbou pro použití v lokální síti, protože nikdy si nemůžete být jisti, zda je vaše lokální síť zcela bezpečná.

    Kdy a kde byste měli používat Telnet?

    Vzhledem k tomu, že Telnet není zabezpečený, je lepší se vyhnout jeho používání pro vzdálené připojení v nezabezpečené síti. Nicméně to neznamená, že by byl Telnet úplně zbytečný.

    Telnet můžete použít k následujícím účelům:

    • Řešení problémů s SSH (ano, čtete správně 😃)
    • Řešení problémů s FTP, SMTP a webovými servery
    • Kontrola, zda je port otevřený nebo ne
    • Přístup k důvěryhodným vnitřním sítím

    SSH vs. Telnet

    V této sekci porovnáme SSH a Telnet podle různých kritérií. Pokud spěcháte, podívejte se na následující srovnávací tabulku.

    SSH Telnet
    Bezpečnost Vysoce bezpečné, klient a server si mohou dohodnout šifrovací algoritmy. Nezabezpečené, chybí mechanismus pro zabezpečení připojení a paketů.
    Autentizace SSH využívá pro ověření šifrování pomocí veřejného klíče. Telnet nemá autentizační mechanismus. Jednoduše se zeptá na uživatelské jméno/heslo, které se přenášejí bez ochrany.
    Port SSH ve výchozím stavu používá TCP port 22. Lze jej změnit, aby se zabránilo neoprávněnému přístupu. Telnet ve výchozím nastavení používá port 23. Lze jej nakonfigurovat, aby byl chráněn před neoprávněným přístupem.
    Model Model klient-server. Model klient-server.
    Rychlost přenosu dat Technicky pomalejší než Telnet, ale v reálném provozu rozdíl není takřka vnímatelný. Rychlejší než SSH díky absenci bezpečnostních protokolů.

    Bezpečnost

    SSH je velmi bezpečný protokol. Udržuje vaše připojení v bezpečí pomocí moderních šifrovacích protokolů. Telnet však postrádá jakákoli bezpečnostní opatření.

    U SSH mohou klient a server vyjednat parametry připojení, včetně šifrovacích algoritmů. To umožňuje zablokovat slabé šifrovací metody a zajistit co nejbezpečnější SSH připojení.

    Po vytvoření TCP/UDP spojení mezi klientem a serverem se zahájí proces vytvoření bezpečného připojení.

    Abychom lépe pochopili, jak funguje zabezpečení SSH, podívejme se na strukturu balíčku SSH. Paket SSH se skládá z pěti komponent, a to:

    • Délka paketu: 4 bajty, určuje velikost celého balíku.
    • Množství výplně: 1 bajt, udává, kolik je v balíku výplně.
    • Payload: Skutečná přenášená data, velikost se liší.
    • Výplň: Reálná výplň, nikoli její velikost, jak bylo uvedeno výše. Jde o náhodné bajty zkombinované s daty pro zvýšení šifrování.
    • Ověřovací kód zprávy: Značka pro ověření autenticity balíku a zajištění toho, aby se data nepozměnila.

    Při použití šifrování v SSH je čitelná pouze délka paketu a ověřovací kód. Klient a server si vyjednají parametry připojení pomocí ověřovacího kódu zprávy. Dále mohou být SSH pakety komprimovány pomocí různých kompresních algoritmů.

    Telnet postrádá zabezpečení. Pro připojení klienta a serveru používá nezabezpečenou autentizaci. Jakýkoli útočník si může balíček Telnet přečíst a zkompromitovat tak připojení.

    Autentizace

    SSH je zabezpečený protokol, který pro ověření klienta a serveru spoléhá na šifrování pomocí veřejného klíče. Technicky se dá říci, že SSH může používat asymetrické nebo symetrické kryptografické algoritmy pro spárování veřejných a soukromých klíčů.

    Na druhé straně Telnet nemá žádnou ochranu pro ověřování. Jeho autentizační proces vyžaduje před připojením uživatelské jméno a heslo. Ty se posílají bez zabezpečení, takže k nim může mít přístup každý.

    Provoz

    Co se týče provozu, SSH standardně běží na TCP portu 22. Telnet využívá TCP port 23. Při používání SSH nebo Telnetu není potřeba zadávat číslo portu. Příkaz se automaticky pokusí připojit na porty 22, respektive 23.

    Tyto porty jsou však dobře známé a hackeři je mohou využít k neoprávněnému přístupu.

    Pro překonání tohoto problému můžete u SSH i Telnetu změnit porty, na kterých běží. Nejlepší je uzavřít standardní porty a vybrat si porty v rozmezí 1024 až 65535.

    V Telnetu jsou příkazy odesílány ve formátu Network Virtual Terminal (NVT). Telnet server dokáže tomuto formátu porozumět. Jak vidíme, zde se nepoužívá žádné šifrování ani ověřování.

    U SSH, jakmile je navázáno spojení klient-server, vygeneruje se relace a identifikuje se pomocí klíče relace. Tento klíč šifruje komunikaci, dokud relace neskončí. Server navíc musí ověřit klienta, což se provádí vygenerováním páru SSH klíčů. Po dokončení ověření se vytvoří šifrovaný kanál pro bezpečný přenos dat.

    Model

    SSH i Telnet používají model klient-server. Ten přináší několik výhod, například:

    • Může se škálovat horizontálně, kdy server může v případě potřeby přidávat další zdroje.
    • Klienti mohou být optimalizováni pro správné zadávání dat.
    • Rozděluje zpracování aplikací mezi klienta a server.

    Rychlost a režie

    Pro skutečné pochopení rozdílů mezi SSH a Telnetem musíme prozkoumat i jejich režii. Obecně platí, že SSH má větší režii než Telnet, ale v reálném provozu je rozdíl minimální a téměř neznatelný.

    Technicky Telnet i SSH provádějí obnovu klíčů po 1 hodině připojení nebo 1 GB přenesených dat.

    Z hlediska šířky pásma má SSH vyšší režii, ale má minimální dopad na uživatele. Co se týče zatížení procesoru klienta i serveru, režie je minimální, díky tomu, jak standard AES funguje v SSH připojení.

    Ve stručnosti řečeno, SSH a Telnet se vizuálně neliší v rychlosti a režii. Technicky však SSH nese určitou režii navíc oproti Telnetu.

    Případy použití SSH a Telnetu

    V této sekci se podíváme na konkrétní případy použití SSH a Telnetu.

    Případy použití SSH:

    Mezi typické příklady patří:

    • Vzdálené spouštění příkazů
    • Bezpečný přístup ke zdrojům vzdáleného počítače
    • Vzdálený přenos souborů
    • Vzdálené aktualizace softwaru
    • Nastavení automatizovaných přenosů souborů, případně manuální přenosy

    Případy použití Telnetu:

    Mezi typické příklady patří:

    • Řešení problémů s SSH
    • Řešení problémů s FTP, SMTP a webovými servery
    • Kontrola, zda je port otevřený, nebo ne
    • Přístup k důvěryhodným lokálním sítím

    Závěrečné myšlenky: Který z nich je lepší?

    SSH je jasně lepší volbou. Jedná se o moderní a aktualizovaný síťový protokol, který zajišťuje bezpečný vzdálený přístup. Doposud nebyly v SSH nalezeny žádné bezpečnostní mezery. Také se snadno používá a nastavuje.

    Telnet, na druhé straně, se postupně vytrácí. Je starý téměř 50 let. V dnešních podmínkách je však stále užitečný, a to například pro odstraňování problémů s SSH nebo ke kontrole, zda je otevřený port. Administrátoři mohou Telnet využít k řešení většiny síťových problémů.