Variante 1: Secure Shell/ssh mit (mehreren) Tunnel
Teil 2a - Client (Windows; putty)
Für den Zugriff per putty von einem Windows-Client aus ist es empfehlenswert, sich ein Profil anzulegen und abzuspeichern, um später jederzeit mit einem Klick eine Verbindung herstellen zu können.
Verbindung herstellen
- Putty starten
- Profil-Grundeinstellungen
In der Start-Ansicht von putty ...
sind nur wenige Einstellungen vorzunehmen:
1. Der Hostname (z.B. die MyFritz-Adresse) der Box, hier tut.dyn.ip
2. Der Name des Profils, hier einfach "Tut"
SSH und Port 22 sollten bereits eingestellt sein.
Das Profil kann auf Wunsch jetzt bereits zwischengespeichert werden.- Autorisierung auf "Private Key" umstellen
Auf der linken Seite wechseln wir in die Ansicht "Connection -> SSH -> Auth" und nehmen folgende Einstellungen vor:
1. Deaktivieren der "keyboard interactive"-Anmeldung
2. Auswählen unseres in Teil 1 erzeugten "private keys"- Einstellen des Benutzernamens
Den Benutzernamen stellen wir in der Ansicht "Connection -> Data" ein:
Hier ist einfach nur "root" einzutragen.- Profil abspeichern
Die Ansicht zurückwechseln auf "Session", dort die bereits vorab gespeicherte Sitzung "Tut" aus der Liste auswählen und auf [Save] klicken.- Verbindung testen
Mit Klick auf "Open" sollte sich ohne weiteres Zutun (Beim ersten Mal muß noch der Fingerabdruck des Servers auf der Box bestätigt werden) eine Terminal-Sitzung zu unserer Box öffnen:
Auf diesem Bild habe ich etwas hochgescrollt, um zu überprüfen, daß der Login tatsächlich per public key erfolgt ist.
Durch Eingabe von "exit" beendet sich die Sitzung und auch putty ...
Es ist nach derzeitigem Wissensstand absolut sicher, eine solche Verbindung nach außen freizugeben.
Um sicherzustellen, daß sich niemand mehr über Login/Passwort einloggen kann, kann (sollte) nach erfolgreichem Test die folgende Zeile in der Datei /etc/inetd.conf:
wie folgt abgewandelt werden:Code:ssh stream tcp6 nowait root /usr/sbin/dropbear dropbear -i
Mit dieser Einstellung ist dann ein Login über Kennwort per ssh überhaupt nicht mehr möglich (Wohl aber noch per Telnet, Webinterface, etc. pp.).Code:ssh stream tcp6 nowait root /usr/sbin/dropbear dropbear -i -s
Shell-Zugriff auf die Box von außerhalb haben wir nun also ... aber das ist vermutlich für die meisten Benutzer unterwegs der uninteressanteste Aspekt.
Wir haben aber in einem Rutsch auch gleich einen sftp-Server geschaffen, der sich - zumindest mit einem richtigen FTP-Client - auch genauso nutzen läßt wie ein normaler FTP-Server, nur eben sicher.
Wie man z.B. den FileZilla-Client für den Zugriff auf diesen Server nutzt, wird hier erklärt.
Auch hier ist - nach Anpassung der inetd.conf - keine Anmeldung über Benutzername und Kennwort mehr möglich, sondern nur für den Besitzer des privaten Schlüssels.
Wie aber kommen wir nun auch sicher an das Web-Interface oder den Stream-Server?
ssh-Tunnel einrichten
- putty erneut starten
- Profil laden
Wir laden das vorher erstellte Profil durch Auswählen in der Liste und Klick auf "Load".
- Tunnel erstellen
Wechseln in die Ansicht "Connection -> SSH -> Tunnels"
und dort die gewünschten Einstellungen vornehmen:
Es können beliebig viele Tunnel definiert werden, wobei jeweils einzustellen ist:
1. Source Port = Der Port auf der lokalen Maschine (Dem Client)
2. Destination = IP/Name plus Port auf der Zielmaschine (Der E2-Box)
Im abgebildeten Beispiel wird der lokale Port 17080 auf den Port 80 auf der E2-Box selber umgeleitet.
Diese beiden Angaben jeweils ausfüllen und auf [Add] klicken, danach ggf. für weitere Ports wiederholen.- Profil wieder abspeichern
Nachdem alle gewünschten Tunnel definiert wurden, einfach wieder auf die Ansicht "Sessions" zurückwechseln und das Profil durch Klick auf "Save" neu abspeichern.- Tunnel starten
Sobald nun mit diesem Profil wieder eine Verbindung hergestellt wird (Profil auswählen -> Load -> Open), werden gleichzeitig die eingestellten ssh-Tunnel geöffnet.
Das bedeutet:
Solange die ssh-Sitzung läuft, sind die eingestellten Zieladressen/Ports unter der Adresse des Clients plus dem eingestellten Port ansprechbar.
Um also den Web-Server der E2-Box aufzurufen (Siehe Beispiel oben), wird einfach im Webbrowser des Clients die Adresse http://127.0.0.1:17080 aufgerufen. Dieser Aufruf wird dann von putty durch den ssh-Tunnel zur Box transportiert und auf dieser an "localhost:80" weitergereicht ... also den Webserver der Box.
Komfort:
Wenn alles zur Zufriedenheit eingerichtet hat, kann man sich ganz einfach eine Desktop-/Schnellstart-/Sonstwas-Verknüpfung
mit dem Ziel
d:\path\to\putty.exe -load "my session"
also z.B.
C:\Programme\putty\putty.exe -load "Tut"
anlegen.
Danach genügt ein Doppelklick auf diese Verknüpfung und putty startet, baut eine ssh-Verbindung auf und stellt alle eingestellten Tunnel her.