VPNBox

Guida

Tutta la documentazione: installare, aggiungere una VPN, cosa fare quando qualcosa non va. Non un manuale da leggere in ordine — un indice da cui saltare dritti alla risposta.

Installazione su Linux

Debian, Ubuntu e derivate. Il pacchetto non scarica niente da internet.

mv ~/Scaricati/VPNBox_*_amd64.deb /tmp/
sudo apt install /tmp/VPNBox_*_amd64.deb

Il passaggio da /tmp serve: apt scarica i file con un utente di servizio chiamato _apt, che su Ubuntu non entra nella tua cartella personale — il primo tentativo darebbe «Permesso negato». Su Fedora non serve: dnf legge il file direttamente come root.

Lo stesso comando aggiorna una versione già installata: i file vengono sostituiti sul posto, il servizio riavviato, i profili in /etc/vpnbox lasciati stare. Non serve disinstallare niente.

Alla prima installazione il tuo utente viene aggiunto al gruppo vpnbox, che è chi può parlare col servizio. L'appartenenza a un gruppo si prende al login, quindi fai logout e rientra, altrimenti l'app dice che il servizio non è raggiungibile.

Solo per la prima volta

Dalla 1.3.5 in poi il pacchetto registra il proprio repository nel sistema: da lì in avanti si aggiorna come ogni altro pacchetto — apt upgrade, dnf upgrade, o dal gestore aggiornamenti della tua distribuzione. La firma la verifica il sistema con la sua catena di fiducia, non noi. Se preferisci aggiungerlo a mano invece di aspettare la prima installazione a farlo da sé, su Debian e Ubuntu:

sudo curl -fsSL https://vpnbox.70m3.eu/repo/vpnbox.gpg -o /usr/share/keyrings/vpnbox.gpg

echo "deb [arch=amd64 signed-by=/usr/share/keyrings/vpnbox.gpg] https://vpnbox.70m3.eu/repo/deb ./" | sudo tee /etc/apt/sources.list.d/vpnbox.list

Su Fedora:

sudo dnf config-manager addrepo --from-repofile=https://vpnbox.70m3.eu/repo/vpnbox.repo

Su Fedora e derivate: sudo dnf install ./VPNBox-<versione>-1.x86_64.rpm. Su RHEL 10, Rocky 10 e AlmaLinux 10 lo stesso comando, ma prima serve EPEL — la webview sta lì, non nei repository di base:

sudo dnf install epel-release

Arch e derivate: sudo pacman -U ./vpnbox-<versione>-1-x86_64.pkg.tar.zst. Qui il repository non lo aggiungiamo noi, perché pacman.conf è un file tuo: le tre righe da incollare le stampa l'installazione, e stanno anche qui.

RHEL 9, Rocky 9 e AlmaLinux 9 no. Non è la glibc: è che webkit2gtk-4.1 non esiste per la 9 — nemmeno in EPEL, dove l'abbiamo cercata. C'è solo la 4.0, e VPNBox non può usarla. Il pacchetto lo dichiara, quindi dnf rifiuta con quel motivo scritto invece di installare qualcosa che non partirebbe.

Se qualcosa non parte:

systemctl status vpnbox
journalctl -u vpnbox -n 30 --no-pager

Installazione su Windows

Windows 10 e 11, 64 bit.

L'installer non è firmato con un certificato commerciale, quindi SmartScreen mostra un avviso: «Ulteriori informazioni» → «Esegui comunque». Serve una conferma UAC, perché registra un servizio di sistema.

Dentro c'è tutto: l'app, il servizio, i quattro motori, Wintun e l'installer offline di WebView2 per i sistemi che non ce l'hanno. Nessun driver di kernel viene installato: anche OpenVPN gira su Wintun.

Per aggiornare basta lanciare l'installer nuovo sopra il vecchio. Ferma il servizio, sostituisce i file e lo riavvia; profili e credenziali in %ProgramData%\VPNBox restano.

Aggiungere una VPN

OpenVPN e WireGuard

«Importa» e scegli il file .ovpn o .conf. Chiavi, certificati e chiave privata WireGuard contenuti nel file vengono presi da lì: non vanno reinseriti.

GlobalProtect e Fortinet

«Nuovo profilo», scegli il protocollo e scrivi il portale. Utente e password si possono salvare o lasciare vuoti e digitare al momento — con l'MFA è la scelta giusta.

Cisco AnyConnect, Ivanti, Juniper, F5

Stesso percorso di GlobalProtect e Fortinet: «Nuovo profilo», scegli il protocollo, scrivi il portale. Sono tutti motori openconnect — un motore solo, quattro protocolli diversi selezionati dal profilo.

Cartelle protette

Spente di default — si accendono in Impostazioni → Cartelle.

I profili si possono organizzare in cartelle, con vista ad albero o a lista (si sceglie in Impostazioni), preferiti e connessi di recente. Una cartella si può anche proteggere con una password propria: non è un blocco nell'interfaccia — il contenuto viene davvero cifrato sul disco con le stesse primitive del backup cifrato (Argon2id + XChaCha20Poly1305, dettagli sulla pagina cifratura). La password sblocca la cartella solo per la sessione corrente del servizio, in memoria: chiudere l'app, riavviare il servizio o spegnere il computer la richiude, e va data di nuovo.

