Transparent proxy to bridge between the internet and Yggdrasil network

Billy Barrow e111c832aa Implement TUN interface 1 år sedan
src e111c832aa Implement TUN interface 1 år sedan
.gitignore 42e6c41f0b Initial commit 1 år sedan
LICENSE 36a3310d27 Add forwarding modes, and XMPP support 1 år sedan
README.md e111c832aa Implement TUN interface 1 år sedan
config e111c832aa Implement TUN interface 1 år sedan

README.md

Astrogate

Astrologue uses the Yggdrasil network as a backbone of some of its peer-to-peer infrastructre. Astrogate allows configuring gateways that can forward traffic from the clear internet onto the Yggdrasil network and vice-versa following a simple configuration.

Currently supports forwarding the following protocols:

  • HTTP unencrypted HyperText Transfer Protcol
  • TLS raw Transport layer security, when SNI is present
  • XMPP eXtensable Messaging and Presence Protocol
  • Astrogate Dial simple header that can be passed at the start of a stream to connect (or "dial" into) a hostname
  • HTTP-01 Well Known intercept and redirect HTTP requests for the /.well-known directiory used by LetsEncrypt

When a connection is made to the Astrogate server, it reads data from the client, and uses pattern matching to determine what protocol the client is likely talking. It uses this information to attempt to read out an intended hostname from the data and tunnels the connection to the configured host.

It also supports tunnel mode, where by using the astrogate-tunnel client program creates a TUN interface where traffic will appear to be routed from their original IP addresses on the internet. This is useful since Astrogate does not modify any data it proxies, so there are not a HTTP X-Forwarded-For header to know where the request came from.