Einleitung

Heutzutage sind IT-Landschaften häufig durch verteilte und heterogene Computersysteme geprägt. Die meisten Firmen betreiben zahlreiche Serversysteme für die unterschiedlichsten Aufgabengebiete, wie E-Mailserver, Webserver oder Fileserver.

Um diese große Anzahl an verteilten Computersystemen komfortabel administrieren zu können, benötigt man eine Software, die eine Fernsteuerung über Computernetzwerke hinweg ermöglicht.

Aus diesem Grund existieren zahlreiche Programme und Werkzeuge zur Fernadministration von Computersystemen, wie telnet, rsh oder rlogin. Mit Hilfe dieser Programme ist es möglich, eine Verbindung zu einem entfernten Computersystem aufzubauen, um beispielsweise Kommandos abzusetzen oder Dateien über ein Netzwerk hinweg zu transportieren.

Leider haben diese Programme ein grundlegendes Problem in Puncto Sicherheit.

Telnet bietet beispielsweise keine Möglichkeit zur Verschlüsselung des Datentransfers, was dazu führt, dass ein Angreifer ohne großen Aufwand an sensible Daten, wie Benutzernamen und Passwörter gelangen kann (siehe Abbildung 1.1).

Genau an dieser Problematik setzt SSH (ausgeschrieben: Secure Shell) an. SSH bietet dem Benutzer, neben den bekannten Funktionalitäten von älteren Programmen, eine so genannte transparente Verschlüsselung. Wann immer Daten zwischen Computersystemen transportiert werden, werden diese zu Beginn des Datentransfers automatisch verschlüsselt. Am Zielsystem angelangt sorgt ein Mechanismus dafür, dass die Daten auch automatisch wieder entschlüsselt werden. Für den Benutzer bleibt dieses Verfahren transparent und er kann während seiner Arbeit an einem entfernten System sicher sein, dass seine Daten nicht von Dritten eingesehen oder manipuliert werden können.

The primary goal of the SSH protocol is to improve security on the Internet. It attempts to do this in a way that is easy to deploy, even at the cost of absolute security.

SSH liegt ein klassisches Client-Server System zugrunde. Der Server akzeptiert Verbindungen oder weist diese ab. Er wird auf den Systemen installiert zu denen ein entfernter Zugriff erfolgen soll. Benutzer, die sich auf einem solchen System anmelden möchten, benötigen ein SSH-Client Programm. Mit Hilfe dieses Programms kann der Benutzer Befehle an den SSH-Server senden. ,,Bitte schicke mir diese Datei.`` oder ,,Bitte melde mich an.`` sind nur zwei Beispiele.

SSH hat sich seit der ersten Veröffentlichung im Juli 1995 stark verbreitet. Mittlerweile ist es zum Quasistandard im Bereich der Fernadministration von Computersystemen avanciert. Von SSH existieren mittlerweile viele verschiedene Implementierungen, die fester Bestandteil zahlreicher Linux- und Unixdistributionen geworden sind. Die in diesem Dokument aufgeführten Beispiele und Angaben beziehen sich auf die Version 4.6 von OpenSSH.

Abbildung 1.1: Mitlesen einer telnet-Session mit Hilfe eines Netzwerksniffers.
Image abbildung_telnetsniff

Abbildung 1.2: Mitlesen einer SSH-Session mit Hilfe eines Netzwerksniffers.
Image abbildung_sshsniff