NetBird koduses labis: zero-trust VPN mini-arvutil (pfSense + Proxmox + PocketID)

NetBird koduses labis: zero-trust VPN mini-arvutil (pfSense + Proxmox + PocketID)
Photo by Privecstasy / Unsplash

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
zotax proxmox host1

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
ACLid

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?

  1. Kasutaja installib NetBird kliendi
  2. Avaneb login-aken
  3. Autentimine käib läbi PocketID
  4. NetBird määrab kasutaja gruppi
  5. 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.