Commit graph

462 commits

Author SHA1 Message Date
Sasha Klizhentas bb9b00e451 Cache recently accessed items.
Introduce cache for items that were accessed
by proxies and nodes within 2 second window to reduce
load on database under high load.
2018-01-31 16:35:18 -08:00
Sasha Klizhentas f0da64fb63 UX and performance changes
* Do not log EOF errors, avoid polluting logs
* Trim space from tokens when reading from file
* Do not use dir based caching

The caching problem deserves a separate explanation.

Directory backend is not concurrent friendly - it has a
fundamental design flaw - multiple gorotuines writing to the
same file corrupt cache data.

This requires either redesign of the backend or switching
to boltdb backend for caching.

Boltdb backend uses transactions and is safe for concurrent
access. This PR changes local cache to use boltdb instead
of the dir backend that is now used only in tests.
2018-01-22 12:25:11 -08:00
Alexey Kontsevoy 583858d2cb add ClusterConfiguration section to teleport cfg 2018-01-20 14:25:31 -05:00
Sasha Klizhentas c1153734b0 Add support for extra principals, fixes #1174
Add support for extra principals for proxy.
Proxy section already supports public_addr
property that is used during tctl users add
output.

Use the value from this property to update
host SSH certificate for proxy service.

proxy_service:
  public_addr: example.com:3024

With the configuration above, proxy host
certificate will contain example.com principal
in the SSH principals list.
2018-01-08 20:36:34 -08:00
Sasha Klizhentas ef473d809e Join address for web, reverse tunnel, fixes #1544
Support configuration for web and reverse tunnel
proxies to listen on the same port.

* Default config are not changed for backwards compatibility.
* If administrator configures web and reverse tunnel
addresses to be on the same port, multiplexing is turned on
* In trusted clusters configuration reverse_tunnel_addr
defaults to web_addr.
2018-01-05 16:20:56 -08:00
Sasha Klizhentas 71c15e5835 Add support for NFS-friendly log protocol.
* Session events are delivered in continuous
batches in a guaranteed order with every event
and print event ordered from session start.

* Each auth server writes to a separate folder
on disk to make sure that no two processes write
to the same file at a time.

* When retrieving sessions, auth servers fetch
and merge results recorded by each auth server.

* Migrations and compatibility modes are in place
for older clients not aware of the new format,
but compatibility mode is not NFS friendly.

* On disk migrations are launched automatically
during auth server upgrades.
2018-01-04 18:54:37 -08:00
Sasha Klizhentas 0130c6aa41 Mutual TLS Auth server and clients.
This commit introduced mutual TLS authentication
for auth server API server.

Auth server multiplexes HTTP over SSH - existing
protocol and HTTP over TLS - new protocol
on the same listening socket.

Nodes and users authenticate with 2.5.0 Teleport
using TLS mutual TLS except backwards-compatibility
cases.
2017-12-27 11:37:19 -08:00
Russell Jones 3bfe61dc0b Added integration tests and minor fixes. 2017-12-19 17:40:05 -08:00
Russell Jones 37ab1596c4 Updated reverse tunnel to allow use to forwarding server. 2017-12-09 19:29:20 +00:00
Russell Jones 7018852c5d Added forwarding SSH server. 2017-12-04 17:01:52 -08:00
Roman Tkachenko 143b834e57 Changes for the upcoming teleport pro:
* Allow external audit log plugins
* Add support for auth API server plugins
* Add license file path configuration parameter (not used in open-source)
* Extend audit log with user login events
2017-11-21 17:35:58 -08:00
Sasha Klizhentas f8c715ef41 make audit accessible by admin group members
If user running teleport is a member of adm group
create the directory and all subdirectories
accessible to admins.

Remove obsolete migrations required for pre 2.3 releases.
2017-11-17 17:58:34 -08:00
Sasha Klizhentas fed7d2f116 fix audit log file leak, fixes #1433
This is a fix for file leak in audit log server caused
by design issue:

Session file descriptors in audit log were opened on demand
when the session event or byte stream chunk  was reported.

AuditLog server relied on SessionEnd event to close the
file descriptors associated with the session.

However, when SessionEnd event does not arrive (e.g.
there is a timeout or disconnect), the file descriptors
were not closed. This commit adds periodic clean up
of inactive sessions.

SessionEnd is now used as an optimization measure
to close the files, but is not used as the only
trigger to close files.

Now, inactive idle sessions, will close file descriptors
after periods of inactivity and will reopen the file
descriptors when the session activity resumes.

SessionLogger was not designed to open/close files
multiple times as it was reseting offsets
every time the session files were opened. This
change fixes this condition as well.
2017-11-15 18:39:27 -08:00
Russell Jones 1eb6f6bd52 Refactored lib/srv to support multiple servers. 2017-11-09 16:58:58 -08:00
sokoow 56f778a19d Fixes for https://github.com/gravitational/teleport/pull/1426 2017-11-01 21:03:20 +00:00
sokoow a737326042 Adding disable-tls flag, fixing https://github.com/gravitational/teleport/issues/1304 2017-11-01 21:03:20 +00:00
Russell Jones 146220e3c9 Set default cluster configuration when not specified. 2017-10-31 11:03:29 -07:00
Maximilien Richer cbca7fe984
Merge branch 'master' into fix-typo 2017-10-27 17:29:13 +02:00
Russell Jones 432a7ad787 Added services.ClusterConfig resource which controls where (and if) a
session is recorded.
2017-10-25 21:09:21 +00:00
mricher b58cb051e8
Correct various typos
This was fixed running the `misspell` linter in fix mode using
`gometalinter`. The exact command I ran was :
```
gometalinter --vendor --disable-all -E misspell --linter='misspell:misspell -w {path}:^(?P<path>.*?\.go):(?P<line>\d+):(?P<col>\d+):\s*(?P<message>.*)$' ./...
```

Some typo were fixed by hand on top of it.
2017-10-20 10:20:26 +02:00
Sasha Klizhentas 9543bf2208 Merge branch 'master' into sasha/curiosity 2017-10-12 16:57:41 -07:00
Russell Jones 23ecf797e7 Corrected static token handling. 2017-10-12 01:10:05 +00:00
Sasha Klizhentas 6e4d6b0cb2 more work, discovery works 2017-10-07 18:11:03 -07:00
Sasha Klizhentas e12ec7422c refactoring 2017-10-05 17:29:31 -07:00
Ev Kontsevoy 93f7dd3bf9 Better handling of "development mode"
Instead of quietly changing behavior because `DEBUG` envar was set to
true, Teleport now explicitly requires scary --insecure flag to enable
this behavior.
2017-09-10 13:45:14 -07:00
Ev Kontsevoy e9bc910f92 Removed the unused "dynamicConfig" flag
I noticed we have this setting in code, which is always set to false and
never evaluated.
2017-09-06 14:19:54 -07:00
Russell Jones 7bf2b5c28f Use node name (defaults to hostname) instead of host UUID. 2017-08-31 01:08:44 +00:00
Russell Jones c543067001 Removed namespaces and expires from user interface. 2017-08-30 18:11:13 +00:00
Sasha Klizhentas 8b81a0c384 Migrate to golang/dep for dependency management
Update following packages:

