Ich habe das ganze an einem Windows 7-Client in Kombination mit dem ISA-Server 2006 getestet.

Situation:

Wir sitzen in einem Netzwerk in dem der ausgehende Internet-Verkehr nur durch einen ISA-Server möglich ist, dieser verlangt eine Authentifizierung. Wir möchten uns per SSH auf unseren Server im Internet aufschalten. Der ISA-Server lässt verschlüsselte Verbindungen lediglich über den Port 443 heraus.

Plan / Problem:

Da der ISA-Server verschlüsselte Verbindungen nur über den Port 443 raus lässt, setzen wir unseren SSH-Server auf genau diesen Port. Mit Putty versuchen wir nun eine Verbindung aufzubauen, die Verbindung schlägt aber fehl, obwohl wir die richtigen Zugangsdaten für den Proxy mit angegeben haben. Es erscheint beim Verbinden über PuTTY folgende Fehlermeldung:

Proxy error: 407 Proxy Authentication Required

Lösung:

Mit dem Programm "NTLMaps (NTLM Authorisation Proxy Server)" lässt sich dieses Problem lösen, da dieses in Python geschriebene Programm die Anmeldung am Proxy-Server für uns regelt. Daraufhin können wir unseren eigenen Rechner als Proxy-Server im PuTTY angeben, und so die Verbindung zum SSH-Server im Internet aufbauen.

Das werden wir alles benötigen, um uns auf unseren SSH-Server zu verbinden:

Zuerst wird Python installiert. Ich habe dabei die Version 2.7.2 verwendet, mit der neueren Version 3.2.1 funktionierte das NTLMaps-Script bei mir nicht.
Danach entpacken wir NTLMaps in einen Ordner (z.B. C:\ntlmaps) und öffnen dort die Datei server.cfg. Hier passen wir nun folgende Punkte unseren Bedürfnissen an:

LISTEN_PORT:5865 (frei wählbar)
PARENT_PROXY:<PROXYSERVER>
PARENT_PROXY_PORT:8080 (der Port des Proxyservers)
NT_DOMAIN:<DOMAIN>
USER:<USER>
PASSWORD:<PASSWORT>

Nun starten wir NTLMaps innerhalb einer Eingabeaufforderung:

c:\python27\python.exe c:\ntlmaps\main.py

Die Pfade müssen natürlich evtl. angepasst werden. Man kann auch das fertige Script runserver.bat benutzen, welches sich im ntlmaps-Verzeichnis befindet (ggf. vorher anpassen).

Nach der Eingabe läuft dann auch schon das Programm und wartet am Port 5865 auf unsere Verbindungen (solange man den Port nicht angepasst hat):

NTLMaps

Nun können wir die PuTTY-Verbindung zum SSH-Server aufbauen:

PuTTY

...dabei geben wir unseren eigenen Rechner als (HTTP)-Proxy-Server an:

Das müsste es gewesen sein, die Verbindung steht (hoffentlich ;) !