NetBird koduses labis: zero-trust VPN mini-arvutil (pfSense + Proxmox + PocketID)
See setup ei sündinud vajadusest “veel ühte VPN-i teha”, vaid pigem soovist katsetada zero-trust VPN-i, kus ligipääs ei põhine IP-aadressidel ega staatilistel konffailidel, vaid identiteedil.
Mind huvitas kaks asja:
- kuidas näeb VPN välja siis, kui mängus on identity provider
- kas ma saan oma ligipääsudest parema läbipaistvuse ja kontrolli
Ehk: kes saab ligi, millele ja miks.

VPN-i päris põhjus: Pi-hole on-the-go
Kui aus olla, siis peamine põhjus, miks mul üldse VPN vajalik on, on üsna lihtne.
Mul jookseb koduses võrgus Pi-hole (DNS sinkhole) ja see töötab väga hästi.
Probleem tekib hetkel, kui ma koduvõrgust lahkun.
Ma ei taha:
- installida eraldi browseri pluginaid
- kasutada erinevaid äppe reklaamiblokeerimiseks
- seadistada iga seadme DNS-i eraldi “häkkidega”
Ma tahan, et:
- kogu DNS liiklus (telefon, läpakas) liiguks automaatselt läbi minu Pi-hole’i täpselt samamoodi nagu kodus
VPN lahendab selle kõige puhtamalt.

Kas NetBird jookseb mini / tiny arvutil?
Lühike vastus: jah, väga hästi.
Minu setup jookseb mini-arvutil Proxmoxi peal, kasutades LXC konteinereid.
Põhjused, miks see valik on mõistlik:
- NetBirdi server ei vaja palju ressursse
- LXC = väiksem overhead kui täis VM
- lihtne backup, snapshot, upgrade
- ideaalne kodulabi või väikse kontori jaoks
Reaalselt piisab:
- 2 vCPU
- 1–2 GB RAM
- paar GB ketast
Minu arhitektuur (lihtsustatud)
Internet (Dynamic IP)
|
pfSense
|
Proxmox host (mini PC)
|
DMZ
├── LXC #1: NetBird + Caddy (docker compose)
├── LXC #2: PocketID (Identity Provider) (docker compose)
└── LXC #3: Ghost (docker compose)
Miks just selline ülesehitus?
- pfSense: NAT, firewall, segmentimine
- DMZ: NetBird ja IdP on eraldatud sisevõrgust
- Caddy: automaatne HTTPS (Let’s Encrypt)
- LXC: väike footprint
Mis on NetBird ja miks see on hea?
NetBird ei ole lihtsalt “veel üks VPN”.
NetBirdi peamised plussid
- WireGuard – kiire ja turvaline
- Mesh-VPN – seadmed suhtlevad otse
- Identity-based access – kasutaja, mitte IP
- ACL-id ja grupid – kes näeb mida
- Self-host – kontroll jääb sulle

PocketID ja passkey-põhine autentimine
PocketID puhul oli minu jaoks üks olulisemaid plusse see, et ta toetab passkey-põhist autentimist.
See tähendab, et klassikalisi paroole ei ole üldse vaja.
Mis asi on passkey?
Passkey on modernne autentimismeetod, mis põhineb:
- avaliku / privaatvõtme krüptograafial
- seadme turvaelemendil (Secure Enclave, TPM, YubiKey jms)
Kasutaja autentib end näiteks:
- Face ID / Touch ID
- seadme PIN-koodiga
- või füüsilise turvavõtmega
Parooli ei saadeta ega salvestata serverisse.
Miks PocketID sobib NetBirdiga kokku?
PocketID teeb ühte asja ja teeb seda hästi:
- OIDC identity provider
- passkey-põhine login
- lihtne self-host
- väike ressursijälg
NetBird kasutab PocketID-d ainult identiteedi kontrolliks ja see eraldatus ongi tugevus:
- PocketID → kes sa oled
- NetBird → millele sul ligipääs on
See teeb kogu ligipääsuloogika selgemaks ja paremini hallatavaks.

Kuidas autentimine päriselt töötab?
- Kasutaja installib NetBird kliendi
- Avaneb login-aken
- Autentimine käib läbi PocketID
- NetBird määrab kasutaja gruppi
- ACL-id otsustavad, millele ligi saab
💡 See tähendab:
- ühtegi VPN config faili ei jagata
- kasutaja eemaldamine = ligipääs kaob
- zero-trust lähenemine ka koduses labis
Miks see setup on “päris elu” lahendus?
See ei ole ainult hobi-projekt:
- töötab dünaamilise IP taga
- skaleerub kasutajate ja seadmetega
- kogu stack on self-hosted
Mini-arvuti + Proxmox + LXC =
väga madal kulu ja kõrge kontroll.
Kokkuvõte
Kui sa otsid:
- modernset VPN-lahendust
- zero-trust lähenemist
- lihtsat identiteedihaldust
- ja tahad seda kõike käitada mini-arvutil
siis NetBird + PocketID on väga tugev kombinatsioon.