Konfiguration HTTPS-Tunnel Installation und Hinweise für Entwickler und Administratoren Weitere Informationen zu CATS finden Sie im Internet unter www.cats.ms Stand: 07.06.2006 by SPUeNTRUP Software 1/9
Inhaltsverzeichnis 1 Zugriff auf externe Server über HTTPS-Tunnel und Fernwartung über SHH-Verbindung im HTTPS-Tunnel... 3 2 Einleitung... 3 3 Grundlagen... 3 4 SSH-Verbindungen... 5 5 Konfiguration und Bedienung HTTPS-Tunnel... 5 6 Standardwerte für den Einsatz... 6 7 Lokale Client Anwendung starten... 6 8 MS Terminalserver Client... 7 9 SSH-Client starten... 7 10 Kurzanleitung HTTPS-Tunnel mit MSTSC und SSH-Client... 8 11 Kontakt... 9 by SPUeNTRUP Software 2/9
1 Zugriff auf externe Server über HTTPS-Tunnel und Fernwartung über SHH-Verbindung im HTTPS-Tunnel Dieses Dokument beschreibt ausführlich die Grundlagen und Benutzung von HTTPS-Tunnel und die Kombination von HTTPS-Tunnel mit SSH. Wenn Sie mit den Themen HTTPS, Portforwarding und Firewall vertraut sind (z. B. Netzwerk-Administrator), können Sie die Einleitung getrost überspringen. 2 Einleitung Fernwartung über das Internet ist eine sehr praktische, schnelle und preiswerte Möglichkeit, Arbeiten auf einem fernen Rechner auszuführen. Aus sehr gutem Grunde sind sorgfältig administrierte Firewalls heutzutage so eingestellt, dass grundsätzlich keine (unkontrollierten) Verbindungen von und nach außen akzeptiert werden. Verbindungen vom LAN nach außen sind auf Web (http und https) beschränkt. Der Zugriff erfolgt zumeist über einen sog. Web-Proxy, der den Verbindungstyp und Verbindungsinhalte kontrolliert ( statefull expection ). Praktische Probleme treten häufig auf, wenn der Zugriff z. B. auf einen externen Terminalserver erfolgen soll. Das werden Sie z. B. feststellen, wenn Sie versuchen, unseren Terminalserver (theresa.cats.ms) zu erreichen (START/AUSFÜHREN/mstsc.exe). HTTPS-Tunnel ist ein Werkzeug, das den definierten Zugriff auf festgelegte Ziele (IP-Adressen) und Dienste (Ports) erlaubt, ohne Löcher in die Firewall einbauen zu müssen. Der Kunde behält vollständige Kontrolle über die ausgeführten Zugriffe. Wenn weiterhin ein Zugriff durch uns auf Ihren Rechner (z. B. Installation CATS Server) gewünscht wird, gibt es mit SSH ein weiteres Standard-Werkzeug. Da SSH-Verbindungen häufig gesperrt sind, wird optional eine SSH-Verbindung durch den HTTPS-Tunnel gelegt. 3 Grundlagen Eine TCP-Verbindung (das ist der wesentliche Verbindungstyp) besteht immer aus zwei IP-Adressen der beiden Rechner, zwischen denen die Verbindung besteht und zwei Anschlussnummern ( Ports ). In diesem Beispiel besteht eine Verbindung zwischen dem Rechner mit der IP-Adresse 192.168.11.22 Port 8888 und 192.168.11.88 Port 80. Auf Servern wurden für bestimmte Dienste feste Ports vereinbart. Hier relevant sind die Ports 80 (über diesen Port senden Webserver Internetseiten mittels http-protokoll. Sie kennen das vom Surfen im Internet). by SPUeNTRUP Software 3/9
Für sichere Verbindungen (z. B. beim Online-Banking) gibt es die Möglichkeit, verschlüsselte Daten zu übertragen (https = http-secure ). Für diesen Verbindungstyp hat sich der Port 443 eingebürgert. Da die Daten verschlüsselt werden, kann die Firewall den Inhalt nicht kontrollieren und reicht die Daten praktisch transparent weiter. Dies gilt, sofern der Rechner, der die Verbindung aufbaut, dafür das https-protokoll verwendet hat. In nachfolgendem Bild auf der nächsten Seite baut der Client-PC (links) eine IP-Verbindung zum Proxy bzw. der Firewall auf, die u. U. auch den Inhalt der Datenverbindung kontrolliert. Der Proxy seinerseits baut dann die Verbindung zum Internet-Server auf. In diesem Fall zu Port 443, also eine verschlüsselte Verbindung. Wird nun ein entsprechend konfigurierter HTTPS-Tunnel gestartet, wird ein lokaler Port (hier: 3389) erstellt, der von anderen Programmen und Rechnern wie ein Server ansprechbar ist. Tatsächlich aber baut HTTPS-Tunnel eine Verbindung (unter Verwendung des https-protokolls) auf und leitet die Daten transparent auf den Server im Internet, dort Port 443, weiter. Dieser Server leitet seinerseits nun die Daten unverändert zum Terminalserver, Port 3389. Man nennt das port-forwarding. Hinweis: Sofern der lokale Rechner einen Dienst auf dem Port 3389 ausführt (Terminaldienst z. B. unter Windows XP Professional oder diversen Windows Servern) kann dieser Port nicht verwendet werden. Daher verwenden Sie einen anderen, freien Port. Ports oberhalb 6000 sind zumeist frei. Im Ergebnis können so die Rechner im Netz des Kunden über die IP-Adresse des Rechners, der HTTPS-Tunnel gestartet hat, auf den Terminalserver zugreifen. by SPUeNTRUP Software 4/9
4 SSH-Verbindungen SSH ( secure shell ) ist ein weiteres verschlüsseltes Protokoll. Im Gegensatz zu dem bei https verwendeten SSL ( secure socket layer ) Protokoll können bei SSH zusätzlich auch Ports des fernen Servers auf ein internes Ziel weitergeleitet werden. Beim oben beschriebenen HTTPS-Tunnel werden nur lokale Ports auf das ferne Ziel geleitet, nun geht es anders herum. SSH wird von einigen Firewalls nicht ohne Konfiguration zugelassen. Daher ist es naheliegend, die SSH-Verbindung durch den HTTPS-Tunnel zu legen. Da der Port 443 des fernen Servers nicht mehrere Dienste anbieten kann, steht für SHH ein separater Server zur Verfügung. Die Konfiguration zeigt die Darstellung auf der folgenden Seite. In diesem Szenario wird vom HTTPS-Tunnel eine Verbindung zu rom.cats.ms:443 aufgebaut. Ein Port des Rechners mit dem Tunnel (links) wird vom SSH-Client verwendet, um durch den HTTPS- Tunnel den SSH- Server (rechts unten) zu erreichen. SSH ist so konfiguriert, dass Ports des SSH- Servers auf verschiedene Ports an einen oder mehrere Rechner (im Schema unten links) weitergeleitet werden (siehe rote Pfeile). Die einzelnen Programme (HTTPS-Tunnel, SSH.exe) können prinzipiell auf verschiedenen Rechnern eingesetzt werden. Es sind lediglich die korrekten Adressen und Ports zu konfigurieren. 5 Konfiguration und Bedienung HTTPS-Tunnel Der HTTPS-Tunnel besteht lediglich aus einer Programmdatei HTTPStunnel.exe, die ihre Konfiguration in einer.ini-datei HTTPStunnel.ini ablegt. Nach dem Start erscheint die nachfolgende Maske. Sofern Ihre Firewall bzw. Ihr Web-Proxy ein Login erfordert, tragen Sie diese Daten mit in die entsprechenden Felder ein. Der unter Lokaler Port angegebene TCP-Port wird über den Tunnel weitergeleitet (siehe oben, port-forwarding ). Die Konfiguration können Sie, ggf. mit Passwort, speichern und über das Auswahlfeld oben zwischen verschiedenen Konfigurationen wählen. Tipp: Sie können das Fenster vergrößern, um die Protokollausgabe leichter lesen zu können. by SPUeNTRUP Software 5/9
6 Standardwerte für den Einsatz Zur Info: Die nachfolgenden Standardwerte können Sie anpassen und speichern: [HTTPSTunnel] Default=Default [Default] Ziel_Host=rom.cats.ms Ziel_Port=443 Proxy_Host=<Hier Proxy-Adresse eintragen!> Proxy_Port=80 Proxy_User= Proxy_Passwort= Passwort_Speichern=1 Lokaler_Port=8888 [Terminalserver_Demo] Ziel_Host=demo.cats.ms Ziel_Port=443 Proxy_Host=<Hier Proxy-Adresse eintragen!> Proxy_Port=80 Proxy_User= Proxy_Passwort= Passwort_Speichern=1 Lokaler_Port=8888 [Fernwartung_SSH] Ziel_Host=rom.cats.ms Ziel_Port=443 Proxy_Host=<Hier Proxy-Adresse eintragen!> Proxy_Port=80 Proxy_User= Proxy_Passwort= Passwort_Speichern=1 Lokaler_Port=22 7 Lokale Client Anwendung starten Nach dem Start des HTTPS-Tunnels können Sie die gewünschte Client-Anwendung starten. In unseren Fällen ist das die Anwendung MSTSC ( Microsoft TerminalServerClient ) um auf den Terminalserver zugreifen zu können bzw. der SSH-Client für die spätere Fernwartung. by SPUeNTRUP Software 6/9
8 MS Terminalserver Client MSTSC ist unter Windows XP und höher bereits enthalten. Bei allen älteren Windows-Versionen ist der Client zu laden. Besonders einfach sind die heutigen Clients, weil sie lediglich aus zwei Dateien bestehen. Wir empfehlen, diese in das Windows-Verzeichnis zu kopieren. Die Verbindungskonfiguration lässt sich dabei in.rdp-dateien speichern. Da sie kaum bekannt ist, hier die Parameter, die MSTSC versteht : MSTSC [<Connection File>] [/v:<server[:anschluss]>] [/console] [/f[ullscreen]] [/w:<breite> /h:<höhe>] /Edit"ConnectionFile" /migrate /? <Connection File> -- Bestimmt die.rdp-datei für die Verbindung. /v:<server[:port]> -- Der Terminalserver, mit dem die Verbindung hergestellt werden soll. /console -- Stellt die Verbindung mit der Konsolensitzung des Servers her. /f -- Startet den Client im Vollbildmodus. /w:<breite> -- Bestimmt die Breite des Remotedesktopbildschirms. /h:<höhe> -- Bestimmt die Höhe des Remotedesktopbildschirms. /edit -- Öffnet die angegebene.rdp-datei zum Bearbeiten. /migrate -- Migriert ältere Verbindungsdateien, die mit Clientverbindungs- Manager erstellt wurde, in neue.rdp-verbindungsdateien. /? -- Generiert diese Syntaxmeldung. Um nun die Verbindung mit dem Terminalserver herzustellen, starten Sie MSTSC und geben als Computer den Rechner und Port an, auf dem der HTT- PS-Tunnel läuft. Insbesondere bei langsamen Verbindungen können Sie die Geschwindigkeit unter Optionen anpassen. Wenn Sie MSTSC auf der Maschine gestartet haben, auf dem auch der Tunnel läuft, können Sie als Computernamen localhost oder die IP-Adresse 127.0.0.1 verwenden. Diese beiden Werte sind Synonyme für den lokalen Computer. Die Angabe dieser Werte erspart die Kenntnis und Angabe der eigenen Adresse bzw. des eigenen Rechnernamens. Nun können Sie in gewohnter Weise mit dem entfernten Rechner (Terminalserver) arbeiten. 9 SSH-Client starten Zunächst ist der HTTPS-Tunnel zu starten, nun mit der Konfiguration für den Einsatz mit dem SSH- Client. Der SSH-Client ist ein Programm, dass über ein Script SSHstart.bat gestartet wird. Die Konfiguration liegt in der Datei config.ssh, die der unter Linux üblichen Datei ssh_config entspricht. Der hier verwende SSH-Client entstammt dem Cygwin-paket und wurde auf ein Minimum reduziert, um möglichst unkompliziert damit zu arbeiten (kein Setup etc.) und einen möglichst kleinen Download bereit zu stellen. In der Konfigurationsdatei sind Ports angegeben, die vom fernen Server (rom.cats.ms) auf die lokalen Maschinen weitergeleitet werden sollen. Um ein Login zu ermöglichen, ist noch eine Datei identity erforderlich, die Sie von unserer Hotline erhalten. by SPUeNTRUP Software 7/9
10 Kurzanleitung HTTPS-Tunnel mit MSTSC und SSH- Client HTTPS-Tunnel ist ein Programm, dass einen TCP-Port des lokalen Windows PCs mittels SSL auf einen fernen Server weiterleitet. Da das Programm auf dem HTTPS-Protokoll aufsetzt, können unkompliziert Dienste selbst dann genutzt werden, wenn diese selbst kein HTTP(S)-Protokoll verwenden, ein Zugriff nach außen aber nur über einen Web-Proxy möglich ist. HTTPS-Tunnel ist lediglich ein einzelnes Programm, dessen Konfiguration in einer gleichnamigen.ini Datei abgelegt wird. Über den so aufgebauten Tunnel werden von uns derzeit zwei Dienste angeboten: Zugriff auf unseren Demo-Terminalserver und Zugriff auf einen SSH-Server. Das nachfolgende Schema zeigt diesen Zusammenhang: Für den Zugriff auf den Terminalserver wird ein Windows Terminalclient (Remotedesktop, MST- SC.exe) benötigt, der ab Windows XP im Betriebssystem enthalten ist. Bei älteren Versionen von Windows ist der Client erst zu installieren, junge Versionen bestehen aus lediglich einem Executable und einer DLL, die z. B. in das Windows-Verzeichnis kopiert werden. Mit MSTSC /? kann eine Befehlszeilenhilfe angefordert werden. Für den Einsatz in Fernwartungszugriffen wird durch den HTTPS-Tunnel eine SSH-Verbindung aufgebaut. Diese erlaubt zusätzlich ein remote port forwarding. Somit kann eine interne Maschine -unter Kontrolle des Kunden- erreichbar gemacht werden, was z. B. bei der Installation des CATS Servers zum Einsatz kommt. Als SSH-Client wurden die zwingend erforderlichen Dateien aus dem Cygwin-Paket zusammengestellt. Die SSH-Konfiguration entspricht der Linux Variante, die Konfiguration wurde aber in die Datei config.ssh (statt ssh_config) hinterlegt, um unter Windows 9x Probleme zu vermeiden. Für den Zugriff auf unseren Server ist ein Schlüssel (Datei identity ) erforderlich, den Sie von der Hotline erhalten. by SPUeNTRUP Software 8/9
11 Kontakt SPUeNTRUP Software Windbreede 12 D- 48157 Münster Tel.: 0251 / 322 311 0 0700 / CALL CATS Fax.: 0251 / 322 311 99 Web: www.cats.ms E-Mail: info@cats.ms by SPUeNTRUP Software 9/9