Einige standen schon vor dem Problem, dass hinter einem SSL-VPN Gateway ein Terminal Server Gateway (TSGW) implementiert werden soll, obwohl das TSGW selbst direkt die Verbindung entgegen nehmen könnte.

Hier wird kurz ein Workaround beschrieben, wie man ein Terminal Server Gateway, das hinter SSL-VPN Gateways die mit Hosts rewrite arbeiten, kontaktieren und verwenden kann. Bevor dieser Workaround produktiv eingesetzt wird, empfehle ich nochmalige Rücksprache mit dem Microsoft Produkt Support.

Um den Hosts rewrite bei SSL-VPN Gateways ranken sich viele Diskussionen - doch folgendes Problem gilt es meist zu lösen: Spätestens nach der Einführung von User Account Control (UAC) mit Windows Vista ist ein Hosts File rewrite ohne entsprechende Änderungen auf dem Clients „out of the box“ nicht möglich. Selbst wenn man einen Workaround für seine managed Clients schafft, funktioniert dieser nicht gesichert auf unmanaged Clients wie z.B. Home PCs oder gar Maschinen von Partner Firmen.

Viele SSL-VPN Lösungen arbeiten mit einem lokalen Port forwarding beim dem ein Port über ein Java Applet auf eine lokale IP-Adresse gemapped wird. Damit nun das Mapping für den User transparent wird, passt das Java Applet die lokale Hosts an damit der Anwender wie gewohnt (u.a.) interne FQDNs verwenden kann.

Bsp.: Hosts Datei nach einem Rewrite

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

127.0.11.101  tsgw.contoso.msft

Kann nun durch fehlende Rechte oder durch die UAC Restriktionen das Java Applet die Hosts Datei nicht umschreiben, steht am Ende auf dem Client zwar die Verbindung mit einem Port zur Verfügung aber FQDNs für das Ansprechen dieser Verbindung können nicht verwendet werden (Bsp.: 127.0.11.101:443).

Die größten Herausforderungen dürften an dieser Stelle die Konfiguration des Terminal Server Gateway Portals, die des Terminal Server Gateways selbst sowie das Erstellen eines entsprechenden X.509 Zertifikates sein. Folgende Punkte sollen aufzeigen welche Schritte hierfür notwendig sind:

  1. In der Konfiguration des Terminal Server Web Access muss die lokal verwendete statische IP-Adresse der SSL-VPN Verbindung auf dem Client (z.B. 127.0.1.101) hinterlegt werden.

    Untitled 01

  2. Nun muss passend zu dieser IP-Adresse ein entsprechendes Zertifikat für das Terminal Server Gateway generiert werden.
    In diesem Zertifikat sollte nun zum einen der FQDN des TSGWs und zum anderen die auf dem Client verwendete IP-Adresse enthalten sein. Dies kann zum Beispiel über das Web Enrollment Interface der Microsoft Active Directory Certificate Services (AD CS) von statten gehen. Hierzu kann der folgende Beispiel String „SAN:DNS=tsgw.contoso.msft&DNS=127.0.1.101” unter Attributes verwendet werden.

    Weiter Informationen hierzu
    TechNet Libary: Enrollment Processing
    (bitte auch folgende Artikel hierzu beachten, da dies nicht ganz den X.509 RFCs entspricht).
    RFC: Internet X.509 Public Key Infrastructure Certificate and CRL Profile
    RFC: DOMAIN NAMES - CONCEPTS AND FACILITIES

    AD CS Web-Enrollment Interface
    Untitled 02

  3. Nachdem das Zertifikat generiert wurde, kann es in die Konfiguration eingebunden werden. Danach kann das TSGW über den FQDN und über die im Zertifikat enthaltene IP-Adresse Verbindungen ohne Fehler entgegen nehmen.

    Terminal Server Gateway Eigenschaften (Screenshot wurde angepasst)
    Untitled 03

  4. Nun kann auf der Portalseite des SSL-VPN Gateways die Web-Site des Terminal Server Web Access eingebunden und die Verbindung zum TSGW über die SSL-VPN Verbindung getestet werden.