[HN Gopher] Warpgate: Smart SSH bastion that works with any SSH ...
       ___________________________________________________________________
        
       Warpgate: Smart SSH bastion that works with any SSH client
        
       Author : todsacerdoti
       Score  : 52 points
       Date   : 2022-04-17 17:11 UTC (5 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | oauea wrote:
       | Nice to see this! There are surprisingly few solutions that
       | support SSH session recording.
        
       | traceroute66 wrote:
       | hmmm... it might be written in Rust, but I'd still rather use an
       | instance of good-old OpenSSH as a suitably configured bastion
       | host.
       | 
       | OpenSSH has been battle-tested to death and comes from a good
       | stable (OpenBSD, LibreSSL).
       | 
       | I'm very weary indeed of re-implementations of SSH servers.
        
         | jffry wrote:
         | I think this is fulfilling a slightly different niche - further
         | down in the README it talks specifically about opening a
         | separate connection to the host and recording the session for
         | audit purposes.
         | 
         | Which offers a little more than a simple SSH bastion would,
         | unless there are features like this in OpenSSH I'm not aware
         | of.
        
         | likeabbas wrote:
         | Personally, I'm weary of software written in languages without
         | memory safety that are more likely to have long living exploits
         | only known to certain government authorities.
        
           | VWWHFSfQ wrote:
           | Just because the OP didn't use unsafe {} anywhere in their
           | code doesn't mean it's not used in any dependencies. Just
           | glancing at some of the deps I can already see there is a lot
           | of unsafe usage deep down that are "wrapped" in safe
           | interfaces. Rust is not some kind of silver bullet for
           | safety. It just makes it more explicit.
           | 
           | Also, I'm less concerned about the memory safety than the
           | _complete reimplementation of SSH_ from scratch. So give me
           | OpenSSH any day for things that are actually important.
        
       | adontz wrote:
       | I believe this is Privileged Access Management (PAM) product.
        
       | antoniomika wrote:
       | At a previous role I made something similar [0] in Golang, but
       | used SSH certificates to manage authentication. This had the
       | added benefit of logging the user connection information in each
       | server's auth.log based on the generated private key and signed
       | (but short lived) certificate used for auth in the session. At
       | one point I had changes that would sign certificates from Vault
       | [1] directly.
       | 
       | I had it so that a user needed to login to the service with their
       | GSuite account every 24H, and each login required 2fa as well.
       | SSH sessions were recorded in asciicast format (which seems to be
       | used here as well) and there was an audit log to track
       | connections. They could be joined in real time and disconnected
       | from a simple admin interface. The ACL system was a pretty basic
       | method of using regex for defining auth rules.
       | 
       | Worked pretty well and helped with compliance audits we were
       | completing at the time. I think the benefits here of being in
       | Rust is definitely performance and memory safety. Granted, The Go
       | implementation was pretty fast and safe as well. Go made it
       | pretty easy to implement due to the SSH implementation in the
       | standard library.
       | 
       | [0] https://github.com/notion/bastion
       | 
       | [1] https://www.vaultproject.io/docs/secrets/ssh/signed-ssh-
       | cert...
        
       | tomohawk wrote:
       | > You'll need nightly Rust (will be installed automatically),
       | NodeJS and Yarn
       | 
       | Is Rust unable to provide a suitable back end - the need for node
       | seems offputting
        
         | oauea wrote:
         | That's just for building the frontend: https://github.com/warp-
         | tech/warpgate/tree/main/warpgate-adm...
         | 
         | Not used or needed at runtime
        
       | jitl wrote:
       | Very reminiscent of the Teleport access proxy which started out
       | as a SSH proxy but now also supports a bunch of other protocols:
       | https://github.com/gravitational/teleport
        
       ___________________________________________________________________
       (page generated 2022-04-17 23:00 UTC)