Commit Graph

14 Commits

Author SHA1 Message Date
Elle Mouton
162571ac45 aperture: Custom price per service 2020-05-13 09:57:40 +02:00
Wilmer Paulino
8d67d5d342 docs: add documentation to sample conf options 2020-03-30 10:33:30 -07:00
Olaoluwa Osuntokun
0c14706fa4 aperture: propagate rename 2020-03-18 13:57:18 -07:00
Wilmer Paulino
494fdcc0a3 kirin: allow handling client requests over Tor onion services
In this commit, we integrate Tor onion services into the proxy. Clients
can now make their requests through Tor's encrypted network. To make
this possible, there were a few quirks, the most important being that
clients were unable to establish encrypted HTTP/2 connections due to
TLS certificates not being able to verify onion services. To work around
this, we now spin up an additional HTTP/2 server _without TLS_ that's
not exposed to the outside world and can only be accessed through the
onion services, which already provide encryption.

Once the onion services are created, we store their private keys within
etcd to ensure we can recover them later on as the proxy is intended to
be long-lived.
2020-03-13 12:54:33 -07:00
Oliver Gugger
9af8647028 config: add autocert options 2020-01-10 14:00:36 +01:00
Wilmer Paulino
38cd0e7847 auth: integrate proper macaroon creation and verification
We move the proxy from using its placeholder macaroon creation and
verification to instead use the agreed upon macaroon design. Much of
this is solely a refactor, but some new functionality has also been
introduced as part of integrating the LSAT mint:

1. A request's target service is now verified to ensure its attached
   LSAT is authorized.

2. The preimage is now checked against the token's committed payment
   hash to ensure it has been paid for.
2019-11-26 11:13:19 -08:00
Wilmer Paulino
25851ae16d kirin: add static service limiter
The service limiter holds all of the constraints that should be applied
to a given service at the base tier. These are currently static and are
parsed from the proxy's configuration file as a temporary work-around.
Eventually, we plan to integrate this with etcd as well in order to
achieve dynamic service discovery.
2019-11-25 17:08:35 -08:00
Wilmer Paulino
401c0e2d38 kirin: add etcd client configuration
Allows the ability for the proxy to connect to an etcd cluster for any
reliable data storage purposes. No data is being stored yet as of this
commit, but we'll be storing LSAT secrets at a later commit.

One key component in this commit is that we introduce a new top level
key that will serve to hold all LSAT proxy-related data. Any nested keys
should be prefixed with said top level key.

Co-authored-by: Oliver Gugger <gugger@gmail.com>
2019-11-25 17:08:32 -08:00
Oliver Gugger
c8cbeb9ab1 config: add static file root 2019-11-06 13:21:56 +01:00
Oliver Gugger
a44e9fbd22 freebie+proxy: add memory based freebie DB implementation 2019-11-06 13:21:56 +01:00
Oliver Gugger
7e0c1dd97e multi: add persistent logger 2019-11-06 13:21:51 +01:00
Oliver Gugger
5a3b8b79d2 proxy: implement basic proxy functionality 2019-11-06 13:21:45 +01:00
Oliver Gugger
9552a70cb9 proxy: match service with regular expressions 2019-11-04 12:43:25 +01:00
Valentine Wallace
279fa2a64b Initial version of the proxy.
Missing: logging, an Authenticator implementing the LSAT HTTP
and gRPC protocol.
2019-09-12 16:41:25 -07:00