Smart SSH, HTTPS and MySQL bastion that needs no client-side software
Go to file
dependabot[bot] b32ad98e5b Bump tokio-rustls from 0.23.3 to 0.23.4
Bumps [tokio-rustls](https://github.com/tokio-rs/tls) from 0.23.3 to 0.23.4.
- [Release notes](https://github.com/tokio-rs/tls/releases)
- [Commits](https://github.com/tokio-rs/tls/commits)

---
updated-dependencies:
- dependency-name: tokio-rustls
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-21 00:52:44 +02:00
.cargo import 2022-04-10 22:58:58 +02:00
.github Update dependabot.yml 2022-07-03 11:33:23 +02:00
docker Updated Dockerfile & setup 2022-07-05 21:32:05 +02:00
warpgate Merge branch 'main' of https://github.com/warp-tech/warpgate into main 2022-07-20 10:03:10 +02:00
warpgate-admin Merge branch 'main' of https://github.com/warp-tech/warpgate into main 2022-07-20 10:03:10 +02:00
warpgate-common fixed TLS mode serialized names 2022-07-20 11:29:54 +02:00
warpgate-database-protocols added MySQL support 2022-07-20 10:02:37 +02:00
warpgate-db-entities bumped poem, poem-openapi and uuid 2022-07-12 16:00:38 +02:00
warpgate-db-migrations sorted imports 2022-07-15 20:27:33 +02:00
warpgate-protocol-http added MySQL support 2022-07-20 10:02:37 +02:00
warpgate-protocol-mysql added MySQL support 2022-07-20 10:02:37 +02:00
warpgate-protocol-ssh Merge branch 'main' of https://github.com/warp-tech/warpgate into main 2022-07-20 10:03:10 +02:00
warpgate-web Bump svelte from 3.48.0 to 3.49.0 in /warpgate-web 2022-07-20 10:39:03 +02:00
.all-contributorsrc Add @apiening as a contributor 2022-04-12 18:58:50 +02:00
.bumpversion.cfg added MySQL support 2022-07-20 10:02:37 +02:00
.dockerignore Updated Dockerfile & setup 2022-07-05 21:32:05 +02:00
.env import 2022-04-10 22:58:58 +02:00
.gitignore import 2022-04-10 22:58:58 +02:00
Cargo.lock Bump tokio-rustls from 0.23.3 to 0.23.4 2022-07-21 00:52:44 +02:00
Cargo.toml added MySQL support 2022-07-20 10:02:37 +02:00
Cross.toml build against older glibc - fixes #33 2022-05-18 01:13:25 -07:00
deny.toml Revert "use workspace-level dependencies" 2022-07-06 09:24:06 +02:00
justfile added MySQL support 2022-07-20 10:02:37 +02:00
LICENSE Update LICENSE 2022-04-14 11:14:56 +02:00
README.md Update README.md 2022-07-06 12:31:27 +02:00
rust-toolchain.toml Revert "use workspace-level dependencies" 2022-07-06 09:24:06 +02:00
rustfmt.toml sorted imports 2022-07-15 20:27:33 +02:00



GitHub All Releases    


Warpgate is a smart SSH & HTTPS bastion host for Linux that can be used with any SSH client.

  • Set it up in your DMZ, add user accounts and easily assign them to specific hosts and URLs within the network.
  • Warpgate will record every SSH session for you to view (live) and replay later through a built-in admin web UI.
  • Not a jump host - forwards your connections straight to the target instead.
  • 2FA support
  • Single binary with no dependencies.
  • Written in 100% safe Rust.

Getting started & downloads

image
image image

Project Status

The project is currently in alpha stage and is gathering community feedback. See the official roadmap for the upcoming features.

In particular, we're working on:

  • Support for tunneling database connections,
  • Requesting admin approval for sessions
  • and much more.

How it works

Warpgate is a service that you deploy on the bastion/DMZ host, which will accept SSH and HTTPS connections and provide an (optional) web admin UI.

Run warpgate setup to interactively generate a config file, including port bindings. See Getting started for details.

It receives SSH connections with specifically formatted credentials, authenticates the user locally, connects to the target itself, and then connects both parties together while (optionally) recording the session.

When connecting through HTTPS, Warpgate presents a selection of available targets, and will then proxy all traffic in a session to the selected target. You can switch between targets at any time.

You manage the target and user lists and assign them to each other through a config file (default: /etc/warpgate.yaml), and the session history is stored in an SQLite database (default: in /var/lib/warpgate).

You can use the admin web interface to view the live session list, review session recordings, logs and more.

Contributing / building from source

  • You'll need Rust, NodeJS and Yarn
  • Clone the repo
  • Just is used to run tasks - install it: cargo install just
  • Install the admin UI deps: just yarn
  • Build the frontend: just yarn build
  • Build Warpgate: cargo build (optionally --release)

The binary is in target/{debug|release}.

Tech stack

  • Rust 🦀
    • HTTP: poem-web
    • Database: SQLite via sea-orm + sqlx
    • SSH: russh
  • Typescript
    • Svelte
    • Bootstrap

Contributors

Thanks goes to these wonderful people (emoji key):


Eugeny

💻

Spencer Heywood

💻

Andreas Piening

💻

This project follows the all-contributors specification. Contributions of any kind welcome!