Teleport: "getrennt" beim Öffnen einer Webclient-Sitzung

Erstellt am 29. Jan. 2018  ·  5Kommentare  ·  Quelle: gravitational/teleport

Was ist passiert :

Der Endbenutzer hat in einem Terminalfenster die Nachricht disconnected erhalten, als er versuchte, eine Sitzung über die Web-Benutzeroberfläche des Teleport-Proxys zu öffnen.

Was Sie erwartet hatten :

Eine Web-Teleport-Sitzung, die erfolgreich geöffnet werden soll, oder eine Fehlermeldung mit dem Hinweis Websockets upgrade failed, please contact your Teleport administrator.

Wie man es reproduziert (so minimal und präzise wie möglich) :

Stellen Sie einen Load Balancer vor den Teleport-Proxy, der keine Upgrades der Websockets-Verbindung unterstützt. Als schnellen Test setzen Sie in Firefoxs about:config network.websocket.max-connections auf 0 .

Hinweis: Das mit Citrix NetScalers verwendete Standard-HTTP-Profil enthält möglicherweise keine Unterstützung für Websockets. Verschiedene Methoden zum Beenden von SSL am Rande von Load-Balancer-Produkten von Cloud-Anbietern (bei denen kein sauberer Layer4-VIP bis hin zum Teleport-Proxy verfügbar ist) lösen dieses Verhalten ebenfalls aus.

Umwelt :

  • Teleport-Version (benutze teleport version ): Teleport Enterprise v2.4.0
  • Tsh-Version (benutze tsh version ): gleich
  • Betriebssystem (z. B. aus / etc / os-release): beliebig

Browser-Umgebung

  • Browserversion (für Probleme mit der Benutzeroberfläche): Firefox 57
  • Installieren Sie die Tools: n / a
  • Andere: n / a

Relevante Debug-Protokolle, falls zutreffend

  • tsh --debug

In Teleport-Proxy-Protokollen gibt es einen Eintrag, der anzeigt, dass die Sitzung versucht wurde, aber keine Hinweise darauf, dass das Upgrade auf Websockets fehlgeschlagen ist: INFO Generated session ..

Hutspitze an Daniel G, weil er das geschlachtet hat.

bug

Hilfreichster Kommentar

Wenn jemand hierher kommt und nach der Nginx-Konfiguration sucht, um dies zu lösen, ist diese vielleicht nicht die beste, aber sie funktioniert:

    location / {
        proxy_pass https://127.0.0.1:3080;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

Alle 5 Kommentare

Diese kryptische Fehlermeldung kann auftreten, wenn ein Administrator versucht, einen lokalen Apache 2.x-Proxy vor die Web-Benutzeroberfläche des Teleport-Proxys zu stellen, wobei die Apache-Konfiguration Websockets (wss) nicht explizit unterstützt.

Leute tun dies in der Regel in Unternehmensumgebungen, damit Endbenutzer auf eine Vanity-https-URL zugreifen können, ohne Port: 3080 angeben zu müssen. (Oder es sind Firewalls vorhanden, die den Datenverkehr auf 443 beschränken.)

Ja, lassen Sie uns die Fehlermeldung in 2.5.1 verbessern

Wenn jemand hierher kommt und nach der Nginx-Konfiguration sucht, um dies zu lösen, ist diese vielleicht nicht die beste, aber sie funktioniert:

    location / {
        proxy_pass https://127.0.0.1:3080;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

Ebenso sah die Konfiguration, die ich für Apache benötigte, folgendermaßen aus:

RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:3080/$1 [P,L]

Nach dem Laden von mod_proxy_wstunnel.so natürlich. Viel Glück!

Ich habe mir die Javascript-Websocket-Ereignisse angesehen und leider keinen Weg gefunden, sie zu bekommen. Obwohl es in dem Fehlerstapel vorhanden ist, der in der Browserkonsole angezeigt wird, ist dieser bestimmte Nachrichtentext nicht über das Fehlerereignis selbst verfügbar, das an Websocket-Ereignishandler übergeben wird. Ich habe ein ähnliches Problem

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen