Franzosen und Russen gehört das Land,/ Das Meer gehört den Briten,/ Wir (Deutsche; d.Red.) aber besitzen im Luftreich des Traums/ Die Herrschaft unbestritten. -- Heinrich Heine
11 Anwendersoftware für das Netzwerk
Neues Kapitel, alte Philosophie. Auch in diesem Kapitel werden wir kaum intuitiv erlernbare Software ansprechen, sondern uns auf das konzentrieren, was man wirklich in einem Buch nachlesen muss, um es zu verstehen. Und um welche Software soll es gehen? Unser Thema ist die Client-Software für Netzwerke, genauer gesagt für TCP/IP-Netzwerke.
11.1 Telnet
Hinter dem Begriff Telnet steckt zum einen ein Protokoll – TELNET – das speziell für die Kommunikation zwischen mehreren Netzwerk-Konsolen entwickelt wurde. Zum anderen steckt hinter Telnet aber auch das Tool telnet, das sich nicht nur über das TELNET-Protokoll mit einem Telnet-Server verbinden und mit diesem über TCP kommunizieren kann, sondern das auch Verbindungen zu diversen anderen ASCII-basierten Diensten aufbauen kann und sich daher als äußerst hilfreich erweist.
Wir werden uns in diesem Buch nur mit dem Tool telnet auseinandersetzen. Für am TELNET-Protokoll Interessierte sei auf das Buch [WaEv98A] verwiesen.
Standardmäßig verbindet man sich über telnet mit einem Telnet-Server. <in der Regel telnetd oder dem inetd-internen Server> Telnet läuft über TCP und benutzt den Port 23. Telnet kann man vereinfacht ausgedrückt so verstehen, dass man sich auf einem Rechner (lokal oder entfernt) mit einem dort vorhandenen Account einloggt, wie man es beim Standard-Login auf der Konsole gewohnt ist.
Nachdem der Login erfolgt ist, wird die Login-Shell des Benutzers gestartet, und man kann mit diesem System auf der Konsole arbeiten, als ob man direkt vor dem Rechner sitzen würde. Beendet wird die Verbindung, indem man die Shell durch exit beziehungsweise logout verlässt.
11.1.1 Die erste Verbindung
Um sich mit einem Telnet-Server zu verbinden, gibt man dessen IP-Adresse oder Hostnamen als Parameter an telnet weiter. Optional kann man noch den Port des Dienstes angeben. Wenn man sich jedoch mit dem Standardport 23 verbinden will, ist diese explizite Portangabe nicht notwendig.
cdp_xe@eygo:~/books/kompendium$ telnet 192.168.0.5 Trying 192.168.0.5... Connected to 192.168.0.5. Escape character is '^]'. yorick login: cdp_xe Password: Linux 2.4.29. Last login: Thu Oct 6 13:39:20 +0200 2005 on tty2. No mail. Dealing with failure is easy: Work hard to improve. Success is also easy to handle: You've solved the wrong problem. Work hard to improve. cdp_xe@yorick:~% ls ./ .gconf/ .gnome2_private/ ../ .gconfd/ .kde/ .ICEauthority .gnome/ .kderc .Xauthority .gnome2/ .mcop/ ... ... cdp_xe@yorick:~% exit Connection closed by foreign host.
Listing 11.1 Beispiel einer Telnet-Sitzung
11.1.2 HTTP, SMTP, POP3
Da telnet auch mit diversen Plaintext-Protokollen umgehen kann, ist es bei Kenntnis des jeweiligen Protokolls überhaupt kein Problem, eine einfache Kommunikation mit einem entsprechenden Server durchzuführen.
Nehmen wir als Beispiel eine HTTP-Verbindung. Dieses Protokoll wird bei der Kommunikation zwischen Browser und Webserver verwendet, um Webseiten zu übertragen, HTML-Forms zu senden, Server-Informationen zu erfragen und ähnliche Aktionen durchzuführen.
Der TCP-Port des Webservers ist dabei 80. Man gibt diesen entweder als Zahl oder als Kurzform an. Die Kurzformen (etwa nntp) finden Sie, wie bereits aus dem letzten Kapitel bekannt ist, in der Datei /etc/services.
Um eine Webseite anzufordern, verwendet man das HTTP-Kommando GET, gefolgt von dem URI <Uniform Resource Identifier> des Dokuments und der Protokollversion:
$ telnet yorick.sun 80
Trying 192.168.0.5...
Connected to yorick.sun.
Escape character is '^]'.
GET /index.html HTTP/1.0
HTTP/1.1 200 OK
Date: Wed, 19 Oct 2005 18:00:58 GMT
Server: Apache/1.3.33 (Unix)
Content-Location: index.html.en
Vary: negotiate,accept-language,accept-charset
TCN: choice
Last-Modified: Sun, 31 Oct 2004 21:05:08 GMT
ETag: "571c8-a71-41855384;41855385"
Accept-Ranges: bytes
Content-Length: 2673
Connection: close
Content-Type: text/html
Content-Language: en
Expires: Wed, 19 Oct 2005 18:00:58 GMT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2
Final//EN»
<HTML>
<HEAD>
<TITLE>Test Page for the SSL/TLS-aware Apache
Installation on Web Site</TITLE>
<STYLE TYPE="text/css»
H1 {
font-weight: bold;
font-size: 18pt;
line-height: 18pt;
font-family: arial,helvetica;
font-variant: normal;
font-style: normal;
}
...
...
</BODY>
</HTML>
Connection closed by foreign host.
Listing 11.2 HTTP-Session mit Telnet