Commit Graph
56 Commits
Author SHA1 Message Date
Tobiasz Heller 770e74a31a refactor: audit interface (#22070)
* refactor: shrinker interface for external audit loggers

* move StreamSessionEvents from ExternalAuditLogger

* fix comment of getLocalLog

* Rename IauditLog into AuditLoggerSessionStreamer
2023-03-06 10:44:16 +00:00
Jakub Nyckowski a8a244a517 SCP - Change file attrs only when requested (#22579)
* SCP -Change file attrs only when requested

OpenSSH sets 0644 by default and allows copy the source permissions by passing `-p` flag.
Our current implementation sets the file permissions even when client didn't use `-p` flag which can fail if the user doesn't have permissions to set it. This patch matches the OpenSSH behavior.

* Fix formatting
2023-03-03 19:12:52 +00:00
Jakub Nyckowski 0ee91f6c37 Enable GCI linter (#17894) 2022-10-28 20:20:28 +00:00
dmitri 007235446f Use correct target directory path.
Handle target directory/file renames.

Fixes https://github.com/gravitational/teleport/issues/5695.
2021-03-03 17:49:12 -08:00
a-palchikov e65eac59b0 tsh scp to use target directory correctly (#5501)
* Fixes the scp logic to take target directory into account in sink mode.
Also expose channel error in scp client so the error is more visible to
the user. Old behavior will only output the 'exit code n' if anything
breaks.

Fixes https://github.com/gravitational/teleport/issues/5497.

* Silence 'wait: remote command exited without exit status or exit signal' error when interrupting the scp session. Leave a TODO to fix properly in a future PR

* Address review comments
2021-02-11 19:35:40 +01:00
a-palchikov 43d142085e Wait on scp process at the end of the test. Service the stderr pipe to (#5418)
avoid 'broken pipe' in scp side.

Fixes https://github.com/gravitational/teleport/issues/5417.
2021-01-28 12:55:54 +01:00
a-palchikov 72630d1df5 Implement support for preserving file times for 'tsh scp' (#4764)
* Add -p flag to scp
* Add support for preserving access/modification times on files/directories when copying files between hosts.
* lib/sshutils/scp: add time statting for directories
* Add directory handling for scp
* Rewrite scp tests with testify
* Address review comments
2021-01-06 13:21:06 +01:00
Andrew Lytvynov 92ed2db38a Fixing golint warnings, batch 1
Mostly cosmetic changes:
- making receiver names consistent
- renaming `foo.FooBar` to `foo.Bar` (using package name as prefix)
- removing redundant `else` branches
- changing `a += 1` to `a++`
2020-10-13 00:22:49 +00:00
Joshua Behrens 19d482dad3 Allow user with at sign in name (#4002)
* Allow @ in scp targets
* Allow @ in proxyjump usernames
* Allow @ in tsh usernames
2020-07-21 10:41:31 -03:00
Andrew Lytvynov dba7f8e563 Remove ineffectual assignments
Caught by `ineffassign` linter.

Note the change in lib/srv/regular/sshserver.go - looks like we
advertised the custom listening port (`aport`), if it differed from
regular listening port (`port`).
2020-05-11 16:44:27 +00:00
Andrew Lytvynov d40013f33b Send SCP error messages to receiver when upload fails
This serves two purposes:
1. on upload, the receiver (node) will exit with error and generate an
   SCP error audit event.
2. on download, the receiver (tsh) will print a meaningful message from
   the sender (node)

Fixes #2861
2020-05-06 00:03:30 +00:00
Andrew Lytvynov f8661edea3 Clean up dead code across the codebase
Spring cleaning!
A very mechanical cleanup using several linters (unused, deadcode,
structcheck). Build and tests still pass so no behavior should be
affected.
2020-04-09 21:10:12 +00:00
Russell Jones 9a237b7328 Print scp status without quotes.
Don't escape the final \n in the scp status message. This way the status
message will get printed without double quotes.
2019-12-06 18:14:26 -08:00
Russell Jones 1479dfc258 Always emit exec command and exit code.
Due to the scp being inherently vulnerable to command injection, always
make sure the full command and exit code is recorded in the Audit Log
for accountability purposes.

For more details about scp, see the following.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=327019
https://bugzilla.mindrot.org/show_bug.cgi?id=1998
2019-09-03 13:44:20 -07:00
Sasha Klizhentas ba1fcf5d77 Fix teleport parsing to support IPV6
This commit fixes #2124
2019-07-23 20:36:34 -07:00
Russell Jones 27f5ef8f88 Added support for directory mode to scp.
On the client side, make sure directory mode is requested when sending
multiple files. On the server side, when in directory mode, validate
that the target is a directory.
2019-02-11 16:05:41 -08:00
Russell Jones 599b8b73c9 Fix scp client vulnerabilities.
Fixed scp client vulnerabilities to a malicious server found by Harry
Sintonen. For more information, see the following:

https://sintonen.fi/advisories/scp-client-multiple-vulnerabilities.txt
2019-02-11 14:57:57 -08:00
Cove Schneider 8b299e9c28 spelling cleanup 2018-11-15 12:44:51 -08:00
Russell Jones 9dbbefe316 Emit secure copy specific events instead of generic exec events when
using scp. Fix exec events to strip /bin/bash -c prefix when using
regular Teleport nodes.
2018-08-20 16:00:40 -07:00
Alexey Kontsevoy 7553f13256 fix handling of exitCodes during SCP 2018-07-25 16:07:16 -04:00
Alexey Kontsevoy 57b2789a49 http file transfer 2018-07-12 14:58:37 -04: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 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
Ev Kontsevoy cdfb15fd82 scp compatibility improvements 2017-06-09 10:48:21 -07:00
Ev Kontsevoy 0ce13c8b1b Fixed shell globbing for scp 2017-06-08 22:18:09 -07:00
Ev Kontsevoy 99672d09a7 Fixed scp regressions
In this commit:

1. Minor addition to Makefile to pull new .go files from
   tool/teleport/common

2. os.Glob() returns an empty list (instead of an error) if the
   file/pattern is not found, so added check for that.

3. sendFile was prematurely sending 'C' command before trying to open a
   file. This used to lead to creation of empty files for invlaid
   sources.

Also, removed some confusing comments.
2017-03-29 16:49:40 -07:00
Ev Kontsevoy a7aa9b4c93 Final cleanup in preparation for PR 2017-02-23 17:57:28 -08:00
Ev Kontsevoy 80df1bbc2d scp fixes
- added file globbing for "sink"
- added proper handling of directory copying into an existing target [1]

[1] compatible with OpenSSH behavior
2017-02-23 00:37:13 -08:00
Ev Kontsevoy f5022149c8 Fixed "double echo" scp issue
Refs #771
2017-02-18 23:52:56 -08:00
Ev Kontsevoy c6c77a183c SCP improvements
- Removed strange handling of the ending / symbol, causing directories
  not being created. Fixes #606

- Added per-file progress indicator (reports "XXX uploaded").
2016-11-03 20:06:43 -07:00
Ev Kontsevoy 380d2f366b Preliminary SCP work
1) -r flag handling

   Proper handling of `-r` flag on the tsh side (recursive).
   Prior to this commit it was all uploads were _always_ recursive.

2) less verbose logging.

   Replaced a bunch of log.Info() with log.Debug()
2016-11-03 18:07:39 -07:00
Ev Kontsevoy 7c3b74d8ff PR comments - implemented! 2016-05-27 11:26:48 -07:00
Ev Kontsevoy ce3bbbde3f SCP error messages are proper now
`tsh scp` now reports the same error messages as OpenSSH scp:

- when talking to Teleport servers
- when talking to OpenSSH servers
2016-05-26 18:00:40 -07:00
Ev Kontsevoy 48a74fbeca Intermediate commit (scp up/down works agaisnt openSSH servers) 2016-05-26 14:46:56 -07:00
Ev Kontsevoy 6e6e951650 Intermediate commit 2016-05-25 22:33:07 -07:00
Ev Kontsevoy 2d566ecbe2 Intermediate commit 2016-05-23 15:50:53 -07:00
Ev Kontsevoy b175d92052 PR comments - implemented! 2016-05-07 21:51:35 -07:00
Ev Kontsevoy 29d5ef454d Audit log improvements
Added clear separation between 'user' (Teleport user) and 'login' (OS
host login)
2016-04-26 17:41:04 -07:00
Ev Kontsevoy 2e099cdd0b Added full audit event support for:
- Port forwarding
- SCP up/down
- Auth attempts
2016-04-26 17:41:04 -07:00
klizhentas bba45fceae fix unsync in scp client impplementation, recover tests, fixes #274 2016-03-22 10:40:26 -07:00
Ev Kontsevoy a07b3226b8 Added supporto for user home directory for scp 2016-03-21 23:47:57 -07:00
Ev Kontsevoy a7d28971ac Refactoring
1. Removed scp.Server structure. It is redundant and doesn't add
   anything on top of scp.Command

2. Added user.User instance to scp.Command, so it now knows who
   the owner of uploaded files is.
2016-03-19 13:10:27 -07:00
Ev Kontsevoy 2ad2fb4ff1 SCP bugfixes
- also removed annoying log messages
- refs #274
2016-03-18 20:35:28 -07:00
Ev Kontsevoy 5d3787eacd Fixed craziness 2016-03-14 14:52:35 -07:00
Ev Kontsevoy 7521b57e56 Rough implementation of SCP
Refs #244
Closes #244
2016-03-13 16:18:08 -07:00
Ev Kontsevoy 83f2d30d12 Replaced our own logger with logrus 2016-02-02 17:53:21 -08:00
Alex Lyulkov a56b5236ac Moved to go1.5 vendoring 2016-01-20 18:52:25 +03:00
Alex Lyulkov e9a1a04ddf Added parallel scp, moved Download and Upload functions from client app to api 2016-01-19 23:54:46 +03:00
Alex Lyulkov 20e15fe7c6 Client app: added scp command, added multiplexing 2016-01-18 20:09:37 +03:00
Alex Lyulkov fdef528637 Minor fixes 2015-12-18 02:54:26 +03:00