
|
Themen
|
Einführung
|
FTP
|
Telnet
|
Abbildungen
|
|
klassische, serielle Terminalanbindung
|
|
Simulation eines Terminals mit Telnet
|
|
Telnet
Telnet nutzt die Funktionalität von TCP, um eine transparente Verbindung von
Client und Server herzustellen. Diese wird genutzt, um dem Client ein
Kommandointerface zum Betriebssystem des Servers zur Verfügung zu stellen.
Dies ist vor allem bei Unix-Servern ein gängiger Weg, um Service- und
Wartungsarbeiten aus der Ferne vorzunehmen oder gar - bei Anwendungen, die auf
reinen Textmasken basieren - auf dem Server zu arbeiten.
Der Telnet-Server erwartet Verbindungen auf Port 23. Sobald sich ein Client auf
diesen Port verbindet, wird eine transparente TCP-Verbindung geschaltet und auf
Serverseite das Unix-Programm "login" gestartet. Ein Telnet-Client besteht
normalerweise aus einem Programm, das dem Anwender zunächst einen leeren
Bildschirm präsentiert. Sobald die Verbindung besteht, werden alle über die
Tastatur eingegebenen Zeichen an den Server gesendet und alle Zeichen, die vom
Server kommen, werden in dem Fenster angezeigt. Hierbei stellt der Telnet-Client
noch eine Terminal-Emulation zur Verfügung. Damit kann der Server bestimmte -
von dem Typ der Terminal-Emulation abhängige - Steuerzeichen verwenden um z.B.
den Bildschirm zu löschen, den Cursor zu positionieren, Schriftattribute zu
setzen oder Grafiksymbole (z.B. für Rahmen) zu platzieren. Ursprünglich erfolgte
jede Kommunikation mit Unix-Servern über Terminals, die über serielle
Schnittstellen direkt angeschlossen waren. Die Fähigkeiten dieser Terminals
stellen heute Telnet-Clients zur Verfügung, daher rührt der Name
"Terminal-Emulation". Gängige Terminal-Emulationen bilden Terminals der Firma
DEC nach - VT-100 oder VT-52 stellt hier eine Art kleinsten gemeinsamen Nenner
dar. Daraus wurde ein erweiterter Standard geschaffen, der ANSI-Emulation genannt
wird. Weiterhin populär sind VT-220, VT-320 und Geräte von Wyse (Modell 50 oder
60).
Das Programm "login" sendet dem Telnet-Client nun zunächst eine Startseite (ein
Textbildschirm, den man unter /etc/issue ablegen kann) und anschließend den Text
"login:".
Nun erwartet es, dass der Benutzer einen gültigen Usernamen auf dem
Telnet-Server eingibt. Anschließend fragt es nach "password:", worauf es die
Eingabe des Passwortes erwartet. Dabei ist das Echo eingegebener Zeichen
abgeschaltet, der Benutzer sieht während der Passworteingabe keine Änderung
auf dem Bildschirm. Username und Passwort werden nun mit dem Inhalt der
Usertabelle (/etc/passwd) abgeglichen. Waren die Angaben korrekt, wird in das
in der Usertabelle für den Benutzer vorgesehene Heimverzeichnis verzweigt und
das für ihn vorgesehene Programm gestartet. Typischerweise ist das eine
sogenannte Shell, d.h. ein Interpreter für Betriebssystembefehle.
Diese wiederum führt zunächst ein Skript aus (meist /etc/profile), das z.B.
die verwendete Terminalemulation ermittelt und Systempfade einstellt.
Anschließend wird ein weiteres Skript im Heimverzeichnis des Benutzers
ausgeführt (meist .profile genannt). Dort kann der Benutzer eigene
Voreinstellungen hinterlegen. Nachdem dies erledigt ist, erzeugt die Shell
eine Eingabeaufforderung am Bildschirm des Benutzers. Jetzt kann er Befehle
eingeben.
Bei Benutzern, die nur eine bestimmte Anwendung ausführen dürfen, wird diese
meist in .profile eingetragen, gefolgt von dem Befehl "exit". Dadurch wird
diese sofort nach dem Anmelden per telnet gestartet. Sobald sie wieder
beendet wird, endet auch die Shell und damit die Telnet-Sitzung. Alternativ
könnte man den Namen der Anwendung gleich in der Usertabelle hinterlegen,
dann würde sie aber mit unbekannter Terminalemulation und ohne
Umgebungsvariablen gestartet, was in den meisten Fällen ungeschickt ist.
Durch die transparente Verbindung gibt es noch eine weitere Anwendung für
Telnet: Die meisten anderen Protokolle wie z.B. SMTP, POP3 oder HTTP arbeiten
ebenfalls mit TCP-Verbindungen, über die Texte hin- und hergeschickt werden.
Allerdings stellen Sie ihren Dienst auf einer anderen Portnummer zur
Verfügung. Zu Diagnosezwecken kann man jedoch Telnet auf eine dieser
Portnummern loslassen und das Protokoll dann manuell bedienen. Mit etwas
Übung und Hintergrundwissen ist es kein Problem, z.B. über Port 25 (SMTP)
eine Mail abzusetzen oder über Port 110 (POP3) sein Postfach abzufragen.
Auch wenn sie mittlerweile sehr aus der Mode gekommen sind - es gibt nach wie
vor Terminals. Heute sind sie oftmals direkt ans Netzwerk anschließbar. Manche
Geräte sind als sogenannte "Platine" ausgeführt. Das ist ein kleines Kästchen,
an dem ein VGA-Monitor und eine normale PC-Tastatur angeschlossen werden kann
und das nur noch die Logik des Terminals enthält. Netzwerk-Terminals
beherrschen das Telnet-Protokoll und bauen sofort nach dem Einschalten eine
Verbindung zu einem vorkonfigurierten Host auf.
Für serielle Terminals gibt es jedoch auch einen Weg, die Verbindung zum Server
über das Netzwerk herzustellen. Das dafür benötigte Gerät nennt man
Terminalserver. Es enthält meist mehrere serielle Schnittstellen zum
Anschluss von Terminals. Für jede dieser Schnittstellen kann der Terminalserver
nun eine Telnet-Sitzung unterhalten. Es gibt auch Mischformen, z.B. Platinen
mit Netzwerkanschluss und einer oder zwei seriellen Schnittstellen, über die
weitere serielle Terminals angeschlossen werden können.
|
|