Leider wird dieses Thema wohl nicht besonders viele interessieren. Doch statt ich mich die ganze Zeit aufrege, dass hier aus technischer Sicht tote Hose ist, versuche ich etwas Input zu liefern. Natürlich mit der Hoffnung, dass andere welche zur Zeit mehr nur passiv unterwegs sind über die Feiertage auch etwas Zeit finden und es mir nachtun.
SSH ist ein verschlüsseltes Protokoll um per Remote eine Netzwerkverbindung herzustellen. ssh um eine Remoteshell zu erhalten und scp um Dateien zu kopieren sind für Linux und Unix Admins wohl etwa die meistgebrauchten Tools. Natürlich gibt es auch Tools für Windows: z.B. Putty und winscp.
Wenn ich nun einen ssh Server habe, kann ich relativ einfach einen Socket zu diesem einrichten, welchen ich für eine gesicherte Verbindung gebrauchen kann:
ssh -D $port -N -f $user@$host
Als $port ist nicht der Remoteport sondern ein lokaler Port gemeint, welcher noch frei ist, dies kann Beispielsweise 4444 sein. Paramet -N steht dafür, dass auf der Gegenstelle nichts ausgeführt wird, -f damit das ganze im Background verläuft. $user und $host dürfte klar sein.
Mit ps -ef | grep ssh sehen wir nun, dass eine Verbindung besteht:
tux@main:~$ ps -ef | grep ssh
root 6409 1 0 12:20 ? 00:00:01 ssh -D 666 tux@lap -N -f
tux 6593 6576 0 13:39 pts/1 00:00:00 grep ssh
Nun kann man im Browser localhost auf dem eingestellten Port als Proxy verwenden. Der macht dann jegliche Verbindungen über diesen Server.
Stellt man im Firefox in about:config network.proxy.socks_remote_dns auf true um, geschiet auch die Namensauflösung über den Proxy.
Selbstverständlich funktioniert das ganze auch mit Windows (Putty): YouTube - SSH Tunneling
Das bringt es:
Man hat eine abhörsichere Verbindung.
Es ist schneller eingerichtet als ein üblicher Proxy, VPN oder ein forwarding mittels einer Firewall.
Man ruft eine Webseite vom Server her aus an. (Steht mein ssh-Server in Russland, habe ich eine russische IP-Adresse).
Einsatzzweck:
Wenn man zum Bleistift ans 25C3 geht und man annehmen muss, dass alle unverschlüsselten Passwörter welche man auf irgendwelchen Webforen oder sonstigem eingibt mitgeschnitten werden.
Wenn man einen Hardwaredefekt hat und der lokale Computer über das Wlan des Laptops ins Internet muss.
Wenn man einer Webseite vorgaukeln möchte, dass man aus dem Land des ssh-Servers kommt.
Wenn man aus anderen Gründen (wie eine ausgereifte Paranoia) eine gesichterte Verbindung haben möchte.
Leider habe ich noch nicht herausgefunden, wie man Systemweit den Socket benutzen kann. Evtl geht das mit iptables, da bin ich aber noch am suchen.