Yadunand Prem 6929379072 | ||
---|---|---|
internal | ||
flake.lock | ||
flake.nix | ||
go.mod | ||
go.sum | ||
Readme.md | ||
roti.db | ||
roti.go |
Roti, Yet another wireguard manager
Roti is yet another wireguard manager, built with the idea of replacing tailscale in my infrastructure.
How does authentication work?
A node will send a 1.authkey pertaining to a certain user to the server, 2. Nodekey. The server verifies that the authkey is legitmate, and then sends the device a 1 time-use nodeKey (For the node to send a Public Key back to the server)
sequenceDiagram
participant Node1
participant Server
participant Node2
Node1->>Server: Hostname, Authkey
Server-->>Node1: NodeID, NodeIP, Server PublicKey, Server Private IP
Node1 ->>Server: Node Public Key, NodeID, Authkey
Node2->>Server: Hostname, Authkey
Server-->>Node2: NodeID, Server PublicKey
Node2 ->>Server: Node Public Key, NodeID, Authkey
Node1 ->> Server: Updates?
Server ->> Node1: Node2Hostname, Node2 IP, Node2 Public Key
Node2 ->> Server: Updates?
Server ->> Node2: Node1Hostname, Node1 IP, Node1 Public Key