NetBird è una piattaforma di gestione VPN open-source costruita su WireGuard, che semplifica la creazione di reti private sicure, sia per organizzazioni che per utilizzi domestici. La configurazione è semplice e rapida, eliminando la necessità di gestire aperture di porte, regole firewall complesse ecc. È molto simile a Tailscale e offre funzionalità altrettanto simili.
NetBird non adotta un server VPN centralizzato, ma si basa su un’architettura di VPN mesh: in questo modello, i dispositivi connessi possono comunicare direttamente tra loro, senza la necessità di un intermediario centrale. Ogni nodo della rete ha la capacità di fungere sia da client che da server, garantendo così una maggiore flessibilità e resilienza. I concetti sono simili a quelli di Tailscale.
Esistono due modalità principali per installare e utilizzare NetBird. La prima consiste nell’utilizzare NetBird Cloud, dove il sistema di controllo degli accessi è gestito dalla piattaforma stessa. Questo consente di connettere gratuitamente fino a 100 dispositivi e un massimo di 5 utenti. La registrazione al servizio può essere effettuata mediante un indirizzo email o tramite autenticazione OAuth, utilizzando account Google, Microsoft o GitHub. La seconda modalità, invece, prevede la possibilità di self-hostare la piattaforma.
L’installazione di NetBird deve essere effettuata su tutti i dispositivi che si desidera includere nella rete privata. Una volta completata questa operazione, l’elenco dei dispositivi connessi (peers) è visualizzabile nella dashboard di NetBird, accessibile via browser web previa autenticazione.
Nella scheda Setup Keys è possibile impostare una chiave precondivisa come misura di sicurezza aggiuntiva per consentire l’accesso a nuovi dispositivi.
Creazione della VLAN NetBird
In primo luogo, come descritto nel post precedente, in OPNsense è necessario procedere con la creazione della VLAN per NetBird, seguendo le specifiche tecniche indicate:
- Tag VLAN:
80 - Subnet:
10.0.80.0/24 - Gateway:
10.0.80.254 - Range DHCP:
10.0.80.50-10.0.80.249 - Alias NETBIRD_VM:
10.0.80.1
Regole di firewall
Dopo aver creato e abilitato la VLAN, è fondamentale configurare le regole del firewall per garantire che la VM di NetBird possa accedere alle risorse nella DMZ attraverso le porte web standard, ovvero le porte 80 (HTTP) e 443 (HTTPS). La seguente immagine illustra le regole applicate:
Configurazione dello switch
In aggiunta, per implementare correttamente la VLAN, è necessario configurare lo switch associato. Questa operazione prevede di taggare la VLAN sulla porta in trunk, che nel nostro caso è la porta 1.
Installazione di NetBird
- Creare un account sul sito netbird.io, abilitando l’autenticazione a più fattori (
MFA) per una maggiore sicurezza - Come descritto nell’articolo dedicato, la procedura prevede la creazione di una macchina virtuale Debian in Proxmox, utilizzando un template o le immagini
qcow2ufficiali - Grazie a Cloud-Init risulta semplice impostare l’indirizzo IP statico
- Dopo aver avviato la VM, l’installazione di NetBird è un processo semplice. Eseguire i seguenti comandi:
|
|
- Dopo l’installazione, per aggiungere il peer, eseguire il comando
netbird upe cliccare il link fornito per completare la registrazione del dispositivo. Il comandonetbird statusconfermerà l’avvenuta registrazione - Una volta completato il processo, sarà possibile visualizzare il dispositivo aggiunto nella sezione peers della dashboard:
Se necessario, è possibile abilitare l’accesso remoto SSH o RDP verso i peer.
Aggiunta di Zone DNS
Dalla sezione DNS > Zones, è anche possibile aggiungere zone DNS.
Aggiunta delle risorse
Configurazione della rete
Dalla sezione Network > Add Resources, è possibile inserire varie risorse all’interno della rete appena creata.
Tutti i dispositivi con la VPN installata possono ora accedere a queste risorse. Per gli utenti Android, è disponibile un client mobile. Il processo di registrazione é il medesimo visto in precedenza.
Domini personalizzati
I domini custom consentono l’uso di un proprio nome di dominio (es. app.example.com) per i servizi da esporre. Questo funziona in modo identico sia per le distribuzioni cloud che self-hosted.
Prima di utilizzare un dominio personalizzato, è necessaria la verifica della proprietà creando un record CNAME presso il proprio fornitore DNS.
- Navigare verso
Reverse Proxy > Custom Domainsnella dashboard di NetBird - Cliccare su
Add Domain - Inserire il nome di dominio (es. example.com) o sottodominio (es. proxy.example.com)
- Selezionare il cluster proxy target e salvare
Dopo il salvataggio, il dominio apparirà nella lista con uno stato di Pending Verification. È necessario completare la verifica prima di poter utilizzare il dominio con un servizio.
NetBird esegue una ricerca DNS su *.<example.com> e verifica che risolva verso un cluster proxy noto. Una volta completata con successo la verifica, lo stato del dominio cambierà in Active e diventerà disponibile nel selettore di domini quando si creano o modificano servizi.
Esporre un servizio
Se si desidera esporre un servizio accessibile pubblicamente senza VPN, seguire queste indicazioni:
- Cliccare su
Expose Servicedella risorsa o navigare nella sezioneReverse Proxy. Questa funzione consente di esporre i servizi interni al pubblico, con supporto per i certificati SSL/TLS e autenticazione opzionale - Durante la creazione di un servizio, è necessario assegnargli un dominio. NetBird fornisce domini integrati, automaticamente disponibili per ogni account, e supporta anche domini personalizzati
Per esporre un servizio utilizzando un dominio personalizzato, navigare in Reverse Proxy > Services e cliccare su Add Service. È necessario inserire un nome per il servizio e specificare il target.
Ad esempio, se si inserisce “dashboard” come sottodominio e si seleziona “proxy.example.com” come dominio base, il servizio sarà accessibile all’indirizzo dashboard.proxy.example.com.
Autenticazione e access policy
Per i servizi pubblici, è possibile specificare un metodo di autenticazione, garantendo che solo gli utenti autorizzati possano accedere al servizio.
In aggiunta, è possibile implementare politiche che consentono l’accesso solamente da determinati paesi.
Tutti i tipi di dominio ricevono automaticamente certificati TLS gestiti dal proxy.
Accesso dal cellulare a PVE e PBS
Nel caso si desideri esporre Proxmox VE o Proxmox Backup, come nel nostro esempio, si consiglia dii:
- Disabilitare l’utente root
- Creare un Utente amministrativo personalizzato con privilegi amministrativi
- Creare un utente con permessi limitati
I permessi consigliati per questo utente limitato sono:
PVEAuditor: garantisce un accesso in sola lettura alle risorse, senza la possibilità di apportare modifichePVEVMUser: consente di visualizzare, eseguire backup, gestire la console delle VM e controllare l’alimentazione delle VM stesse. Questo permesso permette all’utente di accendere e spegnere le VM, facilitando la gestione delle risorse
Esistono diverse applicazioni mobile, come:
Gestione utenti e team
È possibile creare utenti e assegnare loro ruoli e permessi, organizzandoli in team. Questa configurazione consente di limitare l’accesso a determinate risorse, in modo che ogni utente possa operare solo nelle aree di propria competenza.