6.2.2. Software und Beispiele

Die folgende Beschreibung bezieht sich auf den Kommandozeilen-Klienten, wie er u.a. bei allen Unix-ähnlichen Betriebssystemen zu finden ist. Bei Telnet-Klienten unter Windows-Systemen kann man meist durch Menüs auf etwa dieselbe Funktionalität zugreifen, wobei aber in der Regel keine Beobachtung der Optionsaushandlung vorgesehen ist.

Hauptaufgabe des TELNET-Klienten ist es, jedes eingegebene Zeichen an den Server und damit an die entfernt genutzte Anwendung zu schicken. Mitunter besteht allerdings die Notwendigkeit, bestimmte Parameter einzustellen. Man denke hier nur an die Optionen. Zu diesem Zweck kann man mittels eines Escape-Zeichens in den Kommandomodus gelangen, der am TELNET-Prompt telnet> zu erkennen ist. Im Standardfall wird ^] (Control-]) als Escape-Zeichen verwendet.

Die wichtigsten TELNET-Kommandos sind:

Kommando Beschreibung Beispiel
open  Verbindung aufbauen open main.hrz.tu-chemnitz.de
close Verbindung beenden close
display eingestellte Parameter anzeigen display
set Parameter setzen (z.B. Escape-Zeichen) set escape }
(setzt Escape-Zeichen auf '}')
toggle Parameter auf den entgegengesetzten Wert setzen toggle options
mode Übertragungsmodus einstellen mode line
send Sonderzeichen senden (siehe Tabelle 3) send ayt
status Statusinformationen anzeigen status
environ Umgebungsvariablen verändern environ define TERM vt100
help Anzeige aller Kommandos help
quit TELNET beenden quit

Nach jedem Kommando (bzw. nach Return am TELNET-Prompt) geht der Klient automatisch wieder in den Nutzermodus zurück.

Nun wollen wir uns endlich einem praktischen Beispiel zuwenden und uns die Aushandlung der Optionen zu Beginn der Sitzung ansehen. Die Erläuterungen sind eingerückt jeweils nach den zugehörigen Ein- und Ausgaben eingefügt. Das Beispiel können Sie ohne Online-Verbindung selbst ausprobieren, wenn Sie lokal Linux zur Verfügung haben, ansonsten z.B. mit hydra.informatik.tu-chemnitz.de.

% telnet
telnet>
telnet> toggle options
Will show option processing.
telnet> open localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SENT DO SUPPRESS GO AHEAD
SENT WILL TERMINAL TYPE
SENT WILL NAWS
SENT WILL TSPEED
SENT WILL LFLOW
SENT WILL LINEMODE
SENT WILL ENVIRON
SENT DO STATUS
SENT WILL XDISPLOC
RCVD DO AUTHENTICATION
SENT WONT AUTHENTICATION
RCVD WILL SUPPRESS GO AHEAD
RCVD DO TERMINAL TYPE
RCVD DO NAWS
SENT IAC SB NAWS 0 80 (80) 0 24 (24)
RCVD DO TSPEED
RCVD DO LFLOW
RCVD DONT LINEMODE
RCVD DO ENVIRON
RCVD WILL STATUS
RCVD DO XDISPLOC
RCVD IAC SB TERMINAL-SPEED SEND
SENT IAC SB TERMINAL-SPEED IS 9600,9600
RCVD IAC SB X-DISPLAY-LOCATION SEND
SENT IAC SB X-DISPLAY-LOCATION IS "rak:0.0"
RCVD IAC SB ENVIRON SEND 
SENT IAC SB ENVIRON IS VAR "DISPLAY" VALUE "rak:0.0"
RCVD IAC SB TERMINAL-TYPE SEND
SENT IAC SB TERMINAL-TYPE IS "XTERM"
RCVD DO ECHO
SENT WONT ECHO
RCVD WILL ECHO
SENT DO ECHO
Linux 2.0.7 (rak.hrz.tu-chemnitz.de) (ttyp3)

