Telnet

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 27. března 2016; kontroly vyžadují 30 úprav .
telnet
název SÍŤ TELEtype
Úroveň (podle modelu OSI ) Aplikovaný
Rodina TCP/IP
Port/ID 23/TCP
Účel protokolu virtuální textový terminál
Specifikace RFC 854 / STD 8
Hlavní implementace (klienti) telnet (Unix)
PuTTY , telnet.exe (Windows) [1]
Implementace jádra ( servery ) telnetd, MS Telnet
Rozšiřitelnost Možnosti ( RFC 855 )
 Mediální soubory na Wikimedia Commons

TELNET (zkráceně z anglického  tel etype net work ) je síťový protokol pro implementaci textového terminálového rozhraní po síti (ve své moderní podobě využívající TCP transport ). Název "telnet" je také používán některými nástroji, které implementují klientskou stranu protokolu. Aktuální standard protokolu je popsán v RFC 854 .

Provádí funkce protokolu aplikační vrstvy modelu OSI . Protokol telnet byl používán pro vzdálenou správu různých síťových zařízení a softwarových serverů , ale kvůli bezpečnosti ustoupil ssh . Může to však být jediný způsob interakce prostřednictvím cli s vestavěnými systémy, jako jsou směrovače , protože nemají ssh.

Úvod

Účelem protokolu TELNET je poskytnout poměrně obecné, obousměrné, osmibitové, bajtově orientované komunikační médium. Jeho hlavním účelem je umožnit koncovým zařízením a terminálovým procesům vzájemnou komunikaci. Předpokládá se, že tento protokol může být použit pro komunikaci mezi terminály ("propojení") nebo komunikaci mezi procesy ("distribuované výpočty").

Zařízení

Přestože relace Telnet má stranu klienta a stranu serveru, protokol je ve skutečnosti zcela symetrický. Po navázání transportního spojení (obvykle TCP) hrají oba jeho konce roli „síťových virtuálních terminálů“ ( angl.  Network Virtual Terminal , NVT), vyměňují si dva typy dat:

Přestože je relace Telnet přes TCP ze své podstaty plně duplexní , s NVT by se mělo ve výchozím nastavení zacházet jako s poloduplexním zařízením pracujícím v režimu vyrovnávací linky.

Aplikační data procházejí protokolem beze změn [2] , to znamená, že na výstupu druhého virtuálního terminálu vidíme přesně to, co bylo zadáno na vstupu prvního. Z hlediska protokolu jsou data jednoduše posloupností bajtů ( oktetů ), ve výchozím nastavení patřících do sady ASCII , ale se zapnutou volbou Binární  libovolná . Ačkoli byla pro identifikaci znakové sady navržena rozšíření [3] , v praxi se nepoužívají.

Všechny hodnoty oktetu dat aplikace jiné než \377 (dekadicky: 255) jsou přenášeny tak, jak jsou. Oktet \377 je přenášen jako sekvence \377\377 dvou oktetů. Je to proto, že oktet \377 používá transportní vrstva ke kódování voleb.

Možnosti

Protokol ve výchozím nastavení poskytuje minimální funkčnost a sadu možností, které ji rozšiřují. Princip stanovených možností vyžaduje, aby se jednání provádělo při zapnutí každé z možností. Jedna strana iniciuje žádost a druhá strana může nabídku buď přijmout, nebo odmítnout. Pokud je žádost přijata, možnost nabude účinnosti okamžitě. Možnosti jsou popsány odděleně od samotného protokolu a jejich podpora softwarem je libovolná. Protokolový klient (síťový terminál) je instruován, aby odmítl požadavky na zahrnutí nepodporovaných a neznámých možností.

NVT tiskárna a klávesnice

Tiskárna NVT má nespecifikovanou šířku vozíku a délku stránky a musí reprezentovat všech 95 tisknutelných znaků US-ASCII (kódy 32 až 126). Řídicí znaky mají následující význam:

název Kód (desetinný/hexadecimální) Popis
NULL (NUL) * 0/0x00 Žádná operace.
Řádkový posuv (LF) * 10/0x0A Posune tiskárnu na další tiskový řádek, přičemž zůstane ve stejné horizontální poloze.
Carriage Return (CR) * 13/0x0D Přesune tiskárnu k levému okraji aktuálního řádku.
BELL (BEL) 7/0x07 Vytváří zvukový nebo obrazový signál (ale NEPOHYBUJE tiskovou hlavou).
Back Space (BS) 8/0x08 Posune tiskovou hlavu o jeden znak směrem k levému okraji.
Vodorovná karta (HT) 9/0x09 Přesune tiskárnu na další vodorovnou zarážku tabulátoru. Není definováno, jak strana definuje a nastavuje tyto zarážky tabulátoru.
Vertikální karta (VT) 11/0x0B Přesune tiskárnu na další svislou zarážku tabulátoru. Není definováno, jak strana definuje a nastavuje tyto zarážky tabulátoru.
Zdroj formuláře (FF) 12/0x0C Přesune tiskárnu do horní části další stránky, přičemž zůstane ve stejné vodorovné poloze.

Je vyžadována podpora akce znaků označených jako *. Ostatní mohou provést danou akci nebo neprovést žádnou; jedna strana nemusí předpokládat nic konkrétního ohledně podpory druhé strany pro určité volitelné řídicí znaky.

Se sekvencí „CR LF“ se musí zacházet jako s jedním znakem nového řádku a musí se používat vždy, když je vyžadována jejich kombinovaná akce; sekvence "CR NUL" by měla být použita tam, kde je vyžadován pouze návrat vozíku; v jiných kontextech je třeba se vyvarovat použití znaku CR.

Struktura příkazů Telnet

Každý příkaz TELNET je vícebajtová sekvence začínající \377 (desetinně: 255) kódem "Interpret as Command" (IAC) a kódem příkazu. Příkazy odpovědné za vyjednávání možností jsou tříbajtové sekvence, kde třetí bajt je kód možnosti. Následující kódy a sekvence kódů mají svůj příslušný význam pouze tehdy, když bezprostředně následují za IAC.

název Kód (desetinný/hexadecimální) Popis
SE 240/0xF0 Ukončí vyjednávání zahájené příkazem SB.
NOP 241/0xF1 Žádná operace.
datová značka 242/0xF2 Synchronizační (Synch) výměna dat. Po tomto příkazu vždy následuje upozornění TCP Urgent.
Přestávka 243/0xF3 Je stisknuto tlačítko "Break" nebo "Attention".
Přerušit proces 244/0xF4 Pozastaví, přeruší, přeruší nebo ukončí proces.
Přerušit výstup 245/0xF5 Potlačí výstup aktuálního procesu. Uživateli také posílá synchronizační signál.
Jsi tam 246/0xF6 Odešle zpět terminálovou odpověď obsahující tisknutelné znaky.
Vymazat znak 247/0xF7 Příjemce by měl odstranit předchozí znak, pokud je to možné.
Vymazat řádek 248/0xF8 Vymažte poslední zadaný řádek, tedy všechna data přijatá po posledním novém řádku.
pokračuj 249/0xF9 Čeká se na přenos dat.
SB 250/0xFA Začátek vyjednávání možností vyžadující předání parametru.
možnost WILL  251/0xFB Označuje přání provést nebo potvrzuje, že zadaná možnost se aktuálně provádí.
Nebude  možnost 252/0xFC Označuje selhání při spuštění nebo pokračování v provádění zadané volby.
možnost DO  253/0xFD Žádost, aby druhá strana provedla nebo potvrdila uplatnění uvedené opce.
Možnost NE  254/0xFE Požadavek, aby druhá strana zastavila provádění nebo potvrdila, že zadaná možnost již není prováděna.
IAC 255/0XFF Datový bajt 255.

Aplikace

Historicky se Telnet používal pro vzdálený přístup k rozhraní příkazového řádku operačních systémů . Následně byl použit pro další textová rozhraní, až po hry MUD a animované ASCII-art . Teoreticky dokonce obě strany protokolu mohou být nejen lidé, ale i programy.

Klienti telnet se někdy používají pro přístup k jiným protokolům založeným na přenosu TCP, viz Telnet a další protokoly .

Protokol telnet se používá v řídicím spojení FTP , to znamená, že vstup na server s příkazem telnet ftp.example.net ftpk provedení ladění a experimentů je nejen možný, ale také správný (na rozdíl od použití klientů telnet pro přístup k HTTP, IRC a většině dalších protokolů ).

Telnet je spolu s HTTP hlavním protokolem pro vzdálenou práci se síťovým zařízením (spravované přepínače a routery) a na rozdíl od webového rozhraní poskytuje plný přístup k funkčnosti zařízení, ale zároveň vyžaduje od specialisty dovednosti příkazového řádku.

Zabezpečení

Protokol neumožňuje použití šifrování ani autentizace dat. Proto je zranitelný vůči jakémukoli druhu útoku , na který je zranitelný jeho transport, tedy protokol TCP. Pro funkčnost vzdáleného přístupu do systému je v současnosti využíván síťový protokol SSH (zejména jeho verze 2) , při jehož tvorbě byl kladen důraz na bezpečnost. Mějte tedy na paměti, že relace Telnetu je značně nezabezpečená, pokud není v plně řízené síti nebo se zabezpečením síťové vrstvy (různé implementace virtuálních privátních sítí ). Kvůli nespolehlivosti Telnetu jako prostředku pro správu operačních systémů se od nich dlouho upustilo.

Telnet a další protokoly

V komunitě internetových technologií se klient Telnet někdy používá k poskytování ručního přístupu (například pro účely ladění) k protokolům aplikační vrstvy, jako je HTTP , IRC , SMTP , POP3 a dalším textovým protokolům založeným na přenosu TCP. Použití klienta telnet jako klienta TCP však může způsobit následující nežádoucí účinky:

Programy jako netcat sice poskytují čistý TCP přístup, ale pro předání řádku jako CR LF (což je vyžadováno mnoha protokoly) jsou vyžadovány speciální triky (nějak stty -icrnlv systému UNIX ). Klient Telnetu obvykle standardně odešle jakýkoli nový řádek jako CR LF bez ohledu na jeho kódování v systému klienta. Také pro ladění přístupu k aplikačním protokolům (kromě FTP a vlastně Telnetu) můžete použít klienta PuTTY v režimu Raw (čistý přístup k TCP) - PuTTY převádí zalomení řádků odděleně od podpory protokolu Telnet.

Odkazy

Poznámky

  1. Nachází se v%SystemRoot%\System32\telnet.exe
  2. Data mohou být změněna (např. může být vynulován nejvýznamnější bit), pokud vstup jednoho terminálu přijal data, jejichž přijetí nebylo potvrzeno druhým.
  3. RFC 2066  – Telnet Charset Option