openmoat-proxy
The default-deny egress proxy behind moat proxy and moat run (ADR-020).
It serves HTTP CONNECT tunnels and absolute-form plain-HTTP requests on a loopback
port:
- Hosts are decided by
openmoat-corethe waymoat guarddecides a fetch tool's URL: only anallowpasses. - Cloud metadata and link-local addresses are refused whatever the policy says, by name and on every address the proxy resolves. Private and CGNAT addresses are refused unless an allow rule names the address.
- A tunnel's TLS
ClientHellomust name the CONNECT host (SNI). Nothing is decrypted. - A request that carries a brokered secret's placeholder or value to a host other
than the secret's own is refused (
Broker). - Every decision is recorded through a
Recorder; a connection that cannot be recorded is refused.
Plain std::net and one thread per connection, capped by Limits; no async runtime
and no storage. Part of OpenMoat.