Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Most Teleport-specific ALPN protocols don't confirm the selected ALPN protocol #41500

Open
espadolini opened this issue May 13, 2024 · 0 comments
Labels
bug machine-id scale Changes required to achieve 100K nodes per cluster. server-access

Comments

@espadolini
Copy link
Contributor

Expected behavior:

Connecting to the Teleport web listener with a Teleport-specific ALPN (say, teleport-proxy-ssh-grpc) should result in the TLS ServerHello containing the negotiated protocol, as that will allow clients to not rely on potentially outdated autodetected state with regards to the presence of TLS terminators between the client and the control plane (that would trigger the HTTP Upgrade-based connection tunneling), and it will allow both parties to actually negotiate protocols among multiple ones that might be supported instead of just assuming that the chosen protocol is mutually supported.

Current behavior:

From a cursory look, the only protocol that works correctly is teleport-reversetunnel, with other protocols resulting in no protocol selection (which is hard to distinguish from a middlebox doing TLS interception with no idea of what to do with the Teleport-specific protocols); dishonorable mention to the magic teleport-auth@<hex cluster name> "tag" which only works on first position and completely changes the meaning of the ALPN selection, with the auth server actually requiring one of h2 or http/1.1 to be selected.

Bug details:

  • Teleport version: likely since the introduction of ALPN for protocol selection
  • Recreation steps: openssl s_client -connect <proxyhostname>:443 -alpn teleport-proxy-ssh
@espadolini espadolini added bug scale Changes required to achieve 100K nodes per cluster. server-access machine-id labels May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug machine-id scale Changes required to achieve 100K nodes per cluster. server-access
Projects
None yet
Development

No branches or pull requests

1 participant