telnet | |
---|---|
namn | TELEtyp NÄTVERK |
Nivå (enligt OSI-modellen ) | Applicerad |
Familj | TCP/IP |
Port/ID | 23/TCP |
Syftet med protokollet | virtuell textterminal |
Specifikation | RFC 854 / STD 8 |
Huvudsakliga implementeringar (klienter) |
telnet (Unix) PuTTY , telnet.exe (Windows) [1] |
Kärnimplementationer ( servrar ) | telnetd, MS Telnet |
Expanderbarhet | Alternativ ( RFC 855 ) |
Mediafiler på Wikimedia Commons |
TELNET (förkortat från engelska tel etype net work ) är ett nätverksprotokoll för att implementera ett textterminalgränssnitt över ett nätverk (i sin moderna form, med TCP- transport ). Namnet "telnet" används också av vissa verktyg som implementerar klientsidan av protokollet. Den aktuella protokollstandarden beskrivs i RFC 854 .
Utför funktionerna för ett applikationslagerprotokoll av OSI-modellen . Telnet-protokollet användes för fjärradministration av olika nätverksenheter och mjukvaruservrar , men har gett vika för ssh på grund av säkerheten. Det kan dock vara det enda sättet att interagera via cli med inbyggda system, såsom routrar , eftersom de inte har ssh.
Syftet med TELNET-protokollet är att tillhandahålla ett ganska allmänt, dubbelriktat, åtta-bitars, byte-orienterat kommunikationsmedium. Dess huvudsakliga syfte är att tillåta terminalenheter och terminalprocesser att kommunicera med varandra. Det är avsett att detta protokoll kan användas för terminal-till-terminal-kommunikation ("bonding") eller process-to-process-kommunikation ("distributed computing").
Även om en Telnet-session har en klientsida och en serversida är protokollet faktiskt helt symmetriskt. Efter att ha upprättat en transportförbindelse (vanligtvis TCP), spelar båda ändarna av den rollen som "virtuella nätverksterminaler" ( eng. Network Virtual Terminal , NVT), och utbyter två typer av data:
Även om en Telnet-session över TCP i sig är full duplex bör NVT behandlas som en halvduplexenhet som arbetar i buffrat linjeläge som standard.
Applikationsdata passerar genom protokollet utan ändringar [2] , det vill säga vid utgången av den andra virtuella terminalen ser vi exakt vad som matades in vid ingången till den första. Ur protokollets synvinkel är data helt enkelt en sekvens av byte ( oktetter ), som som standard tillhör ASCII- uppsättningen , men med alternativet Binär aktiverat , alla. Även om tillägg har föreslagits för teckenuppsättningsidentifiering [3] används de inte i praktiken.
Alla applikationsdataoktettvärden andra än \377 (decimal: 255) skickas över transporten som den är. \377-oktetten sänds som en \377\377-sekvens av två oktetter. Detta beror på att \377-oktetten används av transportlagret för att koda alternativ.
Protokollet tillhandahåller som standard den minsta funktionaliteten och en uppsättning alternativ som utökar den. Principen om stipulerade optioner kräver att förhandlingar genomförs när vart och ett av alternativen aktiveras. Den ena sidan initierar begäran, och den andra sidan kan antingen acceptera eller avslå erbjudandet. Om begäran accepteras träder alternativet i kraft omedelbart. Alternativen beskrivs separat från själva protokollet, och deras stöd av programvaran är godtyckligt. Protokollklienten (nätverksterminalen) instrueras att avvisa förfrågningar om att inkludera ostödda och okända alternativ.
NVT-skrivaren har en ospecificerad vagnbredd och sidlängd och måste representera alla 95 utskrivbara US-ASCII-tecken (koderna 32 till 126). Kontrolltecken har följande betydelser:
namn | Kod (decimal/hexadecimal) | Beskrivning |
---|---|---|
NULL (NUL)* | 0/0x00 | Ingen operation. |
Linjematning (LF)* | 10/0x0A | Flyttar fram skrivaren till nästa utskriftsrad medan den förblir i samma horisontella position. |
Carriage Return (CR) * | 13/0x0D | Flyttar skrivaren till den vänstra kanten av den aktuella raden. |
BELL (BEL) | 7/0x07 | Producerar en ljud- eller videosignal (men flyttar INTE skrivarhuvudet). |
Back Space (BS) | 8/0x08 | Flyttar skrivarhuvudet ett tecken mot vänstermarginalen. |
Horisontell flik (HT) | 9/0x09 | Flyttar skrivaren till nästa horisontella tabbstopp. Det lämnas odefinierat hur sidan definierar och ställer in dessa tabbstopp. |
Vertikal flik (VT) | 11/0x0B | Flyttar skrivaren till nästa vertikala tabbstopp. Det lämnas odefinierat hur sidan definierar och ställer in dessa tabbstopp. |
Form Feed (FF) | 12/0x0C | Flyttar skrivaren till toppen av nästa sida medan den förblir i samma horisontella position. |
Stöd för funktionen av tecken markerade som * krävs. Andra kan utföra en given åtgärd eller inte utföra någon; den ena sidan behöver inte anta något specifikt om den andra sidans stöd för särskilda valfria kontrolltecken.
"CR LF"-sekvensen måste behandlas som ett enda nyradstecken och användas närhelst deras kombinerade åtgärd krävs; "CR NUL"-sekvensen ska användas där endast en vagnretur krävs; användningen av CR-tecknet bör undvikas i andra sammanhang.
Varje TELNET-kommando är en flerbytesekvens som börjar med \377 (decimal: 255) "Interpret as Command" (IAC)-koden och kommandokoden. De kommandon som är ansvariga för alternativförhandling är tre-byte-sekvenser, där den tredje byten är alternativkoden. Följande koder och kodsekvenser har sin respektive betydelse endast när de omedelbart följer IAC.
namn | Kod (decimal/hexadecimal) | Beskrivning |
---|---|---|
SE | 240/0xF0 | Avslutar förhandlingen som påbörjats av SB-kommandot. |
NEJ | 241/0xF1 | Ingen operation. |
datamärke | 242/0xF2 | Synkronisering (synkronisering) datautbyte. Detta kommando följs alltid av ett TCP-brådskande meddelande. |
Ha sönder | 243/0xF3 | Knappen "Break" eller "Attention" trycks ned. |
Avbryta process | 244/0xF4 | Avbryter, avbryter, avbryter eller avslutar en process. |
Avbryt utmatning | 245/0xF5 | Undertrycker utsignalen från den aktuella processen. Skickar också en synksignal till användaren. |
Är du där | 246/0xF6 | Skickar tillbaka ett terminalsvar som består av utskrivbara tecken. |
Radera tecken | 247/0xF7 | Mottagaren bör ta bort det föregående tecknet, om möjligt. |
Radera linje | 248/0xF8 | Radera den senast angivna raden, det vill säga all data som tagits emot efter den senaste nya raden. |
Varsågod | 249/0xF9 | Dataöverföring väntar. |
SB | 250/0xFA | Start av alternativförhandling som kräver parameterpassering. |
VILLA alternativ | 251/0xFB | Indikerar en önskan att utföra eller bekräftar att det angivna alternativet för närvarande utförs. |
Kommer inte att välja | 252/0xFC | Indikerar ett misslyckande med att starta eller fortsätta att utföra det angivna alternativet. |
DO alternativet | 253/0xFD | En begäran om att den andra parten verkställer eller bekräftar utnyttjandet av det angivna alternativet. |
Alternativet INTE | 254/0xFE | En begäran om att den andra parten stoppar exekveringen eller bekräftar att det angivna alternativet inte längre exekveras. |
IAC | 255/0XFF | Databyte 255. |
Historiskt sett har Telnet använts för fjärråtkomst till operativsystemets kommandoradsgränssnitt . Därefter användes den för andra textbaserade gränssnitt, upp till MUD -spel och animerad ASCII-art . Teoretiskt sett kan till och med båda sidor av protokollet inte bara vara människor utan även program.
Ibland används telnet-klienter för att komma åt andra protokoll baserade på TCP-transporten, se Telnet och andra protokoll .
Telnet-protokollet används i FTP -kontrollanslutningen , det vill säga att komma in på servern med ett kommando telnet ftp.example.net ftpför att utföra felsökning och experiment är inte bara möjligt, utan också korrekt (i motsats till att använda telnet-klienter för att komma åt HTTP, IRC och de flesta andra protokoll ).
Telnet, tillsammans med HTTP , är huvudprotokollet för fjärrarbete med nätverksutrustning (hanterade switchar och routrar) och ger till skillnad från webbgränssnittet full tillgång till enhetens funktionalitet, men kräver samtidigt kommandoradskompetens av en specialist.
Protokollet ger inte utrymme för användning av vare sig kryptering eller dataautentisering. Därför är den sårbar för alla slags attacker som dess transport, dvs TCP-protokollet, är sårbar för. För funktionaliteten för fjärråtkomst till systemet används för närvarande SSH -nätverksprotokollet (särskilt dess version 2) , under skapandet av vilket tonvikten låg på säkerhetsfrågor. Så kom ihåg att en Telnet-session är ganska osäker om den inte är på ett helt kontrollerat nätverk eller med nätverkslagersäkerhet (olika implementeringar av virtuella privata nätverk ). På grund av Telnets opålitlighet som ett sätt att hantera operativsystem har de sedan länge övergivits.
I Internetteknikgemenskapen används ibland Telnet-klienten för att ge manuell åtkomst (till exempel för felsökningsändamål) till applikationslagerprotokoll som HTTP , IRC , SMTP , POP3 och andra textbaserade protokoll baserade på TCP-transporten. Men att använda en telnet-klient som en TCP-klient kan orsaka följande oönskade effekter:
Program som netcat ger ren TCP-åtkomst, men speciella trick krävs (på något sätt stty -icrnlpå ett UNIX-system) för att skicka en radmatning som CR LF (vilket krävs av många protokoll). Vanligtvis kommer en Telnet-klient som standard att skicka vilken ny linje som helst som CR LF, oavsett dess kodning på klientens system. Dessutom, för att felsöka åtkomst till applikationsprotokoll (förutom FTP och faktiskt Telnet), kan du använda PuTTY- klienten i råläge (ren åtkomst till TCP) - PuTTY konverterar radbrytningar separat från Telnet-protokollstöd.
URI- scheman | |
---|---|
Officiell | |
inofficiell |
TCP / IP-protokoll efter lager av OSI-modellen | Grundläggande|
---|---|
Fysisk | |
kanaliserad | |
nätverk | |
Transport | |
session | |
Representation | |
Applicerad | |
Annat ansökt | |
Lista över TCP- och UDP-portar |