Skip to content

Commit 559ceb0

Browse files
committed
fixing duplicate port forwarding events and blocking node:forwarding SessionData events on ServerContext.Close()
1 parent e124d38 commit 559ceb0

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

lib/srv/ctx.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -842,12 +842,12 @@ func (c *ServerContext) reportStats(conn utils.Stater) {
842842
// sessions are being recorded at the proxy (this would result in double
843843
// events).
844844
// Do not emit session data for git commands as they have their own events.
845-
if c.GetServer().Component() == teleport.ComponentProxy ||
846-
c.GetServer().Component() == teleport.ComponentForwardingGit {
845+
component := c.GetServer().Component()
846+
if component == teleport.ComponentProxy || component == teleport.ComponentForwardingGit {
847847
return
848848
}
849849
if services.IsRecordAtProxy(c.SessionRecordingConfig.GetMode()) &&
850-
c.GetServer().Component() == teleport.ComponentNode {
850+
(component == teleport.ComponentNode || component == teleport.ComponentForwardingNode) {
851851
return
852852
}
853853

lib/srv/forward/sshserver.go

+8
Original file line numberDiff line numberDiff line change
@@ -1710,6 +1710,14 @@ func isTeleportEnv(varName string) bool {
17101710
}
17111711

17121712
func (s *Server) emitAuditEventWithLog(ctx context.Context, event apievents.AuditEvent) {
1713+
// avoid emitting duplicate port forward audit events when targeting and agent
1714+
if !s.targetServer.IsOpenSSHNode() {
1715+
switch event.GetType() {
1716+
case events.PortForwardEvent, events.PortForwardLocalEvent, events.PortForwardRemoteEvent, events.PortForwardRemoteConnEvent:
1717+
return
1718+
}
1719+
}
1720+
17131721
if err := s.EmitAuditEvent(ctx, event); err != nil {
17141722
s.logger.WarnContext(ctx, "Failed to emit event", "type", event.GetType(), "code", event.GetCode())
17151723
}

0 commit comments

Comments
 (0)