Commit Graph

143 Commits

Author SHA1 Message Date
Anders Pitman
ada81bae62
Merge pull request #1 from fbartels/docker
Use multi stage dockerfile for building
2020-10-31 20:54:54 -06:00
Felix Bartels
eacc0094aa Use multi stage dockerfile for building
This also adds a docker-compose.yml for easy running and rebuilding

Signed-off-by: Felix Bartels <felix@host-consultants.de>
2020-10-31 19:11:11 -04:00
Anders Pitman
e93fc79f23 Add build and run instructions to readme 2020-10-31 15:13:09 -06:00
Anders Pitman
a7d1edcdbf Update go.sum 2020-10-31 09:52:14 -06:00
Anders Pitman
bb7e991515 Add Dockerfile 2020-10-30 19:55:33 -06:00
Anders Pitman
2c1bc2d001 Use curl to install go 2020-10-30 19:36:27 -06:00
Anders Pitman
98a6ff52fc Delete tokens when user is deleted
Also added DeleteUser to API
2020-10-30 18:50:24 -06:00
Anders Pitman
27aeb57336 Clean up api code organization 2020-10-30 18:38:57 -06:00
Anders Pitman
d0f3ab89db Output login link on first start 2020-10-29 18:49:59 -06:00
Anders Pitman
4f967ea4ef Add build script 2020-10-29 18:01:41 -06:00
Anders Pitman
6b9f9aa413 Implement creating users and tokens from REST API 2020-10-29 17:56:38 -06:00
Anders Pitman
eb9409566d Make go script executable 2020-10-29 17:40:46 -06:00
Anders Pitman
51d1bd09e0 Add script for installing golang 2020-10-29 17:40:07 -06:00
Anders Pitman
4f09c7ada1 Pass through upstream redirects 2020-10-29 13:03:35 -06:00
Anders Pitman
0f3482f836 Reorder todo 2020-10-28 12:59:40 -06:00
Anders Pitman
444ab10260 Remove config
Only admin-domain CLI parameter now required for running server.
2020-10-27 15:47:17 -06:00
Anders Pitman
4fd830167f Fix more security holes 2020-10-27 15:21:56 -06:00
Anders Pitman
3a705cf252 Fix QR codes not rendering for admin 2020-10-27 14:51:59 -06:00
Anders Pitman
51dce1876d Fix token delete security bug 2020-10-27 14:48:22 -06:00
Anders Pitman
f6fee2b8c0 Check permissions for deleting tunnels 2020-10-27 14:39:44 -06:00
Anders Pitman
b3f1636be6 Fix some security issues
* The CSS styles were leaking information about tunnels, even for
  things like the login page, which can be sent to anyone.
* Tokens could be created for any user by any user.
2020-10-26 12:18:51 -06:00
Anders Pitman
8e8045cde7 Update notes and todo 2020-10-26 11:11:14 -06:00
Anders Pitman
7f595c2b0d Start client tunnels concurrently 2020-10-24 17:00:42 -06:00
Anders Pitman
1abc141d13 Make client selection a dropdown
Also implemented adding and deleting clients through the API.
2020-10-24 16:48:53 -06:00
Anders Pitman
1607d41e5c Add button for downloading private keys
Allows users to access tunnels using standard SSH clients.
2020-10-24 14:12:18 -06:00
Anders Pitman
2ca14901fc Disable custom SSH keys for now
Not sure the feature is boring enough to keep. There are some tricky
things that still need to be solved like figuring out how to let
tunnels share the same public key, since the OpenSSH server seems to
only pick up the first instance of each key in the authorized_keys
file.

Also, what happens if someone wants to use their normal SSH key for
the server for a boringproxy tunnel. I could easily introduce a bug
that would lock someone out of their server in certain corner cases.

