Guida all'installazione e configurazione di Openvpn su Proxmox
di Luigi Duchi
18 Giugno 2023
Guide
Sempre più spesso sento dire in rete che Proxmox è inutile per la sola installazione di Home Assistant.
Niente di più vero.
Utilizzare Proxmox per la sola installazione di Home Assistant è veramente uno spreco di risorse soprattutto se si ha a disposizione un mini PC piuttosto prestante.
Tuttavia sappiamo benissimo che per gestire la Domotica con Home Assistant esso deve essere operativo h24, perché allora non sfruttare Proxmox per installare altre Virtual machine o LXC?
Oggi vedremo come installare un server VPN (Virtual Private Network o Rete virtuale privata) sul nostro Proxmox per poterci connettere alla nostra rete anche al di fuori della nostra abitazione come se fossimo in rete locale creando una connessione di privata che trasmette dati sulla rete pubblica in modo anonimo e sicuro.
Utilizzeremo OPENVPN (https://openvpn.net/).
Prima di andare avanti facciamo un doveroso passo indietro.
Ricordate come installare Proxmox? NO?
Seguite questa Guida QUI dovreste riuscire ad avere il vostro Proxmox Funzionante sul vostro mini pc.
Per chi non lo sapesse Proxmox è un sistema operativo che si basa su Linux (Debian) che crea un leggerissimo ambiente di virtualizzazione dove poter creare e gestire le VM che desideriamo.
Il primo passaggio da effettuare è scaricare il client di OPENVPN. È possibile installarlo praticamente per ogni piattaforma. Nella guida di oggi vedremo l'installazione per Windows ma la procedura è identica per ogni sistema operativo. Linux, MacOS, IOS , Android e addirittura ChromeOS.
Scaricate il client da questo LINK QUI e installatelo sul vostro PC windows
QUI Troverete il client per MacOS
QUI troverete i comandi per installare il client su LINUX
e troverete le relative app sia su iOS che su Android sui rispettivi store.
Playstore
Appstore.
Una volta installato il client apritelo.
Questa è la schermata che si presenterà
Cliccate su FILE
Noterete che avrete la possibilità di caricare un file con estenzione .OVPN
Tale file altro non è che il certificato generato dal server per autenticare il dispositivo.
Lasciamo l'app aperta minimizzandola e andiamo a lavorare su Proxmox per installare il server Openvpn.
Dovremo andare a creare un container basato su Ubuntu all'interno di proxmox. Seguite tutti i passaggi e non avrete difficoltà.
Cliccate su local(pve) successivamente su CT Templates.
Cliccate in alto su Templates e successivamente scaricate lxc ubuntu-18.04-standard una volta installato lo troverete sotto la voce name nella pagina dei CT Templates.
Cliccate su Create CT in alto a destra.
alla voce Hostname inserite un nome a piacimento per il vostro container nell'esempio ho usato vpnmissingtech
scegliete una password e inseritela alla voce password e alla voce confirm password.
successivamente cliccate su NEXT.
Alla voce Template scegliete ubuntu-18.04-standard....
Successivamente cliccate su NEXT
Disk size lasciate 8 di default e cliccate su NEXT
Anche la CPU lasciate un Cores e cliccate su NEXT
Anche la memoria lasciate i valori di default e cliccate su NEXT
Impostate su DHCP sia IPv4 che IPv6 e cliccate su NEXT
A meno di configurazioni particolari, alla voce DNS mettete 8.8.8.8, alla voce DNS domain e 8.8.4.4 alla voce DNS servers.
cliccate poi su NEXT.
Fate attenzione a non spuntare la voce Start after created perchè avrete necessità di effettuare ulteriori passaggi una volta configurato il container. Cliccate quindi su Finish.
Dopo che vedrete la voce TASK OK nel LOG che vi si presenterà, noterete che nella colonna di sinistra ci sarà il vostro container creato. Ovviamente non è ancora avviato.
Cliccate su PVE e successivamente su Shell.
Digitate il seguente comando per andare al percorso designato cd /etc/pve/lxc successivamente premete invio.
Digitate il comando ls
Se avrete un solo container vi apparirà il suo codice seguito da .conf nel mio caso 105.conf
Scrivete il comando nano il vostro numero.conf nel mio caso nano 105.conf cliccate su invio
andate con il cursore in fondo alla pagina del file che vi si apre e aggiungete queste due stringhe:
lxc.cgroup.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net dev/net none bind,create=dir
Successivamente salvate il file con la combinazione di tasti ctrl+x e successivamente cliccate Y in seguito cliccate il tasto invio.
Adesso dovrete lanciare il comando seguente:
chown 100000:100000 /dev/net/tun
cliccate invio per eseguirlo.
Per controllare che tutto sia andato a buon fine lanciate il seguente comando seguito dal tasto invio:
ls -l /dev/net/tun
Dovreste trovare un risultato del genere, se tutto è andato come previsto.
Cliccate nel menù a sinistra sul vostro container nel mio caso 105 (vpnmissingtech)
Cliccate su console e successivamente sul pulsante Start Now
Appena il container si sarà avviato vi chiederà i dati di login alla voce login scriverete root e premerete invio
alla richiesta della password scriverete la password che avete creato durante la creazione del container all'inizio della guida, in seguito cliccate invio.
scrivete il classico comando per aggiornare linux ovvero:
apt upgrade && apt update -y
al termine dei download digitate nuovamente il comando
apt upgrade && apt update -y
se ve lo chiede digitate Y e premete invio
al termine dell'aggiornamento digitate nuovamente il comando:
apt upgrade && apt update -y
per essere certi che tutto sia stato aggiornato.
se è tutto ok vi comparirà la scritta
All package are up to date.
Una volta che tutti i pacchetti saranno aggiornati lanciate questo comando:
apt install openvpn git e premete invio
Digitate Y quando ve lo chiederà e confermate con invio
Al termine dell'installazione dovrete digitare il seguente comando seguito dal tasto invio:
git clone https://github.com/Nyr/openvpn-install
Una volta effettuata l'installazione andate nella cartella openvpn-install con il seguente comando:
cd openvpn-install
arrivati a questo punto dovrete lanciare uno script con il comando bash. Tenete presente che dovrete lanciare questo script da questa cartella ogni volta che vorrete generare un nuovo certificato per un nuovo client ad esempio se vorrete utilizzare Openvpn su uno smartphone o su di un altro computer, ecc...
lanciate quindi il comando:
bash openvpn-install.sh e premete invio.
sul file che vi si apre cliccate su invio alla voce ip pubblico che ho mascherato per privacy.
alla domanda successiva digitate 1 e premete invio sceglierete cosi il protocollo UDP
Alla domanda su quale porta usare di default openvpn vi propone la 1194. Devo dire che molti provider bloccano quella porta e comunque è una porta molto bersagliata, ne sceglierei una diversa, infatti per questo test ho usato la porta 1234, scegliete quella che più vi aggrada purché sia libera.
Alla domanda su quale DNS vorrete utilizzare digitate 3 e poi premete invio utilizzerete cosi i DNS di Cloudflare.
A questo punto dovrete scegliere un nome per il vostro client. Potrete scrivere quello che volete, ma il mio consiglio è quello di scegliere un nome che identificherà il dispositivo sul quale andrete ad installare questo certificato, nel mio caso pcmissingtech.
Cliccate nuovamente invio per far partire l'installazione.
Come notate al termine dell'installazione il container vi avvertirà che il file ovpn, che nel mio caso è chiamato pcmissingtech.ovpn, è nel percorso /root
Digitate quindi il comando cd seguito dal tasto invio per tornare alla radice.
Una volta alla radice digitate il comando ls
Noterete che ci sarà un file con estensione .ovpn nel miocaso pcmissingtech.ovpn
Digitate il comando:
cat pcmissingtech.ovpn e premete invio ovviamente dovrete aver cura di sostituire il nome pcmissingtech con quello da voi scelto ad esempio:
cat sudomagodo.ovpn
Il comando vi genererà un file lunghissimo dovrete copiarlo tutto partendo dalla parola client fino alla parola compresa
Una volta copiato la serie lunghissima di codice aprite un file di testo su windows e incollateci tutto il codice.
Una volta incollato cliccate su salva con nome nel menù file del blocco note di windows.
Nel menù salva come dovrete selezionare Tutti i file.
e al nome file dovrete mettere il nome del vostro file nel mio caso pcmissingtech.ovpn salvatelo sul desktop del pc.
Aprite il programma OpenVPN Connect andate su file e trascinate il file .ovpn appena creato sul simbolo della nuvola.
Su server Hostname comparirà il vostro IP pubblico su Profile name potrete cancellare tutto quello che c'è scritto e dare un nome a vostro piacimento.
Prima di cliccare su connect dovrete ricordarvi di aprire la porta sul vostro router.
Quale porta? Quella che avete scelto in fase di configurazione ricordate? Nel mio caso 1234
Questa porta la dovrete aprire sull'ip del vostro container con il protocollo UDP.
Non vi faccio vedere come aprire la porta perchè tale procedura varia da Router a Router.
Ma quale è l'ip del vostro container?
Per scoprirlo tornate su Proxmox.
Selezionate il vostro container, nel mio caso 105 (vpnmissingtech), e cliccate su console.
digitate il comando ip address
Nel mio caso 192.168.1.153
Visto che andate sul Router per aprire la porta non perdete l'occasione di prenotare l'ip con il DHCP reservation in modo che il Router assegni sempre il medesimo indirizzo ip. Ovviamente non vi dimenticate di aprire la porta sopra menzionata su quell'ip.
TUTTO PRONTO!!!!
Volete provare se funziona?
Connettete il vostro pc ad una connessione che non è nella vostra LAN ad esempio al WiFi generato dall'hotspot del vostro smartphone.
Una volta connesso provate a raggiungere un ip interno della vostra rete.
Noterete che sarà irraggiungibile.
Non demordete aprite OpenVPN Connect e abilitate lo Switch.
Noterete che una volta abilitata la VPN potrete raggiungere i vostri indirizzi anche se in questo caso il PC è connesso al vostro hotspot... Questo funzionerà con qualsiasi connessione fuori dalla vostra LAN il vostro pc si connetterà.
Vi lascio in compagnia del video di fine articolo che vi spiegherò passo passo tutti i procedimenti.
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.