Commit graph

343 commits

Author SHA1 Message Date
Andrew Lytvynov afe814e724 Ensure make test covers all packages
Selectively listing package paths is error-prone. Use `go list` to get
the complete list instead. Filter out integration tests since they are
slower.

Also, enable the race detector by default. Local `make test` runs should
not skip it.
2020-04-08 17:38:03 -07:00
Russell Jones 22d362fa74 Release 4.2.2-alpha.1. 2020-01-20 14:04:36 -08:00
Gus Luxton a679d3e6b4
Adds support for client-only builds for Mac, plus signing/notarization/stapling (#3159) 2019-12-19 20:42:50 -04:00
Russell Jones 77e8b63470 Enhanced Session Recording.
Added package cgroup to orchestrate cgroups. Only support for cgroup2
was added to utilize because cgroup2 cgroups have unique IDs that can be
used correlated with BPF events.

Added bpf package that contains three BPF programs: execsnoop,
opensnoop, and tcpconnect. The bpf package starts and stops these
programs as well  correlating their output with Teleport sessions
and emitting them to the audit log.

Added support for Teleport to re-exec itself before launching a shell.
This allows Teleport to start a child process, capture it's PID, place
the PID in a cgroup, and then continue to process. Once the process is
continued it can be tracked by it's cgroup ID.

Reduced the total number of connections to a host so Teleport does not
quickly exhaust all file descriptors. Exhausting all file descriptors
happens very quickly when disk events are emitted to the audit log which
are emitted at a very high rate.

Added tarballs for exec sessions. Updated session.start and session.end
events with additional metadata. Updated the format of session tarballs
to include enhanced events.

Added file configuration for enhanced session recording. Added code to
startup enhanced session recording and pass package to SSH nodes.
2019-12-02 15:10:39 -08:00
Gus Luxton ed4930a665 Release 4.2.0-alpha.5 2019-11-26 14:15:56 -04:00
Gus Luxton 386ef24ed9 Release 4.2.0-alpha.4 2019-11-26 13:39:54 -04:00
Gus Luxton 104ca3571f Release 4.2.0-alpha.3 2019-11-26 12:28:14 -04:00
Gus Luxton 87e8e80aec Release 4.2.0-alpha.2 2019-10-16 13:38:01 -03:00
Daniel Garcia af7ce33edd fixes #3061: use variable for docker image name (#3062) 2019-10-08 11:09:56 -03:00
Russell Jones c3f72ac663 Release 4.2.0-alpha.1. 2019-09-24 13:55:43 -07:00
Russell Jones 28c518631a Release 4.1.0-beta.3. 2019-09-16 18:25:11 +00:00
Russell Jones 36838e5e21 Release 4.1.0-beta.2. 2019-09-10 00:02:23 +00:00
Russell Jones 6b1bc20451 Release 4.1.0-beta.1. 2019-09-06 20:00:16 +00:00
Russell Jones 9135a5ade7 Use roles and traits in certificate for RBAC.
If an attacker can force a username change at an IdP, upon second login,
the services.User object of the original user can be updated with new
roles and traits. If these new roles and traits differ, the original
user can have their privileges raised (or lowered).

To mitigate this, encode roles and traits within the certificate and use
these when fetching roles to make RBAC decisions. If roles and traits are
not encoded within an certificate (for example for old style SSH
certificates then fallback to using the services.User object and log a
warning.
2019-09-03 13:44:20 -07:00
Alexander Klizhentas f8b4282457
Remove verbose flags (#2912) 2019-08-11 12:58:32 -07:00
Gus Luxton d96870a7d2 Release 4.1.0-alpha.5 2019-07-12 19:11:36 -03:00
Gus Luxton 195ed4b868 Release 4.1.0-alpha.4 2019-07-12 18:51:40 -03:00
Gus Luxton ecd06e1d63 Release 4.1.0-alpha.3 2019-07-12 14:51:57 -03:00
Gus Luxton 6db03d91e3
Add package build script and package commands to Makefile (#2855) 2019-07-12 14:47:59 -03:00
Russell Jones 2da5e48136 Release 4.1.0-alpha.2. 2019-07-11 11:40:59 -07:00
Russell Jones 9c2cfa1cd8 Cleanup of dead code.
* Removed legacy backends no longer supported.
* Removed code marked for deletion.
* Updated Makefile to use $ instead of ` to match Enterprise.
2019-07-02 18:01:44 -07:00
Russell Jones 6348f10b09 Release 4.0.0-rc.4. 2019-06-17 10:19:26 -07:00
Russell Jones 717a2ba096 Release 4.0.0-rc.3. 2019-06-13 18:09:26 +00:00
Russell Jones 00a7ad9fa5 Release 4.0.0-rc.2. 2019-05-22 10:02:52 -07:00
Russell Jones f36f48b274 Release 4.0.0-rc.1. 2019-05-21 10:23:41 -07:00
Russell Jones 4bbb8a974f Release 4.0.0-beta.1. 2019-05-07 21:26:12 +00:00
Russell Jones e6e4699163 Build fixes to support legacy builds. 2019-05-07 14:17:11 -07:00
Russell Jones 09241c635e Added support for FedRAMP/FIPS 140-2.
Added "--fips" flag to "teleport start" command which can start
Enterprise in FedRAMP/FIPS 140-2 mode.

In FIPS mode, Teleport configures the TLS and SSH servers with FIPS
compliant cryptographic algorithms. In FIPS mode, if non-compliant
algorithms are chosen, Teleport will fail to start. In addition,
Teleport checks if the binary was compiled against an approved
cryptographic module (BoringCrypto) and fails to start if it was not.
If a client, like tsh, tries to use non-FIPS encryption, like NaCl,
those requests are also rejected.
2019-05-07 12:51:02 -07:00
Russell Jones 9fbb4e4e4a Release 4.0.0-alpha.1. 2019-04-26 22:43:45 +00:00
Roman Tkachenko 1828e21ef4
[Forward-port] Update audit events with additional fields. (#2655) 2019-04-17 10:16:28 -07:00
Ev Kontsevoy 51ab559872 Documentation improvements
- Faster docs build time due to parallel builds
- Added "agentless" entry to Q&A
- Documented -o flag support for `tsh ssh`. Closes #2330
2019-02-12 16:39:21 -08:00
Russell Jones 40975e01f9 Don't use cache when building Docker image.
Add the --no-cache flag to docker build so that "apt-get update &&
apt-get upgrade" are run on every image build.
2019-02-11 11:42:28 -08:00
Russell Jones 392d34015a Release 3.2.0-alpha.2. 2019-01-10 22:33:28 +00:00
Russell Jones ad0f6d95d0 Release 3.2.0-alpha.1. 2018-12-18 11:13:07 -08:00
Sasha Klizhentas f40df845db Events and GRPC API
This commit introduces several key changes to
Teleport backend and API infrastructure
in order to achieve scalability improvements
on 10K+ node deployments.

Events and plain keyspace
--------------------------

New backend interface supports events,
pagination and range queries
and moves away from buckets to
plain keyspace, what better aligns
with DynamoDB and Etcd featuring similar
interfaces.

All backend implementations are
exposing Events API, allowing
multiple subscribers to consume the same
event stream and avoid polling database.

Replacing BoltDB, Dir with SQLite
-------------------------------

BoltDB backend does not support
having two processes access the database at the
same time. This prevented Teleport
using BoltDB backend to be live reloaded.

SQLite supports reads/writes by multiple
processes and makes Dir backend obsolete
as SQLite is more efficient on larger collections,
supports transactions and can detect data
corruption.

Teleport automatically migrates data from
Bolt and Dir backends into SQLite.

GRPC API and protobuf resources
-------------------------------

GRPC API has been introduced for
the auth server. The auth server now serves both GRPC
and JSON-HTTP API on the same TLS socket and uses
the same client certificate authentication.

All future API methods should use GRPC and HTTP-JSON
API is considered obsolete.

In addition to that some resources like
Server and CertificateAuthority are now
generated from protobuf service specifications in
a way that is fully backward compatible with
original JSON spec and schema, so the same resource
can be encoded and decoded from JSON, YAML
and protobuf.

All models should be refactored
into new proto specification over time.

Streaming presence service
--------------------------

In order to cut bandwidth, nodes
are sending full updates only when changes
to labels or spec have occured, otherwise
new light-weight GRPC keep alive updates are sent
over to the presence service, reducing
bandwidth usage on multi-node deployments.

In addition to that nodes are no longer polling
auth server for certificate authority rotation
updates, instead they subscribe to event updates
to detect updates as soon as they happen.

This is a new API, so the errors are inevitable,
that's why polling is still done, but
on a way slower rate.
2018-12-10 17:20:24 -08:00
Russell Jones 4f53e33e61 Release 3.1.0-alpha.4. 2018-10-31 00:04:04 +00:00
Russell Jones 5d1c9f25ac Build improvements to allow passing in ARCH and RUNTIME. 2018-10-30 17:01:30 -07:00
Russell Jones 6714a58e7f Release 3.0.0-rc.6. 2018-09-27 20:14:23 +00:00
Russell Jones 1d0b2bac77 Cleanup "make release" target. 2018-09-27 13:13:44 -07:00
Russell Jones a772718a87 Release 3.0.0-rc.5. 2018-09-26 16:13:06 -07:00
Sasha Klizhentas 054a920fb6 Release candidate 4 2018-09-25 17:34:07 -07:00
Sasha Klizhentas 5bf50d8362 New version 2018-09-17 13:17:47 -07:00
Sasha Klizhentas 1c5d7738d3 Release candidate 2 2018-09-17 09:16:08 -07:00
Sasha Klizhentas d881156245 Release candidate 3.0.0-rc.1 2018-09-13 16:56:00 -07:00
Sasha Klizhentas 56db8efa7d Pre-relase beta.1 2018-09-12 16:33:11 -07:00
Sasha Klizhentas bcc25f971f Upgrade etcd backend
New Etcd backend is using GRPC api v3,
dependencies were updated accordingly.
2018-09-10 15:58:05 -07:00
Sasha Klizhentas acdfb412a2 Pre-relase alpha.9 2018-08-31 14:39:01 -07:00
Sasha Klizhentas 80f5ec765c Fix mapping of default implicit role 2018-08-22 19:40:04 -07:00
Russell Jones 7881c4e896 Release 3.0.0-alpha.7. 2018-08-20 16:12:49 -07:00
Sasha Klizhentas 4e41b63cdb Update tag and e-ref 2018-08-06 17:22:43 -07:00