* Replace Sirupsen/log with sirupsen/log everywhere
* Update etcd client to 3.2.4
* Update docker/term to moby/term
* Update kr/pty to v1.0.0 release
* Update K8s client to 2.0
2017-08-22 15:30:30 -07:00
Russell Jones b4c805fe23 Re-factored cluster configuration. 2017-08-07 17:20:16 -07:00
Russell Jones 084c8274b4 Allow configuration of the ciphers, KEX algorithm, and MAC algorithms
for node and proxy.
2017-06-11 12:16:10 -07:00
Sasha Klizhentas 68ae676c0a Merge branch 'master' into sasha/exp2 2017-05-27 15:38:44 -07:00
Russell Jones 78ee5d09ee Added support for allowing the reading of a users environment when
creating a new child session from ~/.tsh/environment.
2017-05-26 17:06:49 -07:00
Sasha Klizhentas e766a3c902 work 2017-05-25 18:56:32 -07:00
Russell Jones 2bf011cb3d Fix ^C ignored issue on CentOS 6.8. 2017-05-24 10:31:05 -07:00
Sasha Klizhentas 8ecfe3acc1 fix and complete tests 2017-05-20 12:52:03 -07:00
Sasha Klizhentas bf211f5764 integration test 2017-05-19 19:03:28 -07:00
Sasha Klizhentas 3c2570fa35 Sasha High Availability. 2017-04-07 16:54:15 -07:00
Russell Jones 00567f6d0c Added public_address to proxy server configuration and heartbeat. 2017-03-17 11:38:40 -07:00
Russell Jones 2f70866e5a Added TrustedCluster resource. 2017-03-09 13:49:44 -08:00
Russell Jones 54c7f1cd32 Added dynamic_config and removed seed_config. 2017-03-01 16:44:34 -08:00
Russell Jones 2033d8093c Fix configuration file regressions. 2017-02-24 14:48:52 -08:00
Russell Jones 1dcd3e11e5 Refactored authentication configuration, created resources for dynamic configuration of authentication configuration, and updated documentation. 2017-02-22 11:48:06 -08:00
Russell Jones 6295213815 Host certificate now presents two principals: hostUUID.clusterName and nodeName.clusterName. 2017-02-08 18:34:29 -08:00
Ev Kontsevoy 2150cb31de The web UI is not using the CLI client
TODO:
- Configure the CLI client to NOT use a keystore
- Configure the CLI client to NOT use ssh-agent
- Fix tests
- Comments
2017-02-02 22:54:48 -08:00
Sasha Klizhentas 83d979d007 fixing tests 2017-01-30 20:18:15 -08:00
Ev Kontsevoy ac205ad530 Finished cleaning up storage back-ends
I hope this closes #688
2017-01-15 23:23:37 -08:00
Ev Kontsevoy 7040331660 Fixed all tests
Also replaced mailgun.FrozenTime with `clockwork` in a few places
(mailgun's frozen time still remains elsewhere)
2017-01-15 16:28:18 -08:00
Ev Kontsevoy 312af8f02d Converted DynamoDB and etcd to common backend API
TODO:
- fix etcd tests
- do some manual testing of all backends
2017-01-15 16:28:18 -08:00
Ev Kontsevoy 40caec6048 Converted boltbk to the new format
BoltDB backend is now compatible with how all backends should
initialize.

Also all BoltDB-specific code/constants have been consolidated inside of
`backend.boltbk` package.
2017-01-15 16:28:18 -08:00
Ev Kontsevoy eee8bac224 Added filesystem backend configuration parsing
+initialization
2017-01-15 16:28:18 -08:00
Sasha Klizhentas 6dc157985e Merge branch 'master' into sasha/oidc 2016-12-30 16:51:13 -08:00
Sasha Klizhentas 5eedbea1ad fix integration tests 2016-12-30 14:47:52 -08:00
Ev Kontsevoy bd96ce9d52 Removed a bunch of dead/unused code
Originally Teleport had facilities to configure events/recordings via two
separate backends.

In reality those two objects (session events and session recordings)
need each other and currently there is only one implementaiton of it.

The old structures were unused. This commit is 100% dead code removeal.
2016-12-27 21:07:16 -08:00
Ev Kontsevoy 4ed536a2f0 First pass at cleaning up DynamoDB and locks
- Added ability to read AWS config from `~/.aws` directory for testing
- Fixed TTL bug in DynamoDB back-end
- Made FS back-end return similar error types as Boltdb does
- Cleaned up buggy tests for DynamoDB
- Removed unnecessary locks everywhere in code
2016-12-27 00:12:59 -08:00
Sasha Klizhentas 0bf50323a9 Merge branch 'master' into sasha/rbac 2016-12-21 15:44:25 -08:00
Sasha Klizhentas c8217f6d35 add missing pieces 2016-12-21 14:58:26 -08:00
Ev Kontsevoy 91f0492b00 U2F is turned off by default (when teleport.yaml is missing) 2016-12-20 16:39:11 -08:00
Sasha Klizhentas 5abf6d44d5 continue fixing tests and code 2016-12-18 16:58:53 -08:00
Sasha Klizhentas 13d61781b7 recover auth server tests 2016-12-18 12:00:17 -08:00
Sasha Klizhentas a187b37503 Add namespace configuration parameter 2016-12-16 11:48:16 -08:00
Sasha Klizhentas 2dceb42547 Merge branch 'master' into sasha/rbac 2016-12-14 16:36:55 -08:00
Sasha Klizhentas 7e97b10032 add support for namespaces almost everywhere 2016-12-14 15:48:36 -08:00
jcj83429 0274afba8d group the u2f configs in auth_service
OLD:
auth_service:
  u2fappid: https://mycorp.com/appid.js
  u2ftrustedfacets:
  - https://proxy1.mycorp.com:3080
  - https://proxy2.mycorp.com:3080

NEW:
auth_service:
  u2f:
    enabled: yes
    appid: https://mycorp.com/appid.js
    facets:
    - https://proxy1.mycorp.com:3080
    - https://proxy2.mycorp.com:3080
2016-12-07 19:37:22 -08:00
Jay ade8b1dc7b Fixed merge conflicts with original repository 2016-11-30 17:08:20 -08:00
Ev Kontsevoy d29a88f524 Web assets are packed into teleport binary
Functionality:

`teleport` binary now serves web assets from its own binary file.
Unless `DEBUG` environment variable is set to "1" or "true", in
this case it will look for ../web/dist (as located in github repo)
which can be used for development.

Design:

To avoid accumulating 3rd party dependencies with a ton of extra
features and licenses, this implementation uses minimalistic
implementation of http.FileSystem interface on top of the embedded ZIP
archive.

1. The assets are zipped into assets.zip during build process
2. assets.zip gets appended to the end of `teleport` binary
3. The resulting file is converted into a self-extracting ZIP
4. Teleport opens itself using the built-in zip unarchiver, and loads
   the assets on demand.

Notes:

1. LOC is tiny (dozens)
2. RAM consumption is CONSTANT regardless of the ZIP size, about 500Kb
   increase vs load-from-file, and most of it is linking zip archive
   code from the standard library. Tested with a 20MB ZIP archive.
2016-10-30 20:40:46 -07:00
Ev Kontsevoy c1b14333c8 Intermediate implementation
1. Everything works.
2. No tests.
2016-10-30 19:35:57 -07:00
jcj83429 a122452345 Merge branch 'master' into u2f
Conflicts:
	lib/config/fileconf.go
	web/src/app/services/auth.js
2016-10-30 17:39:50 -07:00
jcj83429 a237d22c15 make U2F AppId always lower case to match Chrome's behaviour 2016-10-26 23:40:51 -07:00
Adrien Pestel 436ee596b6 DynamoDB backend
This backend can be enabled by optionally adding a new build flag.
See lib/backend/dynamo/README.md for details.

It should not affect default Teleport builds.
2016-10-25 23:26:35 -07:00
jcj83429 2cff2aaa66 Merge upstream 'master' into u2f
Conflicts:
	lib/config/fileconf.go
	tool/tsh/main.go
2016-10-24 00:08:26 -07:00
Ev Kontsevoy 4c00ac4338 PR comments 2016-10-23 14:29:46 -07:00
jcj83429 739308c5ae got u2f login working on the CLI client.
also grouped the u2f webapi endpoints together,
and fixed the default u2f AppID so it works out of the box
2016-10-22 20:43:44 -07:00
Ev Kontsevoy d549d884bc "Cluster snapshot" became "caching AP client"
Instead of trying to achieve a full "offline" operation, this commit
honestly converts previous attempts to a "caching access point client"
behavior.

Closes #554
2016-10-16 22:04:20 -07:00
jcj83429 0a7733ff52 add U2F Trusted Facets to configuration files. Trusted facets must include
the domain names of all proxies that users will log in with U2F from.
2016-10-16 21:03:09 -07:00
jcj83429 b79c4cffba Implmented U2F registration and some of authentication on the server side
I know comments are very lacking right now. Once things are stable I will add
proper comments. Minimal manual testing of the U2F registration API was done
with a hardware U2F key. Some of the code may need to be cleaned up later to
remove excessively long variable names...

Currently we return an error rightaway if the username/password combo is wrong.
It's difficult to do U2F without revealing either whether a user exists or
whether the password is correct. Returning error immediately reveals whether
the user/password combo is valid, while waiting until we get a signed response
from the U2F device to announce whether the user/pass combo is valid can reveal
which users exist since we need to return a keyHandle in the U2F SignRequest
and generating fake keyHandles for nonexistent users can be difficult to get
right since there is no rigid format for keyHandle.
2016-10-13 23:51:16 -07:00
Ev Kontsevoy 1dc2d9c414 Intermediate commit where "standalone mode" kind of works
What works:

1. You have to start all 3: node, proxy and auth.
2. Login using 'tsh' (so it will create a cert)
3. Then you can shut 'auth' down.
4. Proxy and node will stay up and tsh will be able to login.

What doesn't work:

1. Auth updates are not visible to proxy/node (like new servers)
2. Not sure if "trusted clusters" will work.
2016-10-10 21:19:55 -07:00
Ev Kontsevoy 1d0ec48dfa Started implementing "cluster snapshot"
At this stage I have an in-memory snapshot of a "cluster state" which
can be kept by nodes in-memory not requiring the auth connection to be
up 100% of the time.

Node and proxy are now both using this snapshot instead of a live
connection to the auth server.

Next steps:

- Make node and proxy continue to work after the auth is killed.
- Make the snapshot persistent.
- Make node & proxy use persistence and be able to restart with the auth
  server down.

IMPORTANT:

Also found an interesting case where process identity is generated (on
first start). Right now there wasn't any kind of locking, and concurrent
identity initialization was possible. While it's not clear if this can
cause any real world issue, I have refactored it into a separate
lock-protected function.
2016-10-09 19:29:54 -07:00
Ev Kontsevoy baafe3a332 Renamed GetLocalDomain() to GetDomainName() 2016-10-09 17:27:56 -07:00
Ev Kontsevoy 263ec1ca1e Added "samples" directory with sample configurations
Also some minor changes around error reporting...
2016-10-09 16:33:18 -07:00
Ev Kontsevoy c7b4934553 Implemented a new Teleport option: "no recording"
Teleport configuration now has a new field: NoAudit (false by default,
which means audit is always on).

When this option is set, Teleport will not record events and will not
record sessions.

It's implemented by adding "DiscardLogger" which implements the same
interface as teh real logger, and it's plugged into the system instead.

NOTE: this option is not exposed in teleport in any way: no config file,
no switch, etc. I quickly needed it for Telecast.
2016-09-05 22:12:57 -07:00
Ev Kontsevoy b4a6a4f972 Cleaned up Teleport logging
* Downgraded many messages from `Debug` to `Info`
* Edited messages so they're not verbose and not too short
* Added "context" to some
* Added logical teleport component as [COMPONENT] at the beginning of
  many, making logs **vastly** easier to read.
* Added one more logging level option when creating Teleport (only
  Teleconsole uses it for now)

The output with 'info' severity now look extremely clean.
This is startup, for example:

```
INFO[0000] [AUTH]  Auth service is starting on turing:32829  file=utils/cli.go:107
INFO[0000] [SSH:auth] listening socket: 127.0.0.1:32829  file=sshutils/server.go:119
INFO[0000] [SSH:auth] is listening on 127.0.0.1:32829    file=sshutils/server.go:144
INFO[0000] [Proxy] Successfully registered with the cluster  file=utils/cli.go:107
INFO[0000] [Node] Successfully registered with the cluster  file=utils/cli.go:107
INFO[0000] [AUTH] keyAuth: 127.0.0.1:56886->127.0.0.1:32829, user=turing  file=auth/tun.go:370
WARN[0000] unable to load the auth server cache: open /tmp/cluster-teleconsole-client781495771/authservers.json: no such file or directory  file=auth/tun.go:594
INFO[0000] [SSH:auth] new connection 127.0.0.1:56886 -> 127.0.0.1:32829 vesion: SSH-2.0-Go  file=sshutils/server.go:205
INFO[0000] [AUTH] keyAuth: 127.0.0.1:56888->127.0.0.1:32829, user=turing.teleconsole-client  file=auth/tun.go:370
INFO[0000] [AUTH] keyAuth: 127.0.0.1:56890->127.0.0.1:32829, user=turing.teleconsole-client  file=auth/tun.go:370
INFO[0000] [Node] turing connected to the cluster 'teleconsole-client'  file=service/service.go:158
INFO[0000] [AUTH] keyAuth: 127.0.0.1:56892->127.0.0.1:32829, user=turing  file=auth/tun.go:370
INFO[0000] [SSH:auth] new connection 127.0.0.1:56890 -> 127.0.0.1:32829 vesion: SSH-2.0-Go  file=sshutils/server.go:205
INFO[0000] [SSH:auth] new connection 127.0.0.1:56888 -> 127.0.0.1:32829 vesion: SSH-2.0-Go  file=sshutils/server.go:205
INFO[0000] [Node] turing.teleconsole-client connected to the cluster 'teleconsole-client'  file=service/service.go:158
INFO[0000] [Node] turing.teleconsole-client connected to the cluster 'teleconsole-client'  file=service/service.go:158
INFO[0000] [SSH] received event(SSHIdentity)             file=service/service.go:436
INFO[0000] [SSH] received event(ProxyIdentity)           file=service/service.go:563
```
You can easily tell that auth, ssh node and proxy have successfully started.
2016-09-02 17:28:18 -07:00
Ev Kontsevoy 936d6a252b DisableWebUI implementation
We had this flag in the configuration forever, but apparently it was
being ignored.

It allows teleport proxy to start without HTTP UI enabled. This is
useful for proxies that strictly proxy and do nothing else.

I ran into this bug when I first time used this flag for Telecast, it
did not work, so I fixed it.
2016-08-25 20:02:48 -07:00
Ev Kontsevoy ec880ae700 Fixed resource leaks and removed dead code
Refs #508
2016-08-21 23:19:09 -07:00
obivan 4257311d3e Wrap error 2016-06-30 11:29:45 +06:00
obivan 55912b7c8a err check 2016-06-29 18:16:25 +06:00
Ev Kontsevoy 4a635ec949 Added "seed_config" configuration flag
Teleport YAML config now has a new configuration variable for internal
use by Gravitational:

```yaml
teleport:
   seed_config: true
```

If set to 'true', Teleport treats YAML configuration simply as a seed
configuration on first start.

If set to 'false' (default for OSS version), Teleport will throw away
its back-end config, treating YAML config as the only source of truth.

Specifically, for now, the following settings are thrown away if not
found in YAML:

- trusted authorities
- reverse tunnels
2016-06-17 11:55:22 -07:00
Ev Kontsevoy 126a9e9ff8 Minor bugs regarding reverse tunnels
- Friendly error messages when parsing configuration and establishing
  connection

- Bugs related to "first start" vs subsequent starts (reverse tunnells
  added to YAML file won't be seen upon restart)

- Nicer logging
2016-06-09 19:17:07 -07:00
Ev Kontsevoy e6efb87126 Merge branch 'master' into ev/tunnels 2016-06-09 12:19:32 -07:00
Sasha Klizhentas 84c12af433 address code review comments 2016-06-08 16:57:40 -07:00
Sasha Klizhentas 2773a68da5 recover back AuthIdentityEvent 2016-06-08 13:08:41 -07:00
Ev Kontsevoy 6deab48ab6 Cluster certificate import/export work...
1. tctl auth export now dumps both user&host keys if --type key is missing
2. created fixtures for testing key imports: they're in
   fixtures/trusted_clusters
3. configuration parser reads "trusted_clusters" files expecting the
   output of tctl auth export
2016-06-07 18:57:54 -07:00
Ev Kontsevoy cd135b899e Merge remote-tracking branch 'origin/master' into ev/tunnels
Conflicts:
	tool/tctl/main.go
2016-06-01 12:39:36 -07:00
Ev Kontsevoy 3b5231da85 Minor changes
- some unused code removal
- better error messages
2016-06-01 00:20:58 -07:00
Ev Kontsevoy cddaf6e5c8 Some minor improvements
- `tctl auth ls` lists all CAs by default
- Documented `authorize_ip` better
2016-05-31 18:59:07 -07:00
Ev Kontsevoy ed0948659b Changed how self-signed HTTPS cert is generated
Fixes #434

Changes:

- Certificate is not "CA" anymore
- Added "*" for CN field
2016-05-31 18:36:51 -07:00
Ev Kontsevoy 92b30c3c77 Configuration changes
1. data_dir is now a global setting in teleport.yaml (instead of being
   inside of "storage" sub-section)

2. changing data_dir in one place causes all of teleport to use it,
   not just bolt backends.

3. moving auth server to listen on non-default ports properly adjusts
   the global auth_servers setting

4. `tctl` now accepts -c flag just like Teleport, so you can pass
   `teleprot.yaml` to it.

Fixes #432
Fixes #431
Fixes #430
2016-05-31 14:58:55 -07:00
Ev Kontsevoy 9b9c6901a5 Permissions adjustment for data dir
Teleport's data dir (`/var/lib/teleport` by default) was created using
umask.

Now it's created with `0600` (readable only by Teleport user).
2016-05-30 14:23:58 -07:00
Ev Kontsevoy c7902c6afe Cleaned up SSH-HTTP tunnel auth integration 2016-05-30 13:52:23 -07:00
Ev Kontsevoy 3f0ba645a2 1st draft at passing SSH user into auth HTTP API 2016-05-30 01:27:33 -07:00
Ev Kontsevoy dc87ef5aec Clean error reporting for SSH exec
- stdout and stderr are separated
- exit status is inherited by tsh
2016-05-24 18:00:26 -07:00
Ev Kontsevoy ab278f0a06 TunClient changes
TunClient always tries to dial the statically configured auth server
first, before trying "discovered" ones.

The rationale is that --auth flag must override whatever dynamic auth
servers have been discovered (because sometimes their IPs are wrong, if
advertise-ip was misconfigured)

Closes #416
Fixes #416
2016-05-20 19:38:20 -07:00
Ev Kontsevoy d7f756cac1 Auth server heartbeat presence cleanup 2016-05-20 17:14:04 -07:00
Ev Kontsevoy e9730cc925 Implemented automatic-advertise-ip routine
Refs #416
2016-05-18 09:47:24 -07:00
Ev Kontsevoy 49256d1c23 Merge remote-tracking branch 'origin/master' into ev/multi-role
Conflicts:
	lib/auth/tun.go
2016-05-17 10:53:36 -07:00
Ev Kontsevoy 1c7693f96c Back-end implementation of token management
- User tokens (signup tokens) and node nodes (provisioning tokens) are
  managed via the same API calls.

- User tokens are converted to machine tokens (with Signup role)

- Static node tokens have "Expiry" date of Unix(0) i.e. Jan 1, 1970
2016-05-16 20:26:53 -07:00
Ev Kontsevoy b6f3fc529b Minor refactorings and configs for the vagrant environment 2016-05-12 20:57:36 -07:00
Ev Kontsevoy dab0ad347c Flexible tokens:
- Static never-expiring tokens
- TTL tokens
- Single-use tokens with TTL of 30 mins
2016-05-12 00:44:25 -07:00
Ev Kontsevoy 0fd6f2f31b Minor improvement to tunclient 2016-05-11 18:34:55 -07:00
Ev Kontsevoy 23b3565f3a Started work on self-reconnecting reverse tunnels 2016-05-11 13:17:13 -07:00
Ev Kontsevoy b175d92052 PR comments - implemented! 2016-05-07 21:51:35 -07:00
Ev Kontsevoy e10612028e Preparations for a PR
Fixes #394
2016-05-06 20:48:02 -07:00
Ev Kontsevoy ce1c4d4a38 A great number of bugfixes:
- replay now works in both web and CLI
- fixed two nasty connection bugs in web sessions
- removed verbose logging/diagnostics
- refactoring of web code by Alexey
2016-05-03 21:30:17 -07:00
Ev Kontsevoy b03f9397be Merge remote-tracking branch 'origin/master' into ev/log 2016-05-01 22:27:30 -07:00
Ev Kontsevoy f4dfbf2e50 Easier bookkeeping of sessin parties 2016-05-01 17:31:28 -07:00
Ev Kontsevoy 7b7948c70d Teleport registers auth severs immediately on startup
fixes #390

Prior to this fix teleport cluster would exist without any auth servers
for a couple of seconds after startup.
2016-05-01 00:43:12 -07:00
Ev Kontsevoy 755e361d70 New implementation of session.GetSessions() 2016-04-28 14:13:53 -07:00
Ev Kontsevoy b2789739c6 Bugfixes and minor optimizations 2016-04-26 17:41:04 -07:00
Ev Kontsevoy 8775f44935 Hooked up new AuditLog in few places:
- Fixed all tests
- Wrote a simple test for AuditLog.Emit
2016-04-26 17:41:04 -07:00
Ev Kontsevoy 347d2fb3e3 Implemented AuditLogI interface for:
- auth.Client   : HTTP client
- APIServer     : HTTP server for Auth API
- AuthWithRoles : HTTP server for Auth API (which calls HasPermission)
- AuditLog      : actual server-side filesystem-based implementation
2016-04-26 17:40:49 -07:00
Ev Kontsevoy 35b6a5f687 Simplified SSH context handling
- ctx object is created earlier
- session connection is not passed around anymore (it's part of ctx
  anyway)
- clearly identified places in code where audit events must be logged
2016-04-26 17:40:49 -07:00
Ev Kontsevoy 6f111e39e2 Removed lunk + old events + old recorder 2016-04-26 17:39:46 -07:00
Ev Kontsevoy 5c87a5707d Rough implementation of audit log: completed 2016-04-26 17:39:46 -07:00
Ev Kontsevoy 43b224183d Intermediate commit: basic session bookkeeping in SessionLogger 2016-04-26 17:39:46 -07:00
Ev Kontsevoy 3161b905fc Scaffolding for simplified logger+event viewer 2016-04-26 17:39:46 -07:00
klizhentas d68e693cad migrate to trace errors 2016-04-12 11:07:14 -07:00
Ev Kontsevoy 3d42e3d636 Prepared previous commits for merging into master
- Fixed all tests
- Removed "magic constants" in random places
- Improved 'retry connecting to auth server' logic (it used to always
  fail on 1st attempt)
2016-04-11 16:32:38 -07:00
Ev Kontsevoy 31951cb1e4 Incorporated 'testauthority' into integration tests 2016-04-11 16:32:38 -07:00
Ev Kontsevoy d7a9297671 Added an option to disable web ui 2016-04-06 01:15:04 -07:00
Ev Kontsevoy 8fe9b3eeb7 Teleport Client API refactoring
Goal: Easier manipulation of client keys

- configurable key store
- easier public API to sign & save keys (prior to this only tc.Login()
  could create a signed key) - this allows to implement custom Login
  logic in other clients.
2016-04-05 18:53:30 -07:00
Ev Kontsevoy 3b3806ce8d "SSH node" service can now be stopped
when I did "stoppable Teleport" I wasn't running the "node" role, now I
added support for that.
2016-04-05 18:50:41 -07:00
klizhentas e3ab6b3708 allow to log in 2016-04-04 17:26:15 -07:00
klizhentas 8874d916de Merge branch 'master' into sasha/oidc 2016-04-04 13:21:02 -07:00
Ev Kontsevoy 34b916079c PR comments 2016-04-03 20:05:41 -07:00
Ev Kontsevoy 757c34a755 Added the ability to stop teleport without restarting the process 2016-04-03 12:17:28 -07:00
klizhentas 84cade14c5 draft OIDC support 2016-04-02 22:20:51 -07:00
Ev Kontsevoy f2b9b71568 Merge branch 'ev/bugs' of github.com:gravitational/teleport into ev/bugs 2016-04-01 18:08:00 -07:00
Ev Kontsevoy f7b7ef845f Added PID file support
Fixes #317
2016-04-01 18:02:35 -07:00
Ev Kontsevoy 79f348cac8 Added PID file support
Fixes #317
2016-04-01 17:58:41 -07:00
Ev Kontsevoy 75c903ddca Friendlier error message for 'node access denied' 2016-04-01 15:17:22 -07:00
Ev Kontsevoy e8e9763688 Improved error reporting when started teleport
Before:

Without "--debug" flag teleport would not report some errors to stderr.
A user would get the impression it's working properly.

After:

Initialization errors are dumped into cfg.Console writer, just like we
do everywhere else, so errors are duplicted in the log and also in the
user-facing console.
2016-04-01 13:23:39 -07:00
klizhentas 6f5c87a8c6 broadcast identity from auth server as well 2016-03-31 10:26:13 -07:00
klizhentas 8bcc407912 broadcast web handler event 2016-03-29 16:46:58 -07:00
klizhentas e1c5f86af5 migrate from callbacks to events 2016-03-29 16:33:11 -07:00
klizhentas ca7e3820d7 This commit adds ability to preconfigure the cluster without running
auth server. This is needed when you configure cluster from scratch and
all nodes including auth server spin up simultaneously.

* Add tctl tools to generate keys and certificates

  + Command "tctl authorities gen" generates public and private keypair.
  + Command "tctl authorities gencert" generates public and private keypair signed
    by existng private key
  + Command "tctl authorities export" was modified to be able to export exisitng private
    CA keys to local storage

   All of these commands are hidden by default.

section "static configuration"

* Add ability to configure teleport from environment variable

Environment variable TELEPORT_CONFIG can contain base64 encoded
YAML file config file of the standard file format, so teleport will use it on start

* Add special secrets section to the config file

Section "secrets" was updated to support pre-configured trusted CA keys and pre-generated keys

* Add special rts hidden section to add support for provisioning
2016-03-28 12:58:34 -07:00
Ev Kontsevoy e2c495bb76 Merge remote-tracking branch 'origin/master' into ev/scp-bug 2016-03-21 22:13:25 -07:00
Ev Kontsevoy 2ad2fb4ff1 SCP bugfixes
- also removed annoying log messages
- refs #274
2016-03-18 20:35:28 -07:00
klizhentas 6edd6675e6 re-introduce reverse tunnels into teleport
Reverse tunnels are now first class citizens of teleport.
There's no longer static configuration for reverse tunnel agents
in the config. Instead, admins can add and remove reverse tunnels
using tctl reversetunnel (hidden) commands.

* tctl reversetunnel ls
  lists reverse tunnels

* tctl reversetunnel upsert a.example.com 10.0.0.4:2023,10.0.0.5:2033 --ttl=10m
  updates or inserts reverse tunnel for 10 minutes

* tctl reversetunnel del a.example.com
  deletes a reverse tunnel

Teleport proxies watch changes in the reverse tunnels on the backend and
spin up / spin down reverse tunnels according to these changes.
2016-03-18 17:13:22 -07:00
klizhentas 091ccb9894 add TLS client authentication for ETCD 2016-03-16 18:30:00 -07:00
klizhentas 03dc97ed1e Introduce failover and auth servers sync, refs #78
* clients to tun servers are now supporting failover on the client
* clients periodically pull and sync auth servers that are available in the cluster
* teleport stores the information about cluster state locally and reuses it on restart
2016-03-15 13:07:31 -07:00
klizhentas 7a2a9e334f add support for TELEPORT_DEBUG_TESTS environment variable turning on verbose testing 2016-03-14 14:07:45 -07:00
klizhentas c1e0604dd0 Introduce auth server and proxy heartbeats
This commit introduces heartbeats of AuthServers and Proxies and fixes several issues:

1. Server init problem

There was an issue in server init, when certificates of multiple roles were overwriting each otther.
Now Teleport stores each keypair and certificate in a separate file <hostid>.role.key and <hostid>.role.cert
This also means that it's backwards incompatible with previous on disk format.

2. Proxy and Auth heartbeats

Auth servers and proxies now heartbeat into cluster as well

3. Bugfixes:

* Proxy role was missing, it is now treated as a separate role with permissions
* AdvertiseIP is now a global setting that can be used by all roles
* --advertise-ip flag was ignored and was never applied
* teleport service initialization has been simplified, now each role get it's own client
* minor cleanups
2016-03-13 18:15:09 -07:00
Ev Kontsevoy a8f419a0ad Merge remote-tracking branch 'origin/master' into ev/proper-bash 2016-03-10 23:52:49 -08:00
klizhentas 09725aab60 recover etcd backend support 2016-03-10 17:03:01 -08:00
klizhentas 7263a3fd18 remove backend PGP encryption 2016-03-10 09:41:01 -08:00
Ev Kontsevoy 94aa9bd413 Intermediate commit (doesn't even build) 2016-03-09 18:38:56 -08:00
Ev Kontsevoy 71d9ef1f31 PR comment changes 2016-03-08 15:16:56 -08:00
Ev Kontsevoy f8b51d614c PR comments 2016-03-08 09:53:40 -08:00
Ev Kontsevoy 356c0daefd More reliable "login into auth"
fixes #184 again

Purpose of the change:

`TeleportProcess.loginIntoAuthService()` did not _properly_ login into
the auth service before (it just validated an identity). Turns out, to
actually "log in" one has to call at least one Auth API method
successfully.

I've added a call to API.GetLocalDomain() and count a successful login
only if that function succeeds.
2016-03-08 01:31:07 -08:00
Ev Kontsevoy 9052c62c1f Fixes #210
Ok this commit is rather large for a seemingly "simple" problem. In
reality, the problem isn't simple.

Changes:

1. I refactored lib/service/service.go : I created a new structure called
   TeleportProcess. It wraps the configuration and various callbacks together.
   It made the code in that file MUCH easier to follow because functions
   do not require 5+ parameters anymore.

2. Created loginToAuthService() method which is now used in two places:
   1. On start-up
   2. Immediately after registration.
   This way both actions can be combined in the same loop, so if
   _either_ one succeeds, the daemon successfuly starts.

3. Added support for multiple auth servers. Everywhere in our code we
   always go for conf.AuthServers[0].Addr. So at least in this code
   there's a proper loop.

4. Added a nicer logging around "failed to join the cluster", where I
   suggest to try --token flag when it's missing.

5. Fixed tests broken by other commits (unrelated to this)

Fixes #210
2016-03-07 23:37:49 -08:00
Ev Kontsevoy 72c61b7d0c Merge remote-tracking branch 'origin/master' into ev/auto-tls
Conflicts:
	lib/service/service.go
	lib/utils/tls.go
2016-03-07 20:25:09 -08:00
Ev Kontsevoy b440c74f67 Fixed browser hang on self-signed https cert
The problem was:

- Self-signed cert was also used as CA cert.
- This means a browser would add it to its list of CA certs.
- Then I'd delete /var/lib/teleport/*
- And a new CA would be created for the same name, confusing the browser

To fix:

- Certificate isn't marked as CA
- Org name is set to "Acme Co" instead of "Teleport"

Fixes #206
2016-03-07 18:44:34 -08:00
Ev Kontsevoy 2030171637 Merge branch 'master' into ev/auto-tls
Conflicts:
	web/dist/app/app
2016-03-07 16:16:53 -08:00
Ev Kontsevoy 804fcece35 Experimental commit for automatic https on localhost
The idea:

- When creating client's TLS configuration, supply self-signed server
  cert from /var/lib/teleport/.cert

This way if a user is connecting to a proxy running on localhost, he
doesn't need to specify --insecure flag.
2016-03-06 00:33:02 -08:00
Ev Kontsevoy fb7768bc53 Experiment... 2016-03-05 23:51:12 -08:00
Ev Kontsevoy 3bed94a7c6 Hostname handling changes:
1. `--name` setting is passed through into AuthServer as "AuthServiceName".
   This will be used in UIs when there are multiple clusters, and also
   in places like Google Authenticator

2. `tctl nodes ls` now lists both host name and host UUID

3. Changed `--name` setting to `--nodename` to be consistent with the
   config file.

Closes #194
2016-03-05 16:54:58 -08:00
Ev Kontsevoy 5698baa961 Fixed #184
Nodes couldn't be re-invited into the cluster because they never tried
to re-register if there was a new --token
2016-03-04 21:30:05 -08:00
Ev Kontsevoy 07d85fd477 Nodes can be reached out by any IP/hostname as long as its routable
Refs #183

Also fixed a bug introduced in the previous commit.
2016-03-04 21:21:12 -08:00
Ev Kontsevoy 6151ab208a Bugfix: --proxy=localhost did not work
`web.SSHAgentLogin(proxyAddr string)` expects proxyAddr string to be a
URL, while everywhere else we address servers by host:port pair.

Because of that, `--proxy=host` sytax was broken.
2016-03-04 20:14:41 -08:00
Ev Kontsevoy cf36192575 Merge branch 'master' into ev/194 2016-03-04 17:27:11 -08:00
Ev Kontsevoy 376b59e317 Merge branch 'ev/194-a' into ev/194 2016-03-04 17:00:34 -08:00
Ev Kontsevoy 7160fab4a3 Merge branch 'ev/183' 2016-03-04 16:56:00 -08:00
Ev Kontsevoy 39b90c21b6 Merge remote-tracking branch 'origin/master' into ev/183
Conflicts:
	.gitignore
	web/dist/app/app
2016-03-04 16:53:54 -08:00
klizhentas 332212dcd4 add session log 2016-03-04 16:53:11 -08:00
Ev Kontsevoy 42f55959ed Intermediate commit 2016-03-04 16:27:52 -08:00
Ev Kontsevoy a29c11f1dc Updated .gitignore 2016-03-03 18:03:57 -08:00
Ev Kontsevoy 1bd10be0f8 Updated .gitignore 2016-03-03 18:02:48 -08:00
Ev Kontsevoy f9aa87a2f5 --token and --name are not mandatory anymore...
... when a teleport node re-joins the cluster who already trusts it
refs #187
2016-03-03 17:11:42 -08:00
Ev Kontsevoy a3474e0d87 Updated https key/cert generation (code cleanup) 2016-03-03 15:29:11 -08:00
Alexander Klizhentas 40b889b68f Merge pull request #188 from gravitational/tls
only support TLS in web proxy
2016-03-02 15:09:44 -08:00
klizhentas 5e8ecd53b0 only support TLS in web proxy 2016-03-02 15:07:59 -08:00
Ev Kontsevoy 0d476caae7 Merge branch 'master' into ev/183
Conflicts:
	lib/auth/api_with_roles.go
2016-03-01 18:33:26 -08:00
Ev Kontsevoy eeaadb913a Added --advertise-ip flag to teleport server 2016-03-01 18:24:20 -08:00
Ev Kontsevoy 6a8dc6c668 Nonintrusive minor refactoring of "auth tunnel"
1. Wrote comments in places where I was confused
2. Renamed variables/structs that were confusing
3. Cleaned up code for easier reading
2016-03-01 14:40:10 -08:00
klizhentas 583d1e06ac Merge branch 'master' into web
Conflicts:
	lib/client/client_test.go
	lib/srv/srv.go
	web/dist/app/app
2016-03-01 14:01:01 -08:00
klizhentas 464182ce0e fix session server panic 2016-03-01 13:21:07 -08:00
klizhentas 866b1e18c3 add support for session resizing 2016-03-01 13:19:43 -08:00
Ev Kontsevoy e02378baf8 Minor code refactoring and commenting...
...in preparation for server side chagnes
2016-02-29 19:00:45 -08:00
Alex Lyulkov bd61f6793f Changed limiter initialization 2016-02-26 16:59:35 +03:00
klizhentas 71a5dbc2c4 refactor 2016-02-24 17:58:22 -08:00
Ev Kontsevoy 02f3459afc Better "sample config" implementation
Three changes:

- Sample configuration is no longer a dump of a string constant. It's
  generated using the same data structure used for configuration
  parsing. This guarantees that 'teleport configure' will always dump a
  valid sample config file.

- Added a unit test which validates sample configuration and  verifies
  its correctness

- MakeSampleConfig() does not return an error anymore. It will
  default   to 'localhost' with error logged instead of failing. It
  makes no sense to fail when generating an example. Also this makes
  code cleaner.
2016-02-23 23:42:36 -08:00
Ev Kontsevoy 0a63a557bc Merge remote-tracking branch 'origin/master' into ev/133-newconf
Conflicts:
	lib/reversetunnel/srv.go
2016-02-22 14:18:51 -08:00
Ev Kontsevoy e230447f2e Properly vendored dependencies
- removed `gravitational/configure`
2016-02-22 14:11:31 -08:00
klizhentas 1f4afad8f4 add support for direct access to sites without reverse tunnels, fixes #114 2016-02-21 14:39:32 -08:00
Ev Kontsevoy fff0d8875a Merge remote-tracking branch 'origin/master' into ev/133-newconf
Conflicts:
	Godeps/Godeps.json
	lib/service/cfg_test.go
	tool/teleport/main_test.go
	vendor/github.com/gravitational/configure/README.md
	vendor/github.com/gravitational/configure/cli.go
	vendor/github.com/gravitational/configure/cstrings/split.go
	vendor/github.com/gravitational/configure/kv.go
	vendor/github.com/gravitational/configure/schema/schema.go
2016-02-20 15:02:39 -08:00
klizhentas 278420174f refactor roles and certificates handling 2016-02-18 18:07:43 -08:00
klizhentas 6a9ad7b820 check nodes names when inviting them, fixes #119 2016-02-18 14:55:39 -08:00
Alex Lyulkov 042212ad65 Joined regular and hangouts reverse tunnels, changed authentication, minor fixes 2016-02-19 00:23:22 +03:00
Alex Lyulkov 5741526bf4 Merged from alex/share-rebased 2016-02-18 22:10:34 +03:00
klizhentas 6cdaba2ef6 user mappings should be deleted if user is deleted, fixes #116
This commit includes refactoring and cleanup of cert authority sybsystem:

* User keys methods are deleted
* Authorities CRUD is simplified
* Lots of code removed
2016-02-17 15:29:01 -08:00
Alex Lyulkov bcb6411a7b merged from alex/sharing 2016-02-17 22:58:28 +03:00
Ev Kontsevoy 206d503f3a Added more configuration settins via a config file 2016-02-16 19:34:12 -08:00
Ev Kontsevoy 0a1bb00cc1 Changed the format of the configuration
Instead of providing a token per auth server, it's now one global token
for all.

Also added a check for unknown config values to the config file parsing
code.
2016-02-16 18:50:08 -08:00
Ev Kontsevoy e0f5696743 Wrote tests for configuration defaults 2016-02-16 13:18:58 -08:00
Alex Lyulkov 66dd4436e9 working hangouts 2016-02-16 15:51:33 +03:00
Alexander Klizhentas ad435d6acd Merge pull request #128 from gravitational/ev/126
Fixed issue #126
2016-02-14 00:01:17 -08:00
Ev Kontsevoy 4d6800623c Removed old configuration persistence
- Removed `yaml` structure attributes
- Removed "LoadFromYAML()" routine
- Removed YAML persistence tests

References #133
2016-02-13 21:17:30 -08:00
Ev Kontsevoy bcfcefa8e5 Fixed issue #126
Summary:

Sasha proposed to use the certificate principal instead of the host name
when establishing new SSH connections.

What I did:

Replaced `ReadKeys()` function in `auth/init.go` with `ReadIdentity()`
which, instead of a simple "key signer" returns a more comprehensive
structure called "Identity"

The structure has the `Cert` field which can be used to obtain "valid
principals".

The first principal is used as an SSH username, instead of the hostname
like before.
2016-02-13 18:47:58 -08:00
Ev Kontsevoy f540b435fb PR fixes
Incorporated suggestions from PR#120
2016-02-13 15:55:38 -08:00
Ev Kontsevoy 640c6cf772 Removed excessive INFO logging and fixed a bug
The bug was 'missing default shell'
2016-02-09 21:50:06 -08:00
Ev Kontsevoy ee213477a7 Fixed default reverse tunnel 2016-02-09 18:52:39 -08:00
Ev Kontsevoy b3d4f079d5 Added "connect to auth server" routine to tctl 2016-02-09 16:37:24 -08:00
Ev Kontsevoy 2db4d98213 Incorporated PR comments from here:
https://github.com/gravitational/teleport/pull/115
2016-02-09 13:46:34 -08:00
Ev Kontsevoy d6d5cb7d9c Added support for auth-server and tokens 2016-02-08 21:33:46 -08:00
Ev Kontsevoy 058f6eb9cf Added rudimentary logging control via --debug flag 2016-02-08 17:28:03 -08:00
Ev Kontsevoy 5b5dd5b306 Intermediate commit:
- Reverse tunnel service is now configurable
- Separated logging output from the console UI output
2016-02-08 15:02:20 -08:00
Ev Kontsevoy 5d6f8ecf89 Removed old default configuration 2016-02-08 11:50:09 -08:00
Ev Kontsevoy 47f95c0f9e Got the basics done for 'teleport' 2016-02-07 23:35:34 -08:00
Alex Lyulkov d2f50cf4b6 Fixed tests logging 2016-02-05 17:09:21 +03:00
Ev Kontsevoy 7bf35b02a8 Fixed log-related errors in tests 2016-02-04 15:39:50 -08:00
Ev Kontsevoy 31893e7f61 Removed gravitational/log from Godeps 2016-02-02 18:14:43 -08:00
Ev Kontsevoy 83f2d30d12 Replaced our own logger with logrus 2016-02-02 17:53:21 -08:00
Alex Lyulkov 70ecc479c3 minor code style fixes 2016-02-01 16:51:22 +03:00
Alex Lyulkov 67bcda7b82 Added init encryption keys for auth backend config, backend configs are JSON now, all complex env configs are JSON now 2016-01-29 19:17:12 +03:00
Alex Lyulkov 2b1a05f53c Added provisioning token role information inside the output token string 2016-01-26 03:16:58 +03:00
Alex Lyulkov a56b5236ac Moved to go1.5 vendoring 2016-01-20 18:52:25 +03:00
Alex Lyulkov c6ed9ba9f9 Added scp for client, fixed scp receiveDir handler, made utils.NetAddr implement net.Addr 2015-12-18 00:40:42 +03:00
Alex Lyulkov 02b13a7ead Added period for labels 2015-12-10 14:01:34 +03:00
Alex Lyulkov c8332eba27 Added node labels, fixed limiter bugs 2015-12-07 23:05:54 +03:00
alexlyulkov f549d6d80e Merge pull request #57 from gravitational/alex/rate/limiter
Added rate limiter, connection limiter
2015-12-04 21:33:54 +03:00
Alex Lyulkov 4168ae1555 Fixed teleport config 2015-12-04 20:07:59 +03:00
Alex Lyulkov 0a7e6fdfbe Refactoring 2015-12-03 12:26:34 +03:00
Alex Lyulkov 91bfd6e719 Added rate limiter, connection limiter 2015-12-02 21:51:32 +03:00
klizhentas 746e170c7f make static configuration compatible with the new changes 2015-11-29 13:00:23 -08:00
Alex Lyulkov 18c8ff180a Refactored: renamed fqdn to domainName, renaimed CAservice names 2015-11-20 13:15:48 -08:00
Alex Lyulkov 3f2ab06e40 Refactored CertificateAuthority service, added getTrustedKeys function 2015-11-17 20:39:19 -08:00
Alex Lyulkov ddd625035b Added reconnections, added certificates cache in nodes and proxy 2015-11-16 20:50:48 -08:00
Alex Lyulkov 0e7de32e61 Cleaned up 2015-11-15 21:21:34 -08:00
Alex Lyulkov dfb80c8347 Cleaned up 2015-11-14 23:52:37 -08:00
Alex Lyulkov 8c7f849805 Added tests for permissions, everythink works 2015-11-13 19:47:59 -08:00
Alex Lyulkov 390714b842 Integrated permissions checker, replaced special tun requests by API calls. 2015-11-12 17:32:45 -08:00
Alex Lyulkov 15e80c0a4f Deleted http api, added api via memory pipe, added permissions checker 2015-11-11 14:21:11 -08:00
Alex Lyulkov e94152b6f6 Added hostname to presence service(Now auth knows hostname of each node) 2015-11-04 21:02:58 -08:00
Alex Lyulkov e3073a57c5 Merge branch 'alex/ssh-agent'
Conflicts:
	lib/auth/srv_test.go
2015-11-04 17:38:53 -08:00
Alex Lyulkov 7b67556c1e Cleaned up 2015-11-02 13:02:34 -08:00
klizhentas 00ef621e6b Apply apache license to teleport 2015-10-31 11:56:49 -07:00
Alex Lyulkov 821e16ae8b Added proxy, needs more test and cleaning up 2015-10-30 18:17:37 -07:00
klizhentas 92933120e2 re-vendor configure and update code 2015-10-30 16:57:57 -07:00
klizhentas 9df116c63f reduce code duplication 2015-10-26 17:58:39 -07:00
klizhentas 655328d03d rename supervisor and export a couple of functions 2015-10-26 17:11:57 -07:00