Internetprotokolle

Version 1.0

Inhalt

1 Telnet
1.1 Was ist Telnet?
1.2 Wie kann ich selber eine Telnetverbindung aufbauen?
1.3 Was sind die Nachteile von Telnet?
   
2 Einige einfache Protokolle, die auf Telnet basieren
2.1 Chargen
2.2 Daytime
2.3 Discard
2.4 Echo
   
3 SSH
3.1 Was ist SSH?
3.2 Wie baue ich mit SSH eine Verbindung auf?
3.3 Wie funktioniert SSH?

 

1 Telnet

1.1 Was ist Telnet?
Telnet ist eine auf TCP basierende textorientierte Software, mit der man zwei entfernt liegende Rechner miteinander verbinden kann. Telnet wurde früher dazu verwendet, mehrere Terminals an einem Zentralrechner anzuschliessen. Dadurch konnten sich über ein Netzwerkkabel mehrere Anwender gleichzeitig über mehrere Terminals zugang zum Zentralrechner verschaffen. Dabei machte es keinen Unterschied, ob man direkt vor dem Zentralrechner sass, oder sich an einem sehr weit entfernten Terminal befand. Über so eine Telnetverbindung können Befehle ausgefürt werden und Prozesse gestartet werden, sodass sich so ein System aus der Ferne administrieren lässt. Ebenso können Programme mit einer Telnet-Verbindung Daten untereinander austauschen, wodurch man z.B. einen Chat machen kann, aber auch eine HTTP-Verbindung ist im Grunde genommen nichts anderes, als eine Telnet-Verbindung, die eine Anfrage zum Webserver sendet, der dann über Telnet die Internetseite verschickt. Um zwischen den verschiedenen Diensten zu unterscheiden, verwendet man sogenannte Ports. Die Ports gehen von 1-65535. HTTP benutzt z.B. den Port 80, eine normale Telnetverbindung den Port 23.

1.2 Wie kann ich selber eine Telnetverbindung aufbauen?
Dazu benötigt man einen Telnet-Client. Der ist aber meistens schon im Betriebssystem installiert. Unter Unix startet man ihn mit telnet <host> [port] und unter Windows mit Start -> Ausführen -> telnet <host> [port]. Wenn kein Port angegeben wird, wird 23 verwendet. Man kann eine Telnetverbindung entweder mit CTRL+C oder mit CTRL+] (Escape character is '^]'.), dann quit eingeben, abbrechen.

1.3 Was sind die Nachteile von Telnet?
Die Übertragung der Daten läuft bei Telnet unverschlüsselt. Bei einer Internetseite kann das noch nicht so fatale Folgen haben, aber wenn man ein System administriert, können Leute unter Umständen Daten und Passwörter ausspionieren, wodurch man sich meistens root-Zugriff auf dem Rechner verschaffen kann. Deshalb verwendet man heute für sichere Übertragungen das Protokoll SSH.

 

2 Einige einfache Protokolle, die auf Telnet basieren

2.1 Chargen
Chargen läft über den TCP bzw. UDP Port 19. Es ist ein auf Telnet basierendes Protokoll, das zu Testzwecken Ascii-Zeichen sendet. Mehr macht es eigentlich nicht. Auf manchen Unix-Systemen ist es standardweise eingerichtet. Ich würde es aber in der /etc/inetd.conf auskommentieren und den Inetd dann neu starten (bei Debian mit /etc/init.d/inetd restart), denn wenn jemand eine Telnetverbindung zu Chargen aufbaut kann es Lag geben.

Beispiel einer Chargen-Verbindung:

debian:~# telnet localhost 19
Trying 127.0.0.1...
Connected to debian.
Escape character is '^]'
.!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh
"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi
#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij
$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk
%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl
&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm
'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn
()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno
)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnop
*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq
+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr
,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs
-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst
debian:~#

2.2 Daytime
Daytime läuft über den TCP bzw. UDP Port 13. Es ist ein auf Telnet basierendes Protokoll, das die Systemzeit sendet. Alle weiteren eingehenden Daten werden vom Server nicht verarbeitet und die Verbindung wird nach dem Senden der Zeit getrennt. Auf manchen Unix-Systemen ist es standardweise eingerichtet. Wer es nicht braucht, dem würde ich empfehlen es in der /etc/inetd.conf auskommentieren und den Inetd dann neu starten, da man keine unnötigen Dienste anbieten sollte.

Beispiel einer Daytime-Verbindung:

debian:~# telnet localhost 13
Trying 127.0.0.1...
Connected to debian.
Escape character is '^]'.
Wed Oct 9 09:35:52 2002
Connection closed by foreign host.
debian:~#

