2022-04-11 04:58:58 +08:00
# Warpgate
2022-04-13 01:06:09 +08:00
2022-04-13 01:28:24 +08:00
< a href = "https://github.com/warp-tech/warpgate/releases/latest" > < img alt = "GitHub All Releases" src = "https://img.shields.io/github/downloads/warp-tech/warpgate/total.svg?label=DOWNLOADS&logo=github&style=for-the-badge" > < / a > < a href = "https://nightly.link/warp-tech/warpgate/workflows/build/main" > < img src = "https://shields.io/badge/-Nightly%20Builds-orange?logo=hackthebox&logoColor=fff&style=for-the-badge" / > < / a >
2022-04-11 04:58:58 +08:00
Warpgate is a smart SSH 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 within the network.
2022-05-31 00:18:41 +08:00
* Warpgate will record every session for you to view (live) and replay later through a built-in admin web UI.
2022-04-11 05:33:58 +08:00
* Not a jump host - forwards your connections straight to the target instead.
2022-05-31 00:18:41 +08:00
* 2FA support
2022-06-24 16:41:13 +08:00
* Single binary with no dependencies.
2022-04-11 04:58:58 +08:00
* Written in 100% safe Rust.
2022-04-12 04:12:34 +08:00
## Getting started & downloads
2022-04-11 04:58:58 +08:00
2022-04-13 01:28:24 +08:00
* See the [Getting started ](https://github.com/warp-tech/warpgate/wiki/Getting-started ) wiki page.
* [Release / beta binaries ](https://github.com/warp-tech/warpgate/releases )
* [Nightly builds ](https://nightly.link/warp-tech/warpgate/workflows/build/main )
2022-04-11 04:58:58 +08:00
2022-05-30 22:35:03 +08:00
< center >
< img width = "783" alt = "image" src = "https://user-images.githubusercontent.com/161476/162640762-a91a2816-48c0-44d9-8b03-5b1e2cb42d51.png" >
< / center >
< table >
< tr >
< td >
< img width = "1016" alt = "image" src = "https://user-images.githubusercontent.com/161476/171013863-f087ab75-1b29-4489-b08d-0eacf62fd98c.png" >
< / td >
< td >
< img width = "1016" alt = "image" src = "https://user-images.githubusercontent.com/161476/171013410-f2b7374c-073e-4a66-b9c6-fe0a6b2b0dd0.png" >
< / td >
< / tr >
< / table >
2022-04-11 04:58:58 +08:00
## Project Status
2022-05-30 16:38:14 +08:00
The project is currently in **alpha** stage and is gathering community feedback. See the [official roadmap ](https://github.com/orgs/warp-tech/projects/1/views/2 ) for the upcoming features.
2022-04-11 04:58:58 +08:00
In particular, we're working on:
* Support for exposing HTTP(S) endpoints through the bastion,
* Support for tunneling database connections,
* Requesting admin approval for sessions
* and much more.
2022-04-16 03:38:59 +08:00
## How it works
Warpgate is a service that you deploy on the bastion/DMZ host, which will accept SSH connections and provide an (optional) web admin UI.
2022-04-23 18:29:56 +08:00
Run `warpgate setup` to interactively generate a config file, including port bindings. See [Getting started ](https://github.com/warp-tech/warpgate/wiki/Getting-started ) for details.
2022-04-16 03:38:59 +08:00
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.
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 web interface to view the live session list, review session recordings and more.
2022-04-11 04:58:58 +08:00
## Contributing / building from source
2022-06-27 02:50:04 +08:00
* You'll need Rust, NodeJS and Yarn
2022-04-11 04:58:58 +08:00
* Clone the repo
* [Just ](https://github.com/casey/just ) is used to run tasks - install it: `cargo install just`
* Install the admin UI deps: `just yarn`
2022-06-27 02:50:04 +08:00
* Build the API SDK: `just openapi`
2022-04-11 04:58:58 +08:00
* Build the frontend: `just yarn build`
* Build Warpgate: `cargo build` (optionally `--release` )
2022-04-13 00:56:13 +08:00
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL - CONTRIBUTORS - LIST:START - Do not remove or modify this section -->
<!-- prettier - ignore - start -->
<!-- markdownlint - disable -->
< table >
< tr >
< td align = "center" > < a href = "https://github.com/Eugeny" > < img src = "https://avatars.githubusercontent.com/u/161476?v=4?s=100" width = "100px;" alt = "" / > < br / > < sub > < b > Eugeny< / b > < / sub > < / a > < br / > < a href = "https://github.com/Eugeny/warpgate/commits?author=Eugeny" title = "Code" > 💻< / a > < / td >
2022-04-13 00:58:36 +08:00
< td align = "center" > < a href = "https://the-empire.systems/" > < img src = "https://avatars.githubusercontent.com/u/18178614?v=4?s=100" width = "100px;" alt = "" / > < br / > < sub > < b > Spencer Heywood< / b > < / sub > < / a > < br / > < a href = "https://github.com/Eugeny/warpgate/commits?author=heywoodlh" title = "Code" > 💻< / a > < / td >
2022-04-13 00:58:50 +08:00
< td align = "center" > < a href = "https://github.com/apiening" > < img src = "https://avatars.githubusercontent.com/u/2064875?v=4?s=100" width = "100px;" alt = "" / > < br / > < sub > < b > Andreas Piening< / b > < / sub > < / a > < br / > < a href = "https://github.com/Eugeny/warpgate/commits?author=apiening" title = "Code" > 💻< / a > < / td >
2022-04-13 00:56:13 +08:00
< / tr >
< / table >
<!-- markdownlint - restore -->
<!-- prettier - ignore - end -->
<!-- ALL - CONTRIBUTORS - LIST:END -->
2022-04-13 01:06:09 +08:00
This project follows the [all-contributors ](https://github.com/all-contributors/all-contributors ) specification. Contributions of any kind welcome!