Perdere la password di una cartella protetta significa perdere quello che c'è dentro: non c'è una chiave di riserva.

GlobalProtect con SSO aziendale

Quando il portale non chiede una password ma manda su Entra, Google, Okta o Keycloak.

Nel profilo GlobalProtect attiva «Accedi tramite browser (SSO / SAML)». Alla connessione si apre una finestra con la pagina di login del tuo provider: fai il login lì, MFA compresa. VPNBox aspetta la risposta del portale e la passa al motore. La password non passa dall'app.

L'accesso avviene direttamente al gateway, che è quello che funziona con la maggior parte dei portali. Se il tuo pretende di firmare al portale, scrivi portal nel campo «Gateway o portale».

vpnboxctl — da riga di comando

Per un NAS, un server, o qualunque macchina senza interfaccia grafica. Non si scarica a parte: arriva già dentro il pacchetto normale, su entrambi i sistemi.

Linux

Installato insieme al pacchetto, in /usr/bin/vpnboxctl — già nel PATH, si lancia col nome e basta. Serve essere nel gruppo vpnbox (lo stesso che serve all'app; vedi l'installazione più sopra).

vpnboxctl status

Windows

Dentro la cartella dell'installazione, non nel PATH: va lanciato col percorso intero, da un prompt o PowerShell aperto come amministratore.

& "$env:ProgramFiles\VPNBox\vpnboxctl.exe" status

I comandi

ComandoCosa fa
vpnboxctl list Elenca i profili salvati — nome, protocollo, id. Il nome è quello da usare negli altri comandi, tra virgolette se contiene spazi.
vpnboxctl status Lo stato di ogni profilo in questo momento: connesso e da quanto, in corso, fermo, fallito e perché.
vpnboxctl connect <nome o id> Connette. Non torna appena il tentativo parte: resta in ascolto fino a un esito vero — connesso o fallito, non «il tentativo è partito» — fino a 30 secondi.
vpnboxctl disconnect <nome o id> Disconnette.

Il codice di uscita riflette com'è andata (0 connesso, diverso da 0 fallito o non trovato): utile in uno script che deve saperlo, non solo vederlo scorrere. Esempio, riconnetti solo se serve:

vpnboxctl status | grep -q "ufficio.*connected" || vpnboxctl connect ufficio

Storico connessioni

Nella colonna stretta a sinistra dell'app, icona dell'orologio: ogni tentativo di collegamento di ogni profilo, con com'è andato — connesso e per quanto, fallito e perché, o annullato. Diverso dal log del motore, che resta per capire un guasto preciso: questo è per vedere a colpo d'occhio se la rete ha retto la notte, non per leggere riga per riga.

Quando non si connette

Prima di andare a cercare nel log, nel pannello del profilo c'è Prova questa configurazione — e da una versione recente parte anche da sola quando un tentativo fallisce, non solo su richiesta. Non apre nessun tunnel: controlla il motore, le credenziali che quel protocollo richiede, che il nome del server si risolva e che la porta risponda. Una riga per controllo, con il colore accanto.

Serve perché un tentativo fallito dice quasi sempre «timeout», e un timeout non nomina niente. Le quattro cause sono diverse e si sistemano in modi diversi: un nome che non si risolve è il DNS, una porta che non risponde è quasi sempre un firewall in mezzo, una porta che rifiuta è il server, e una chiave mancante si risolve reimportando il file.

Una riga grigia vuol dire che da qui non si può sapere. Capita con WireGuard: usa UDP, e da un socket un server spento e uno raggiungibile si assomigliano. Lì l'unica risposta vera è provare a connettersi.

Il servizio non è in esecuzione

Il servizio è quello che possiede i tunnel — non l'app, che gira senza privilegi e gli parla su un canale locale. Prima guarda cosa dice:

systemctl status vpnbox --no-pager; journalctl -u vpnbox -n 40 --no-pager

Le due cause comuni sono un servizio non avviato (sudo systemctl enable --now vpnbox) e il tuo utente fuori dal gruppo vpnbox — in quel secondo caso il servizio gira ma l'app non può parlarci, e basta un logout/login. Su Windows il servizio si chiama «VPNBox» e si riavvia dai Servizi.

Licenza

Sette giorni di prova con un profilo. Poi serve una chiave.

In «Impostazioni → Licenza» incolli la chiave e premi Attiva. L'app la registra su questo server, che risponde con un permesso firmato valido per quel computer.

Serve più di quello che hai? Richiedi una key.

Dove finiscono le cose

CosaLinuxWindows
Profili e credenziali/etc/vpnbox%ProgramData%\VPNBox
Motori VPN/usr/lib/vpnbox/engines%ProgramFiles%\VPNBox\engines
Riga di comando/usr/bin/vpnboxctl%ProgramFiles%\VPNBox\vpnboxctl.exe
Serviziovpnbox.serviceservizio «VPNBox»

Le credenziali sono cifrate a riposo e leggibili solo da root / SYSTEM. L'interfaccia non le riceve mai indietro: una volta salvate si possono sostituire, non rileggere.