2.3 Discard
Discard läuft über den TCP bzw. UDP Port 9. Es ist ein auf Telnet basierendes Protokoll, das gar nichts sendet. Es verwirft alle eingehenden Daten, sendet keine Empfangsbestätigung und eignet sich nur zum testen einer Verbindung, ohne eine grosse Netzlast zu erzeugen. Auf manchen Unix-Systemen ist es standardweise eingerichtet. Wer es nicht braucht, dem würde ich empfehlen, es in der /etc/inetd.conf auskommentieren und den Inetd dann neu starten, da man keine unnötigen Dienste anbieten sollte.

Beispiel einer Discard-Verbindung:

debian:~# telnet localhost 9
Trying 127.0.0.1...
Connected to debian.
Escape character is '^]'.
Hallo
blah
asdfsdf
debian:~#

2.4 Echo
Echo läuft über den TCP bzw. UDP Port 7. Es ist ein auf Telnet basierendes Protokoll, das alles was man sendet zurücksendet. Dies erfolgt solange, bis der anrufende Rechner die Verbindung unterbricht. Auf manchen Unix-Systemen ist Echo standardweise eingerichtet. Wer es nicht braucht, dem würde ich empfehlen, es in der /etc/inetd.conf auskommentieren und den Inetd dann über /etc/init.d/inetd restart neu starten, da man keine unnötigen Dienste anbieten sollte.

Beispiel einer Echo-Verbindung:

debian:~# telnet localhost 7
Trying 127.0.0.1...
Connected to debian.
Escape character is '^]'.
Hallo
Hallo
Wie gehts?
Wie gehts?
Gut und dir?
Gut und dir?
Mir auch.
Mir auch.
debian:~#

 

3 SSH

3.1 Was ist SSH?
SSH ersetzt das Protokoll Telnet, welches sämtliche Verbindungsdaten (insbesondere Passwörter und vertrauliche Daten) im Klartext über das Netzwerk transportiert. Das heisst, man könnte die Daten über einen Sniffer abhören und missbrauchen. SSH dagegen bietet eine sichere, verschlüsselte Verbindung an. Es läuft standardmässig über den Port 22.

3.2 Wie baue ich mit SSH eine Verbindung auf?
Unter Linux sollte standardmässig ein SSH-Client installiert sein. Dann kann man mit ssh [-l <login>] <host> <port> eine Verbindung aufbauen. Unter Windows geht das mit dem Programm PuTTY.

3.3 Wie funktioniert SSH?
Der SSH Server hat zwei Schlüsselpaare: Den Hostkey und den Serverkey. Diese Paare bestehen aus einem Privatekey und einem Publickey. Man kann die Daten nur mit dem Publickey verschlüsseln und nur mit dem Privatekey wieder entschlüsseln.

Nachdem der SSH-Client eine Verbindung zum SSH-Server aufgebaut hat, schickt der Server seine beiden Publickeys, also den öffentlichen Hostkey und den öffentlichen Serverkey. Wenn es der erste Verbindungsaufbau mit diesem Server ist, trägt der Client die Schlüssel in eine Liste ein. Bei den nächsten Verbindungen überprüft der Client die Keys mit denen in der Liste. Wenn sie übereinstimmen schickt der Client eine von ihm erzeugte Zufallszahl zum Server, die mit den beiden Schlüsseln verschlüsselt worden ist. Mit dieser Zahl (sogenannter Sessionkey) wird der Rest der Verbindung verschlüsselt. Dazu muss der Server die Zahl mit den Privatekeys entschlüsseln (spätestens hier könnte ein Hacker nicht mehr weitermachen, da er die Zahl nur mit den Private entschlüsseln kann). Jetzt kann der Client den Benutzernamen und Passwort mit der Zufallszahl verschlüsselt angeben.


Zurück zur Hauptseite Letzte Änderung: 27.07.03
Copyright (C) 2003 by Thomas "tom" S. <tom at eggdrop.ch>

Dieser Text gehört zu www.eggdrop.ch und ist urheberrechtlich geschützt. Das Weitergeben und Kopieren dieses Textes ist erwünscht unter folgenden Bedingungen: 1. Der Text muss so sein wie er ist und darf in keiner Weise verändert oder in die eigene Homepage integriert werden. 2. Es muss ein deutlicher Hinweis auf die Herkunft (www.eggdrop.ch) vorhanden sein. 3. Der Text sollte wenigstens alle 3 Monate auf Updates überprüft werden (siehe die Versionsnummer ganz am Anfang des Textes!)