-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Adds per-node ability to disable ssh TCP forwarding #6989
Conversation
Gah. I've left a heap of debugging rot in there... deleting |
264969c
to
5a20685
Compare
@tcsc I'll review this later today. |
3788204
to
2afce36
Compare
Prior to this change, TCP forwarding over SSH could only be disallowed by user-based rules, rather than by individual target nodes. This change adds * the `allow_tcp_forwarding` key to the yaml SSH config block, with values compatable with the equivalent setting for OpenSSH `sshd`, i.e. "yes", "no", "all" and "local" * Plumbing to pipe the resulting config value through to the SSH server * A predicate check in the SSH server to [dis]allow port forwarding based on the setting. See-Also: Issue #6783
164cf7b
to
9d3cf29
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docs sign-off. Thanks for the update!
@tcsc What do
To be honest, I don't understand what |
For our purposes The |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Collapsed all options back down to a boolean
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey team, sorry for being late to review.
A quick question before we proceed.
Here is the existing port forwarding option in RBAC:
# port_forwarding controls whether TCP port forwarding is allowed
port_forwarding: true
The name allow_tcp_forwarding
is slightly different, but has the same value? If that's the case, let's make the names identical - port_forwarding: true
.
The name was chosen to match the corresponding OpenSSH option, but if we are already using
I've pulled it back to a simple |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me after the requested changes are made. Get final UX sign-off from @klizhentas.
Prior to this change, TCP forwarding over SSH could only be disallowed by user-based rules, rather than by individual target nodes. This change adds: * the`port_forwarding` key to the yaml SSH config block, with a boolean value * Plumbing to pipe the resulting config value through to the SSH server * A predicate check in the SSH server to [dis]allow port forwarding based on the setting. This change also: * adds a common way for integration tests to await the establishment of an SSH session * refactors several integration tests to use this new method rather than manually waiting * adds some marshaling code to move errors from spawned goroutines back into the main test routine in verifySessionJoin() See-Also: Issue #6783
Prior to this change, TCP forwarding over SSH could only be disallowed by user-based rules, rather than by individual target nodes. This change adds: * the`port_forwarding` key to the yaml SSH config block, with a boolean value * Plumbing to pipe the resulting config value through to the SSH server * A predicate check in the SSH server to [dis]allow port forwarding based on the setting. This change also: * adds a common way for integration tests to await the establishment of an SSH session * refactors several integration tests to use this new method rather than manually waiting * adds some marshaling code to move errors from spawned goroutines back into the main test routine in verifySessionJoin() See-Also: Issue #6783
Prior to this change, TCP forwarding over SSH could only be disallowed by user-based rules, rather than by individual target nodes. This change adds: * the`port_forwarding` key to the yaml SSH config block, with a boolean value * Plumbing to pipe the resulting config value through to the SSH server * A predicate check in the SSH server to [dis]allow port forwarding based on the setting. This change also: * adds a common way for integration tests to await the establishment of an SSH session * refactors several integration tests to use this new method rather than manually waiting * adds some marshaling code to move errors from spawned goroutines back into the main test routine in verifySessionJoin() See-Also: Issue #6783
Prior to this change, TCP forwarding over SSH could only be disallowed by user-based rules, rather than by individual target nodes. This change adds: * the`port_forwarding` key to the yaml SSH config block, with a boolean value * Plumbing to pipe the resulting config value through to the SSH server * A predicate check in the SSH server to [dis]allow port forwarding based on the setting. This change also: * adds a common way for integration tests to await the establishment of an SSH session * refactors several integration tests to use this new method rather than manually waiting * adds some marshaling code to move errors from spawned goroutines back into the main test routine in verifySessionJoin() See-Also: Issue #6783
Prior to this change, TCP forwarding over SSH could only be disallowed
by user-based rules, rather than by individual target nodes.
This change adds
allow_tcp_forwarding
key to the yaml SSH config block, with a boolean valueThis change also
verifySessionJoin()
See-Also: Issue #6783