Skip to content

Commit

Permalink
Enable minimal web handler when proxy protocol is enabled (#22753)
Browse files Browse the repository at this point in the history
This change fixes a bug where the minimal web handler (#12730) is not
created when proxy protocol is enabled.
  • Loading branch information
atburke authored Mar 22, 2023
1 parent 7283900 commit 64b10f1
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 22 deletions.
45 changes: 25 additions & 20 deletions integration/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7100,33 +7100,38 @@ func testListResourcesAcrossClusters(t *testing.T, suite *integrationTestSuite)
}

func testJoinOverReverseTunnelOnly(t *testing.T, suite *integrationTestSuite) {
lib.SetInsecureDevMode(true)
defer lib.SetInsecureDevMode(false)
for _, proxyProtocolEnabled := range []bool{false, true} {
t.Run(fmt.Sprintf("proxy protocol: %v", proxyProtocolEnabled), func(t *testing.T) {
lib.SetInsecureDevMode(true)
defer lib.SetInsecureDevMode(false)

// Create a Teleport instance with Auth/Proxy.
mainConfig := suite.defaultServiceConfig()
mainConfig.Auth.Enabled = true
// Create a Teleport instance with Auth/Proxy.
mainConfig := suite.defaultServiceConfig()
mainConfig.Auth.Enabled = true

mainConfig.Proxy.Enabled = true
mainConfig.Proxy.DisableWebService = false
mainConfig.Proxy.DisableWebInterface = true
mainConfig.Proxy.Enabled = true
mainConfig.Proxy.DisableWebService = false
mainConfig.Proxy.DisableWebInterface = true
mainConfig.Proxy.EnableProxyProtocol = proxyProtocolEnabled

mainConfig.SSH.Enabled = false
mainConfig.SSH.Enabled = false

main := suite.NewTeleportWithConfig(t, nil, nil, mainConfig)
t.Cleanup(func() { require.NoError(t, main.StopAll()) })
main := suite.NewTeleportWithConfig(t, nil, nil, mainConfig)
t.Cleanup(func() { require.NoError(t, main.StopAll()) })

// Create a Teleport instance with a Node.
nodeConfig := suite.defaultServiceConfig()
nodeConfig.Hostname = Host
nodeConfig.SetToken("token")
// Create a Teleport instance with a Node.
nodeConfig := suite.defaultServiceConfig()
nodeConfig.Hostname = Host
nodeConfig.SetToken("token")

nodeConfig.Auth.Enabled = false
nodeConfig.Proxy.Enabled = false
nodeConfig.SSH.Enabled = true
nodeConfig.Auth.Enabled = false
nodeConfig.Proxy.Enabled = false
nodeConfig.SSH.Enabled = true

_, err := main.StartNodeWithTargetPort(nodeConfig, helpers.PortStr(t, main.ReverseTunnel))
require.NoError(t, err, "Node failed to join over reverse tunnel")
_, err := main.StartNodeWithTargetPort(nodeConfig, helpers.PortStr(t, main.ReverseTunnel))
require.NoError(t, err, "Node failed to join over reverse tunnel")
})
}
}

func getRemoteAddrString(sshClientString string) string {
Expand Down
3 changes: 1 addition & 2 deletions lib/service/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -3239,8 +3239,7 @@ func (process *TeleportProcess) setupProxyListeners(networkingConfig types.Clust
listeners.web = listeners.mux.TLS()
process.muxPostgresOnWebPort(cfg, &listeners)
if !cfg.Proxy.ReverseTunnelListenAddr.IsEmpty() {
listeners.reverseTunnel, err = process.importOrCreateListener(ListenerProxyTunnel, cfg.Proxy.ReverseTunnelListenAddr.Addr)
if err != nil {
if err := process.initMinimalReverseTunnelListener(cfg, &listeners); err != nil {
listener.Close()
listeners.Close()
return nil, trace.Wrap(err)
Expand Down

0 comments on commit 64b10f1

Please sign in to comment.