Public
Watch
1
Fork
You've already forked baalvpn
0
0

Latest commit

Toni
3a3218d 2026-09-23 11:45:52 +02:00 18 commits
2026-09-23 11:45:52 +02:00
2026-09-23 11:45:52 +02:00
2026-09-23 11:45:52 +02:00
2026-07-25 12:47:55 +02:00
2026-09-23 11:45:52 +02:00
2026-09-23 11:45:52 +02:00
2026-07-22 16:05:30 +02:00
2026-09-23 11:45:52 +02:00

baalvpn

A hub-and-spoke VPN for IPv6

Features

Protocol

See proto.go for details

Known limitations

  • A compromised server could give out fake pubkeys allowing a MITM attack and decrypting the peer-to-peer traffic
  • The keys are rotated only on client and server restart
  • The protocol is vulnerable to replay attacks

Setup

Prerequisites

  • Go 1.27.0+

Building

go build -o baalvpn-server ./server

CGO_ENABLED=0 go build -o baalvpn-client ./client

Server

  1. Generate a keypair:
./baalvpn-server keygen

This creates server.conf and client.conf.

  1. Run:
sudo ./baalvpn-server server.conf

Client

  1. Copy client.conf (generated by keygen) and ensure SERVER_ADDR points to the server.

  2. (Windows only) Download wintun and place wintun.dll in the same directory as baalvpn-client.

  3. Run:

sudo ./baalvpn-client client.conf

The client will be assigned an IPv6 address from the fd00:baa1::/32 range.

Third-party dependencies