schneerunzel
Goto Top

HTML5 RDP Client Reverse Proxy

Moin zusammen,

ich habe folgendes Problem:

Wir betreiben einen Terminalserver auf dem wir RemoteApps bereit stellen. Auf dieses System soll nun per HTML5 Webclient zugegriffen werden.
Dazu muss die Verbindung über unseren bestehenden nginx Reverse Proxy laufen.

Intern (direkt) funktioniert der Zugriff auch wunderbar. Ich kann mich anmelden und die Apps starten. Versuche ich von Außen über den Reverse Proxy zuzugreifen, erhalte ich immer die Fehlermeldung:

Wir konnten leider keine Verbindung mit "XXXXX" herstellen.
Die Verbindung mit dem Remotecomputer wurde unterbrochen. Unter Umständen liegt ein Problem mit der Netzwerkverbindung vor. Sollte das Problem wiederholt auftreten, wenden Sie sich an Ihren Administrator oder an den technischen Support.

Ich hab dazu mal etwas im Internet gesucht und zwei unterschiedliche Aussagen gefunden.

In diesem Beitrag scheint die Lösung zu sein, dass nicht mehr auf einen Webproxy gesetzt wird, sondern auf einen Stream Proxy
Hilfe Reverse Proxy NGINX RD Gateway DMZ LAN

In diesem Beitrag scheint es dann doch wieder mit einem Reverse Proxy zu funktionieren
serverfault.com/questions/968276/win-server-2019-rds-html-5-web-client-not-working-behind-nginx-web-proxy


Meine Konfig sieht dabei so aus:
server {
    server_name rdp.meineexternedomain.net;
    listen 443 ssl; 

    ssl_certificate /etc/ssl/certs/cert.pem;
    ssl_certificate_key /etc/ssl/private/key.key;

    include snippets/authelia.conf; # Authelia auth endpoint

    location /
    {
         return 301 /RDWeb/webclient;
    }

    location /RDWeb/
    {
        proxy_pass https://rdp.intern.net/RDWeb/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  # security headers
  add_header X-Frame-Options "SAMEORIGIN" always;  
  add_header X-XSS-Protection "1; mode=block;" always;  
  add_header X-Content-Type-Options "nosniff" always;  
  add_header Referrer-Policy "no-referrer-when-downgrade" always;  

  ### This is the header referenced above ###
  add_header Content-Security-Policy "default-src * data: 'unsafe-eval' 'unsafe-inline'; img-src * data: blob:; media-src * data: blob:" always;  

  add_header X-Robots-Tag none;
  add_header X-Download-Options noopen;
  add_header X-Permitted-Cross-Domain-Policies none;

  ### Be careful with this header; this will cause your site to break if it ever stops serving over TLS
  add_header Strict-Transport-Security "max-age=15552000; includeSubDomains";  

  # . files
  location ~ /\. {
    deny all;
  }

  # gzip
  gzip on;
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_types text/plain text/css text/xml application/json application/javascript application/xml+rss application/atom+xml image/svg+xml;
}

Hat jemand eine Idee, wo das Problem liegen könnte?

Content-Key: 2853839937

Url: https://administrator.de/contentid/2853839937

Printed on: April 27, 2024 at 01:04 o'clock

Member: Dani
Dani May 20, 2022 updated at 19:22:30 (UTC)
Goto Top
Moin,
administrator.de/forum/hilfe-reverse-proxy-nginx-rd-gateway-dmz-lan-612192.html
In diesem Beitrag ging es um RDWeb. RDWeb bzw. RDPoverHTTPs und RD Webclient sind zwei paar Schuhe.

Meine Konfig sieht dabei so aus:
Was wird denn seitens Browser in den Entwickler Tools (F12) im Reiter Konsole (je nach Browser heißt dieser anders) geschrieben. Primär interessieren mich mögliche Fehler und Warnungen.

Hat jemand eine Idee, wo das Problem liegen könnte?
Grundlegend muss der Reverse Proxy das Web Socket Protocol unterstützt. Darauf baut nämlich der RD Webclient (HTML5) auf. Ich habe bis dato nur funktionierende Konfigurationen mit Apache Webserver gesehen.

Ad-Hoc würde ich folgende Zeilen in deiner Konfiguration ab Zeile 20 hinzufügen:
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";  
Wie immer: Ungetestet umd damit ohne Gewähr.


Gruß,
Dani
Member: schneerunzel
schneerunzel May 22, 2022 at 18:26:59 (UTC)
Goto Top
Moin,

vielen lieben Dank für den Tipp.
Leider funktioniert es immer noch nicht-
In der Console finde ich folgende Fehlermeldung:
screenshot 2022-05-22 202005
screenshot 2022-05-22 202029
screenshot 2022-05-22 202316
screenshot 2022-05-22 202337
screenshot 2022-05-22 202532
Member: schneerunzel
Solution schneerunzel May 22, 2022 at 18:44:36 (UTC)
Goto Top
Habe den Fehler gefunden ;)

Wenn man sich die Fehler ansieht, dann steht es da auch ganz klar...

Das Problem lag darin, das ich die Umleitung auf /RDWeb/webclient über den ngnix gemacht habe.

Wenn ich den Proxy nur auf / setzte gehts.
(Siehe auch den Links serverfault.com/questions/968276/win-server-2019-rds-html-5-web-client-not-working-behind-nginx-web-proxy)
Member: Dani
Dani May 22, 2022 updated at 19:13:10 (UTC)
Goto Top
Moin,
Habe den Fehler gefunden ;)
sehr schön.

Kannst du auch RemoteApps starten? Denn erst dabei wird WS benötigt.
Wenn alles tut wie es soll, bitte noch die vollständige Konfiguration für die Nachwelt posten.


Gruß,
Dani