I think adding the ability to download the private key for each tunnel
will handle most cases for now.
2020-10-24 13:27:41 -06:00
Anders Pitman
8477391273 Implement using custom SSH keys 2020-10-23 20:56:55 -06:00
Anders Pitman
4158ea5777 Improve shadows on logo 2020-10-22 10:08:20 -06:00
Anders Pitman
0014ad5ce9 Add a couple shadows to logo 2020-10-21 15:01:57 -06:00
Anders Pitman
ed0133bc7b Add logo file 2020-10-21 10:55:28 -06:00
Anders Pitman
f9f2155ab1 Add logo for favicon 2020-10-21 10:53:51 -06:00
Anders Pitman
afd58db9b7 Add logo concept svg 2020-10-21 09:50:12 -06:00
Anders Pitman
fd0451fa3b Implement password-protected tunnels 2020-10-20 20:03:59 -06:00
Anders Pitman
85a5004cc7 Implement raw TCP tunnels
Just needed to add an option to allow external connections to the
ports from the server, then set the proper values in the
authorized_keys file and on the client.
2020-10-20 19:14:04 -06:00
Anders Pitman
9882017d5a Add ClientAddress
Allows tunnels to specify what address the client with connect to
for upstream connections.

Also changed the tunnel-adder UI.

Also fixed a bug where invalid domains would crash. Needed to
properly return an error dialog.
2020-10-20 18:52:32 -06:00
Anders Pitman
ef660f61ae Fix loading page 2020-10-20 17:58:19 -06:00
Anders Pitman
80d7f2115b Clean up UI a ton 2020-10-19 12:25:04 -06:00
Anders Pitman
84e00161bd Implement request logging
Added logs to stdout, and cleaned up some of the stderr ones.
2020-10-18 19:29:57 -06:00
Anders Pitman
0e39e9dd57 Add QR code login URLs for tokens
Also set cookies to max age of a year rather than session cookies.
2020-10-18 18:39:30 -06:00
Anders Pitman
0df20b2e1e Update notes and todo 2020-10-18 10:48:23 -06:00
Anders Pitman
44e3cc7d2c Add notes file 2020-10-17 16:11:40 -06:00
Anders Pitman
91d82ff987 Switch client to use go SSH client
Was previously shelling out to `ssh`.

As part of this, I also needed to fix a standing bug where
connections weren't properly being closed.
2020-10-17 16:07:56 -06:00
Anders Pitman
2d7f985311 Fix Firefox silently deleted tunnels
Debugging notes:

* The act of refreshing a page can delete tunnels created by other UI
  sessions, I think because it has local CSS checkbox state.
  * Happens on firefox desktop and mobile. Here's how to reproduce:
    1. Load the UI in Chrome and FF.
    2. Delete the last tunnel from FF.
    3. Add it back in Chrome.
    4. Refresh FF. The tunnel will be silently deleted.
  * I'm pretty sure this is bugged behavior in FF, because the checkboxes have
    completely unique ids, but it's treating them like the same checkbox.
  * Setting autocomplete='off' on the input elements seems to fix the problem.
    Not sure if it will work correctly in all browsers.
2020-10-17 09:48:29 -06:00
Anders Pitman
ca89553354 Make UI more consistent 2020-10-17 09:19:59 -06:00
Anders Pitman
18e09120a7 Change delete to work without a page navigation.
Uses more CSS checkbox hackery.
2020-10-17 08:42:29 -06:00
Anders Pitman
bdc1721870 Delete pending requests 2020-10-16 11:24:13 -06:00
Anders Pitman
cca211de0e Implement loading screen for slow requests 2020-10-16 11:21:41 -06:00
Anders Pitman
9aafa18254 Change delete buttons to forms 2020-10-16 10:25:09 -06:00
Anders Pitman
e51b304275 Make tunnel delete buttons pure CSS 2020-10-16 09:40:46 -06:00
Anders Pitman
2eafde030e Clean up menu stuff
Also only send /users page when isAdmin is true
2020-10-15 13:20:59 -06:00