Ein anderes Beispiel ergibt sich z.B. von tantalus.hrz.tu-chemnitz.de zu samson.hrz.tu-chemnitz.de:

% telnet
telnet>toggle options
Will show option processing.
telnet>open samson.hrz.tu-chemnitz.de
Trying 134.109.2.6...
Connected to samson.hrz.tu-chemnitz.de.
Escape character is '^]'.
SENT WILL AUTHENTICATION     
SENT DO ENCRYPT
SENT WILL ENCRYPT
SENT DO SUPPRESS GO AHEAD   
SENT WILL TERMINAL TYPE    
SENT WILL NAWS            
SENT WILL TSPEED	 
SENT WILL LFLOW
SENT WILL LINEMODE      
SENT WILL NEW-ENVIRON
SENT DO STATUS
SENT WILL XDISPLOC
Nice to meet you, tantalus.hrz.tu-chemnitz.de
RCVD DO AUTHENTICATION  
RCVD IAC SB AUTHENTICATION SEND 6 CLIENT|ONE-WAY 
Trying SRA secure login:
SENT IAC SB AUTHENTICATION IS 6 CLIENT|ONE-WAY KEY  99 50 97 101 98 101 49 56 
    55 55 98 99 57 48 55 49 57 53 56 57 56 97 53 48 102 53 48 50 52 48 49 102
    97 101 50 52 102 51 49 97 48 49 55 99 97 99 102 98
RCVD WILL ENCRYPT
SENT IAC SB ENCRYPT REQUEST-START
SENT IAC SB ENCRYPT SUPPORT DES_CFB64 DES_OFB64 
RCVD DO ENCRYPT
RCVD IAC SB ENCRYPT SUPPORT DES_CFB64 DES_OFB64 
RCVD WILL SUPPRESS GO AHEAD  
RCVD DO TERMINAL TYPE       
RCVD DO NAWS                          
SENT IAC SB NAWS 0 80 (80) 0 54 (54) 
RCVD DO TSPEED                      
RCVD DO LFLOW
RCVD DONT LINEMODE                 
RCVD DO NEW-ENVIRON
RCVD WILL STATUS
RCVD DO XDISPLOC
RCVD IAC SB AUTHENTICATION REPLY 6 CLIENT|ONE-WAY KEY  51 54 57 50 54 99 54
     55 48 56 98 52 53 55 52 101 99 97 49 98 100 98 48 52 99 99 53 101 51
     56 53 52 49 56 97 51 48 100 101 49 97 101 101 50 49 99 100 53
User (hgu): 
Neu sind hier Optionen, die die Netzwerksicherheit (Authentifizierung und Verschlüsselung) betreffen und eine Erweiterung von TELNET darstellen. In unserem Fall möchte der Klient diese Option aktivieren (WILL AUTHENTICATION). Der Server stimmt dem zu (DO AUTHENTICATION).

In beide Richtungen werden Schlüssel übertragen (ONE-WAY KEY), die dem Verfahren "SRA secure login" dienen (näheres dazu kommt in Kapitel 8 "Netzwerk-Sicherheit").


Frage 6.2.2.1:

Ermitteln Sie TELNET-Klienten-Implementierungen (sortiert nach Plattformen)!


Frage 6.2.2.2:

Ermitteln Sie TELNET-Server-Implementierungen (sortiert nach Plattformen)!


Vertiefung:

Das TELNET-Protokoll sowie die Options-Spezifikation sind in den folgenden beiden Standards beschrieben:

Eine Vielzahl einzelner Optionen wurde in separaten Dokumenten definiert, die einen unterschiedlichen Status haben und in der Praxis eine unterschiedliche Relevanz besitzen. Hier eine Auswahl:
© Uwe Hübner, Heino Gutschmidt, 28.6.1998