-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[v8]: Desktop Access backports for 8.1.0 (#9678)
* Tweak LDAPS troubleshooting docs Make it clear that an LDAP connection reset can be due to attempting to connect on port 389 (which is what our original instructions advised) * Update example username desktop service to single quotes * Update rdp-rs (#9344) This includes gravitational/rdp-rs#5 which will show a better error message for protocol negotiation failures. Also bump the libc dependency while we're at it. All other crates are still up to date. * Allow locking a desktop Prior to this change, desktop access only respected locks on users or roles. This introduces a desktop as a lock target, preventing new connections and terminating existing connections to a locked desktop. Note: when a lock is created, connection attempts will fail with the generic "websocket connection failed" error. This will be addressed with #8584. Updates #8742 * Update locking guide to include Windows Desktops * Emit the correct session ID for SessionLeave events Fixes #9574 * Adds the windows_desktop_service section to the meta teleport.yaml (#9573) * fixes mdx comment style (#9599) * fixes mdx comment style. leaves a test of the previous comment style in there to see how it got past CI * removing bad comment * Disable RDP client on ARM 32 bit (#9667) Disable RDP client on ARM to remove libatomic dependency on Linux. * Update e ref Co-authored-by: Steven Martin <[email protected]> Co-authored-by: Isaiah Becker-Mayer <[email protected]> Co-authored-by: Jakub Nyckowski <[email protected]>
- Loading branch information
1 parent
bd9acab
commit 80122c9
Showing
19 changed files
with
840 additions
and
693 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -25,28 +25,61 @@ matching the lock's target. | |
|
||
A lock can target the following objects or attributes: | ||
|
||
- a Teleport user by the user's name, | ||
- a Teleport [RBAC](../reference.mdx) role by the role's name, | ||
- an MFA device by the device's UUID, | ||
- an OS/UNIX login, | ||
- a Teleport user by the user's name | ||
- a Teleport [RBAC](../reference.mdx) role by the role's name | ||
- an MFA device by the device's UUID | ||
- an OS/UNIX login | ||
- a Teleport node by the node's UUID (effectively unregistering it from the | ||
cluster). | ||
cluster) | ||
- a Windows desktop by the desktop's name | ||
|
||
## Prerequisites | ||
|
||
- Installed [Teleport](../getting-started.mdx) >= (=teleport.version=) or [Teleport Cloud](../../cloud/introduction.mdx). | ||
- [Tctl admin tool](https://goteleport.com/teleport/download) >= (=teleport.version=). | ||
- Installed [Teleport](../getting-started.mdx) >= (=teleport.version=) or [Teleport Cloud](../../cloud/introduction.mdx) | ||
- [Tctl admin tool](https://goteleport.com/teleport/download) >= (=teleport.version=) | ||
|
||
(!docs/pages/includes/tctl.mdx!) | ||
|
||
## Step 1/2. Create a lock | ||
|
||
To create a new lock, one can run the `tctl lock` command: | ||
|
||
```code | ||
$ tctl lock [email protected] --message="Suspicious activity." --ttl=10h | ||
# Created a lock with name "dc7cee9d-fe5e-4534-a90d-db770f0234a1". | ||
``` | ||
<Tabs> | ||
<TabItem label="Username"> | ||
```code | ||
$ tctl lock [email protected] --message="Suspicious activity." --ttl=10h | ||
# Created a lock with name "dc7cee9d-fe5e-4534-a90d-db770f0234a1". | ||
``` | ||
</TabItem> | ||
<TabItem label="Role"> | ||
All users with assigned roles matching the target role will be locked. | ||
```code | ||
$ tctl lock --role=contractor --message="All contractor access is disabled for 10h." --ttl=10h | ||
# Created a lock with name "dc7cee9d-fe5e-4534-a90d-db770f0234a1". | ||
``` | ||
</TabItem> | ||
<TabItem label="Multi-factor device"> | ||
All connections initated with per-session MFA matching the device ID will be locked. | ||
```code | ||
$ tctl lock --mfa-device=d6c06a18-e147-4232-9dfe-6f83a28d5850 --message="All contractor access is disabled for 10h." --ttl=10h | ||
# Created a lock with name "d6c06a18-e147-4232-9dfe-6f83a28d5850". | ||
``` | ||
</TabItem> | ||
<TabItem label="Node"> | ||
All connections to the specified node will be locked. | ||
```code | ||
$ tctl lock --node=363256df-f78a-4d99-803c-bae19da9ede4 --message="The node is under investigation." --ttl=10h | ||
# Created a lock with name "dc7cee9d-fe5e-4534-a90d-db770f0234a1". | ||
``` | ||
</TabItem> | ||
<TabItem label="Windows Desktop"> | ||
All connections to the specified Windows Desktop will be locked. | ||
```code | ||
$ tctl lock --windows-desktop=WIN-FMPFM5UF1SS-teleport-example-com --ttl=10h | ||
# Created a lock with name "dc7cee9d-fe5e-4534-a90d-db770f0234a1". | ||
``` | ||
</TabItem> | ||
</Tabs> | ||
|
||
<Details | ||
title="Troubleshooting: failed to create a lock?" | ||
|
@@ -75,7 +108,7 @@ spec: | |
``` | ||
```code | ||
$ tctl create -f locksmith.yaml | ||
$ tctl create -f locksmith.yaml | ||
# role 'locksmith' has been created | ||
``` | ||
|
||
|
@@ -146,8 +179,8 @@ If a Teleport node or proxy cannot properly synchronize its local lock view | |
with the backend, there is a decision to be made about whether to rely on the | ||
last known locks. This decision strategy is encoded as one of the two modes: | ||
- `strict` mode causes all interactions to be terminated when the locks are not | ||
guaranteed to be up to date; | ||
- `best_effort` mode keeps relying on the most recent locks. | ||
guaranteed to be up to date | ||
- `best_effort` mode keeps relying on the most recent locks | ||
|
||
The cluster-wide mode defaults to `best_effort`. | ||
You can set up default locking mode via API or CLI using resource `cluster_auth_preference` | ||
|
@@ -156,7 +189,7 @@ or static configuration file: | |
<Tabs> | ||
<TabItem label="API or CLI"> | ||
Create a YAML file `cap.yaml` or get the existing file using `tctl get cap` | ||
|
||
```yaml | ||
kind: cluster_auth_preference | ||
metadata: | ||
|
@@ -165,9 +198,9 @@ or static configuration file: | |
locking_mode: best_effort | ||
version: v2 | ||
``` | ||
|
||
Create a resource: | ||
|
||
```code | ||
$ tctl create -f cap.yaml | ||
# cluster auth preference has been updated | ||
|
@@ -204,4 +237,3 @@ there is no user involved, the mode is taken from the cluster-wide setting. | |
With multiple potentially conflicting locking modes (the cluster-wide default | ||
and the individual per-role settings) a single occurrence of `strict` suffices | ||
for the local lock view to become evaluated strictly. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule e
updated
from c7ed09 to c7d5bf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
[package] | ||
name = "rdp-client" | ||
version = "0.1.0" | ||
authors = ["Andrew Lytvynov <[email protected]>"] | ||
authors = ["Andrew Lytvynov <[email protected]>", "Zac Bergquist <[email protected]>"] | ||
edition = "2018" | ||
|
||
[lib] | ||
|
@@ -21,13 +21,13 @@ byteorder = "1.4.3" | |
env_logger = "0.9.0" | ||
iso7816 = "0.1.0-alpha.1" | ||
iso7816-tlv = "0.4.2" | ||
libc = "0.2.106" | ||
libc = "0.2.110" | ||
log = "0.4.14" | ||
num-derive = "0.3.3" | ||
num-traits = "0.2.14" | ||
# Ideally, we'd use RustCrypto/RSA instead of linking OpenSSL. Unfortunately, | ||
# RustCrypto doesn't expose the low-level primitives we need for the smartcard | ||
# challenge signing (see src/piv.rs for details). | ||
openssl = { version = "0.10.38", features = ["vendored"] } | ||
rdp-rs = { git = "https://github.com/gravitational/rdp-rs", rev = "755e950dcff0fc6965aa518c4596b995ede3417d" } | ||
rdp-rs = { git = "https://github.com/gravitational/rdp-rs", rev = "cb61119d2803f647b60e6c9b2ef05ab587cc1966" } | ||
uuid = { version = "0.8.2", features = ["v4"] } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.