from: http://www.cert.dfn.de/infoserv/dib/dib-9601.html
SSH (Secure SHell)
(letzte Änderung: 29. November 1997)
Hintergrund
Die herkömmlichen, im Internet benutzten Protokolle weisen zwei
schwerwiegende Sicherheitprobleme auf, die in letzter Zeit häufig von
Angreifern ausgebeutet werden. Ein Problem ist die unverschlüsselte
Übertragung der Daten, die es Angreifern erlaubt, fremde Kommunikation
aufzuzeichnen. Dieses Problem nutzen Angreifer mit sogenannten Sniffern
aus, die beim Login angegebene Benutzernamen und Passworte aufzeichnen.
Das zweite Problem ist die fehlende Sicherung von Authentizität und
Integrität der übertragenen Daten. Angreifer können dadurch Daten mit
einer fremden Identität senden oder übertragene Daten manipulieren.
Angreifbar sind inbesondere die Server, die eine Authentisierung anhand von
IP-Adressen vornehmen. Zu den gefährdeten Protokollen zählen
unter anderen Rlogin
(Remote Login) und Rsh (Remote Shell). Angreifer schicken bei sogenannten
"IP-Spoofing" Angriffen gefälschte IP-Pakete, die vorgeben von einem
vertrauenswürdigen Rechner zu kommen. Unter vertrauenswürdigen Rechner
werden im Zusammenhang mit rlogin und rsh alle Rechner
verstanden, die in
der /etc/hosts.equiv oder einer .rhosts-Datei aufgelistet
sind.
Ziele des Programms
SSH ist ein Software-Paket bestehend aus einem Server und mehreren
Klienten, das als vollwertiger Ersatz für rlogin,
rcp und rsh einsetzbar ist. Im Gegensatz zu
rlogin und rsh führt SSH jedoch keine
Authentisierung anhand von IP-Adressen durch, sondern nutzt das
RSA-Verfahren. Der Zugriff wird nur dem Rechner gewährt, der im
Besitz des geheimen RSA-Schlüssels ist. Zusätzlich werden neben
RSA-Keys für Rechner auch Schlüsselpaare für Benutzer
unterstützt. Nach einer erfolgreichen Authentisierung werden alle
Daten für die Übertragung verschlüsselt, ein Abhören
ist somit ebenfalls nicht möglich. Verbindungen von X11-Programmen zum
X11-Server über das Netzwerk werden über die sichere ssh
Verbindung weitergeleitet. Das Abhören von MIT-MAGIC-COOKIES
wird dadurch verhindert.
Installation der Programme
SSH steht für diverse Betriebssystem und Rechnerarchitekturen zur
Verfügung. Die folgende Liste wurde aus der Dokumentation zu SSH V1.2.21
übernommen:
- 386BSD 0.1; i386
- AIX 3.2.5, 4.1, 4.2; RS6000, PowerPC
- BSD 4.4; several platforms
- BSD/OS 1.1, 2.0.1, 3.0; i486
- BSD/386 1.1; i386
- BSDI 2.1; x86
- ConvexOS 10.1; Convex
- Digital Unix 4.0, 4.0A, 4.0B; Alpha
- DGUX 5.4R2.10; DGUX
- FreeBSD 1.x, 2.x;
- HPUX 7.x, 9.x, 10.0; HPPA
- IRIX 5.2, 5.3, 6.2; SGI Indy
- IRIX 6.0.1; Mips-R8000
- Linux 1.2.x, 2.0.x Slackware 2.x, 3.x, RedHat 2.1, 3.0; i486, Sparc
- Linux 3.0.3, 4.0; Alpha
- Linux/Mach3, Macintosh(PowerPC)
- Linux/m68k (1.2.x, 2.0.x, 2.1.x)
- Mach3; Mips
- Mach3/Lites; i386
- Machten 2.2VM (m68k); Macintosh
- NCR Unix 3.00; NCR S40
- NetBSD 1.0A, 1.1, 1.2; Pentium, Sparc, Mac68k, Alpha
- OpenBSD 2.0; x86, mac68k
- NextSTEP 3.3; 68040
- OSF/1 3.0, 3.2; Alpha
- Sequent Dynix/ptx 3.2.0 V2.1.0; i386
- SCO Unix; i386 (client only)
- SINIX 5.42; Mips R4000
- Solaris 2.3, 2.4, 2.5, 2.5.1; Sparc, i386
- Sony NEWS-OS 3.3 (BSD 4.3); m68k
- SunOS 4.1.1, 4.1.2, 4.1.3, 4.1.4; Sparc, Sun3
- SysV 4.x; several platforms
- Ultrix 4.1; Mips
- Unicos 8.0.3; Cray C90
Für weitere Betriebssysteme wie DOS/Windows, OS/2 und Macintosh werden
zur Zeit Versionen entwickelt oder sind bereits verfügbar. Aktuelle
Informationen zu diesen Versionen sind unter
http://www.cs.hut.fi/ssh/
erhältlich. In dieser Anleitung wird die Installation der Freeware
UNIX-Version von SSH beschrieben.
Das Archiv
ssh-1.2.21.tar.gz
enthält die Quellen und Dokumentation zu
SSH. Die Datei
ssh-1.2.21.tar.gz.sig
enthält eine PGP-Signatur für
das Softwarepaket. Diese Signatur sollte vor der Installation von SSH
überprüft werden, um sicherzustellen, daß die Datei ssh-1.2.21.tar.gz
nicht von Dritten manipuliert wurde.
Überprüfung der Signatur (empfohlen)
Der zur Überprüfung benötigte PGP-Schlüssel ist auf jedem
PGP-Keyserver erhältlich, per Mail an
pgp-public-keys@keys.pgp.net
Mit Subject:
get ylo@cs.hut.fi
Nach dem Einbinden des Schlüssels in den PGP public-Keyring, kann die
Signatur überprüft werden:
% pgp ssh-1.2.21.tar.gz
File 'ssh-1.2.21.tar.gz.sig' has signature, but with no text.
Text is assumed to be in file 'ssh-1.2.21.tar.gz'.
Good signature from user "Ssh distribution key <ylo@cs.hut.fi>".
Signature made 1997/09/02 13:32 GMT
Informationen zur Installation und Anwendung von PGP sind im DFN-CERT
Informationsbulletin DIB-94:05 zu finden.
Auspacken des Archivs
gunzip ssh-1.2.21.tar.gz
tar xvf ssh-1.2.21.tar
Kompilieren und Installieren der Programme
Die Erzeugung und Installation der Programme ist sehr einfach:
cd ssh-1.2.21
./configure
make
make install
Über diverse Optionen zum configure-Script läßt sich die Installation
von SSH leicht an spezielle Anforderungen anpassen. Empfehlenswerte
Optionen zu configure sind:
Die Erzeugung der Programme durch "make" erfordert keine weiteren
Parameter.
Nur der letzte Aufruf (make install) muß unter "root" erfolgen.
Bei dieser
Installation wird neben dem Kopieren der Programme auch bereits das
RSA-Schlüsselpaar für den Rechner (Host-Key) erzeugt.
Wenn die zu SSH gehörenden Programme über NFS zur Verfügung gestellt werden
sollen, ist ein "make install" nur auf dem NFS-Server notwendig. Auf den
NFS-Clienten ist nur die Erzeugung eines RSA-Schlüsselpaares notwendig,
sowie die Installation der Konfigurationsdateien. Diese Installation
auf den NFS-Clienten erfolgt über "make hostinstall".
Starten des SSH-Dämons (sshd)
Im Gegensatz zu den zu rlogin und rsh gehörigen Servern,
die durch inetd
gestartet werden, muß der SSH-Server (sshd) als Dämon beim Booten
gestartet werden. Damit der SSH-Server beim Booten automatisch gestartet
wird, muß folgender Eintrag in die Startup-Datei /etc/rc.local ergänzt
werden:
if [ -x /usr/local/sbin/sshd -a -f /etc/ssh_host_key
-a -f /etc/sshd_config ]; then
/usr/local/sbin/sshd
echo -n " sshd"
fi
Die genannten Pfade können sich bei einigen UNIX-Varianten leicht
unterscheiden. So sind die Startup-Dateien bei Sun Solaris 2.x im
Verzeichnis /etc/init.d/ zu finden, und der SSH-Server sollte bei Solaris
durch die Angabe von --prefix=/opt beim "configure" als
/opt/sbin/sshd
installiert sein. Die Pfade sind entsprechend anzupassen.
Installation der Host-Keys
Über das bei der Installation (make install) erzeugte Schlüsselpaar,
dem Host-Key, werden sich später die Hosts authentisieren. Für eine
erfolgreiche Authentisierung müssen beiden Hosts die öffentlichen
Schlüssel des jeweiligen Kommunikationspartners vorliegen. Der
öffentliche Schlüssel des Hosts wird bei der Installation in der
Datei /etc/ssh_host_key.pub abgespeichert. Die Liste von Host-Keys anderer
Rechner muß vom Administrator in der Datei /etc/ssh_known_hosts gepflegt
werden.
Da die manuelle Erzeugung der ssh_known-hosts Datei durch Zusammenfügen
der ssh_host_key.pub Dateien mehrerer Rechner bei größeren Netzen sehr
aufwendig werden kann, ist bei SSH ein Perl-Script enthalten, daß die
öffentlichen Schlüssel aller Rechner einer (Sub-)Domain zusammensammelt.
Die Datei ssh_known_hosts mit den Host-Keys aller Rechner der Domain
"ihre.domain.de" kann durch folgenden Aufruf erzeugt werden:
make-ssh-known-hosts ihre.domain.de > ssh_known_hosts
Die erzeugte Datei muß vom Administrator als /etc/ssh_known_hosts auf alle
Rechner der Domain verteilt werden. Da diese Schritte noch ungeschützt
durchgefürt werden müssen, stellt sich hier das Problem eines sicheren
Bootstraps.
Entfernen der rlogin- und rsh-Server
Nach der erfolgreichen Installation sollten im letzten Schritt die rlogin-
und rsh-Server aus der Konfigurationsdatei /etc/inetd.conf
entfernt werden.
Falls der Zugriff auf die beiden Server über den TCP-Wrapper auf
wenige IP-Adressen eingeschränkt war, dann empfiehlt es sich, die selben
Adressen auch in die Konfiguration von SSH zu übernehmen. Die Zeilen
"AllowHosts" und "DenyHosts" haben die gleich Funktion wie eine Eintragung
in /etc/hosts.{allow|deny} beim TCP-Wrapper.
Bekannte Probleme und deren Lösungen
Weitere Hinweise finden sich im SSH FAQ.
Benutzung der Programme
Die Programme verhalten sich wie normale rlogin-, rsh- und rcp-Klienten.
Der Benutzer braucht keine neuen Kommandos zu lernen. Die zusätzlichen
Optionen ermöglichen eine Reihe von weiteren Funktionen, brauchen im
Normalfall aber nicht verwendet zu werden. SSH bietet eine große Vielfalt
von Konfigurationsmöglichkeiten. Die detaillierte Darstellung würde den
Rahmen dieses Bulletins überschreiten. Eine genaue Beschreibung findet
sich in der Dokumentation zu SSH.
Programminformation
SSH (Secure Shell) Version 1.2: Tatu Ylonen
FTP-Server:
Disclaimer,
Copyright © 1994 - 1997 by
DFN-CERT /
info@cert.dfn.de