RDP im Browser: Apache Guacamole und Sophos UTM

Zwar besitzt die UTM mit dem HTML5 VPN auch eine Lösung um RDP Verbindungen im Browser darzustellen, jedoch läuft diese als innerhalb des Userportals. Wer nur eine öffentliche IP hat, muss also wie ich mit der eingebauten Sophos Lösung auf einen anderen Port ausweichen. Oft sind in anderen Netzwerken aber oft nur die gängigen Ports wie 80 und 443 geöffnet.

Ich stand vor genau diesem Problem, nur eine öffentliche IP, oft konnte ich über andere Ports keine Verbindung zum UTM Userportal herstellen. Der HTTPS Port wird schon durch die Webserver Protection und andere Dienste belegt.

Ich habe dann zunächst das Windows Admin Center getestet, ziemlich brauchbare Lösung, nur leider nicht in Verbindung mit der UTM Webserver Protection. Das Windows Admin Center verwendet WebSockets, dies wird jedoch nicht durch die UTM Webserver Protection unterstützt.

Es gibt aber Apache Guacamole Projekt, dies funktioniert bei mir bisher perfekt in Zusammenspiel mit der Webserver Protection. Vielleicht hilft dieser kleine Artikel ja noch anderen Leuten weiter, daher hier einmal kurz die Einrichtung der Webserver Protection für Guacamole.

Mein Aufbau sieht in etwa wie folgt aus:

Die Sophos UTM Webserver Protection nutzt ein kostenloses Wildcard Zertifikat von Let’s Encrypt. Die Webserver Protection läuft auf Port 443 (https) und leitet je nach Hostnamen an die echten Webserver weiter. Zur Zeit sind dies zum Beispiel ein Exchange Server und ein weiterer Webserver:

RDP im Browser: Apache Guacamole und Sophos UTM

Zusätzlich kommt jetzt nun noch eine kleine CentOS VM dazu, auf die Guacamole laufen soll. Ich nutze die CentOS Minimal Installation mit 1 GB RAM und 1 CPU. Die Installation von Guacamole ist ziemlich einfach, ich habe einfach dieses Installationsscript verwendet:

Das Script fragt ein paar Einstellungen ab und installiert eine fertige Guacamole Umgebung.

RDP im Browser: Apache Guacamole und Sophos UTM

Kleiner Hinweis: Ich habe Guacamole mit NGINX installiert, mehr dazu später.

Sobald Guacamole installiert ist, kann auf der UTM ein neuer Webserver angelegt werden:

RDP im Browser: Apache Guacamole und Sophos UTM

Danach wird ein Firewall Profil benötigt:

RDP im Browser: Apache Guacamole und Sophos UTM

Damit Guacamole funktioniert, sind ein paar Ausnahmen nötig. Diese Regeln musste ich übergehen:

  • 981257
  • 981245
  • 981246
  • 981243
  • 981204
  • 981172
  • 981173
  • 960015
  • 981203
  • 981318
  • 981176

Jetzt kann der virtuelle Webserver angelegt werden (Firewall Profil nicht vergessen):

RDP im Browser: Apache Guacamole und Sophos UTM

Da die Guacamole Installation über das Verzeichnis /guacamole aufgerufen wird, habe ich die NGIX Konfiguration noch etwas angepasst. So muss nicht bei jedem Aufruf das /guacamole angehangen werden:

  • /etc/nginx/conf.d/guacamole_ssl.conf

RDP im Browser: Apache Guacamole und Sophos UTM

Somit wird nun beispielsweise ein Aufruf von https://rdp.frankysweb.de nach https://rdp.frankyweb.de/guacamole umgeleitet. Mit einer entsprechenden Umleitung direkt in der UTM wollte es bei mir nicht funktionieren. Aktuell ist es also doppelt gemoppelt (UTM + NGNIX). Vielleicht hat da ja noch jemand einen Tipp?

Bisher konnte ich keine Einschränkungen in Verbindung mit der UTM feststellen, alles funktioniert wie geschmiert:

RDP im Browser: Apache Guacamole und Sophos UTM

Der Funktionsumfang ist zwar nicht mit dem Windows Admin Center zu vergleichen, aber die RDP Verbindung im Browser funktioniert erstklassig und ist extrem schnell:

RDP im Browser: Apache Guacamole und Sophos UTM

Ich habe zusätzlich noch die Reverse Authentication vorgeschaltet, dadurch wird derzeit allerdings doppelt nach Benutzernamen und Passwort gefragt. Ich werde mal schauen, ob sich Guacamole auf Basic Authentication umstellen lässt. man könnte es natürlich auch als 2-Faktor Authentifizierung so belassen Smile

4 thoughts on “RDP im Browser: Apache Guacamole und Sophos UTM”

  1. Hi
    Ich möchte Guacomole auch von extern nutzen und bin deinem Beispiel mit dem virtuellen Webserver gefolgt. Das klappt auch soweit gut. Benötige ich, wenn man die Reverse Proxy Fähigkeiten der Sophos UTM nutzt, auch noch nginx als Reverse Proxy Server?

    Gruß
    Andreas

    Reply
  2. Noch ne kleine Anregung, da das Problem häufiger Auftritt, auch schon bei sehr simplen Szenarien.
    Man kann über eine öffentliche IP die Webserver Protection, als auch das Userportal auf Port 443 laufen haben.
    Dazu könnte man einfach das Userportal auf ein anderes Interface legen(notfalls Dummyinterface) und dort lauschen lassen, dann kann man es ganz normal über die Webserver Protection nach außen freigeben.

    Reply
  3. Hi Frank

    beim downloaden des scripts bekomme ich immer einen 404 not found angezeigt , an was kann das liegen ?

    Reply
  4. Hallo,

    vielen Dank für den Artikel!

    Wir haben ebenfalls Guacamole als Lösung installiert, falls VPN und Konsorten mal nicht möglich / zugelassen ist.

    Wir haben die Erfahrung gemacht, dass Arbeiten hiermit zwar möglich, aber etwas unschön ist. Folgende Probleme haben wir hierbei:
    – Die Zwischenablage ist sehr umständlich (direktes Strg+C und Strg+V ist nicht möglich, synchronisierter Zwischenspeicher über Strg+Alt+Shift)
    – Bestimmte Tastenkombinationen werden vom Browser abgefangen anstatt durchgeleitet zu werden (z.B. F5, welches beim ABAP-Debugging der Einzelschritt ist, im Browser ein Refresh der gesamten Seite verursacht)

    Können Sie diese Dinge bestätigen oder ist dies ein lokales Problem bei uns?

    Auf Grund dieser Einschränkungen ist es bei uns eher eine Notlösung als eine echte Alternative.

    Reply

Leave a Comment