Unix: ssh v1
Die SSH (secure shell) ist eine Art sicheres telnet, mit dem eine verschlüsselte Verbindung zu einem anderen Rechner aufgebaut wird. Es ersetzt telnet, rlogin, rsh und etc. Auch eine sichere X11-Verbindung ist darüber möglich. Darüber hinaus werden RSA-Schlüssel unterstützt. Zum dem SSH-Paket gehört der Daemon sshd und der client ssh sowie weitere Tools. Hier geht es um SSH Version 1. Sie sollten eine Version aktueller als 1.2.31 nehmen, da die älteren ein paar nette Sicherheitslöcher haben.
Inhalt
Übersetzen
Das Übersetzen und Installieren beschrängt sich auf:
./configure make make install
Auf jeden Fall vorher ReadMe´s und Install lesen. Den Daemon können Sie stand alone (sinnvoller) oder per inetd laufen lassen. Fuer inetd wird sshd mit der Option -i auf Port 22 in der inetd.conf eingetragen.
Konfigurieren
Fuer Daemon und Client gibt es jeweils eine Config-Datei in /etc.
sshd_conf
In sshd_conf stehen die Parameter fuer den Daemon (-> man sshd). Interessant sind:
# Port-Nummer Port 22 # IP-Adresse binden (0.0.0.0 = alle) ListenAddress 0.0.0.0 # direkter Login von root verbieten PermitRootLogin no # Leere Paßwörter verbieten PermitEmptyPasswords no # Syslog (Facility in syslog.conf eingetragen) SyslogFacility local1 # nur bestimmte Netze erlauben AllowHosts *.lahn.de secure.my-provider.net # bestimmte Netze verbieten DenyHosts *.evil.org evil.org
ssh_conf
Und für den Client ist ssh_config zuständig, wobei die Default-Opionen ok sind. Für weitere Infos einfach man ssh.
Benutzen
Wenn Sie per ssh auf einen anderen Rechner gehen möchten, funktioniert dies mit
ssh -l markus server.remote.net
Haben Sie auf Ihrem lokalen Rechner und dem Remote Rechner den gleichen Usernamen, können Sie die Option -l username weglassen.
Mit scp ist ein sicheres kopieren von Dateien möglich:
scp markus@server.remote.net:geheime-daten.tex .
So kopierien Sie die Datei vom entfernten Rechner in Ihr aktuelles Verzeichnis vom lokalen Rechner.
RSA Schlüssel
Die RSA-Schlüssel bieten eine zusätzliche Möglichkeit zum Authentifizieren. Jeder Schlüssel besteht aus zwei Teilen, einem öffentlichen und einem geheimen. Der öffentliche Schlüssel (public key) wird auf den Servern, auf denen Sie einen Account haben, abgelegt. Der private Schlüssel (private key) bleibt auf Ihrem Arbeitsrechner. Sie sollten grundsätzlich ein Paßwort für Ihren privaten Schlüssel setzen, falls irgendwer widerrechtlich eine Kopie von Ihrem Schlüssel bekommen sollte. Für bestimmte Anwendungen ist es schön ohne Paßwort auszukommen. Dann ist dringend zu empfehlen, über Optionen die Macht des Schlüessels einzuschränken (siehe weiter unten).
Ok, zum Erzeugen eines Schlüsselspaares:
ssh-keygen
Den privaten Schlüssel lassen Sie auf Ihrem Arbeitsrechner. Den öffentlichen Schlüssel kopieren Sie auf die Remote Rechner in das jeweilige User-Verzeichnis in .ssh/authorized_keys. In authorized_keys können Sie zusätzlich mittels Optionen den Zugriff regeln. Einfach die Option an den Anfang eines Schlüssels stellen:
from="10.0.0.*",no-port-forwarding ...1024 12 234..321 x@unknown
Hier ist der RSA-Schluessel nur vom Intranet aus nutztbar und Port-Forwarding ist abgeschaltet. Solche Einschränkungen sollten Sie bei paßwort-losen Schlüsseln unbedingt nutzen.
Port Forwarding
Mit dem Port Forwarding lassen sich unsichere TCP-Dienste verschlüsseln, um doch noch zu einer sicheren Verbindung zu kommen. Bei vielen Diensten werden leider Paßwörter unverschlüsselt übertragen. Als Beispiel wollen wir eine sichere POP3-Verbindung aufbauen. Zuerst melden wir uns am Server per ssh an:
ssh -f -C -l user -L 60000:server.xyz.de:110 server.xyz.de
Die Option -l user kennen wir noch von oben zum Setzen des Users. Mit -C wird die Kompression eingeschaltet, was bei ungepackten Daten Sinn macht. Die Spezialoption -L 60000:server.xyz.de:110 startet ein Port Forwarding von Port 110 auf dem Server server.xyz.de (das ist der POP3-Server) auf Port 60000 Ihres Rechners. Der Port wird quasi auf Ihren Rechner verlängert - natürlich verschlüsselt. Nun können Sie den EMail-Client auf Port 60000 127.0.0.1 Post abholen lassen.

