Skip to content

Implement "TCP/UDP mode" #2

@psarna

Description

@psarna

On top of HTTP(S) proxy based on env vars and applications cooperating, let's implement arbitrary TCP/UDP mode, especially useful for containers.

Assumptions:

  1. TCP/UDP mode will work for specific domains.
  2. For each whitelisted domain, sandworm acquires a unique IP address (assuming we're in a comfy docker network with lots of addresses available).
  3. Each container populates its /etc/hosts with a mapping from whitelisted domain to its unique IP assigned as above.
  4. When a TCP connection or a UDP packet comes, sandworm can deduce the requested domain simply by looking up which destination address was used to contact it.
  5. sandworm needs to maintain a set of ports open to be able to properly serve as raw proxy. We should have sensible defaults for those ports, as well as allowing users to ask for specific port numbers to be open. Or just open the whole range ¯\_(ツ)_/¯
  6. what about protocols with complex handshakes? Probably won't work atm. SSH will likely also insist on a scary message about mismatched fingerprint, but should otherwise work with a simple forwarding.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions