FOSSPicks
SSH bastion
Warpgate
A bastion host is a server that lives just outside your network, either in a DMZ or beyond the safety of your firewall, from where it can bridge or forward certain services from your network to a remote host. Its location makes it prone to attack, but bastion servers are typically hardened and audited to ensure nothing can breach their simplified services. Warpgate is a simple bastion service provided as a single binary executable you should build yourself and run on your own hardened server. It can authenticate and forward specifically permitted SSH, HTTPS, and MySQL connections, which can also be fully logged and recorded for future playback or auditing. This is an essential part of making sure a service hasn't been compromised, and it's what differentiates Warpgate from setting up your own SSH proxy, for example.
To set things up, the warpgate
command takes a single setup
argument that will step you through its configuration. This includes the location to store the credentials data, the SSH listening port, and the port for the admin web interface. Before the service can be useful, however, you need to add authentication for either the SSH or HTTP targets. This starts with retrieving the SSH keys from the web interface or command line and adding them to your local authorized_hosts
file, just as you might with any other SSH server. A target address now needs to be added to the Warpgate configuration file simply by listing its address, port, and optional username. It's a similar process for adding MySQL and HTTP targets. Correct configuration can be checked through both the command line and the web interface, and you can now connect to your remote host by connecting to Warpgate. The connection is forwarded automatically. While there is some text output to show the target is working, it is otherwise transparent to the client.
Project Website
Photo editor
Buy this article as PDF
(incl. VAT)