I servizi di VPN (Virtual Private Network), stanno diventando sempre più popolari anche nel mercato consumer. Si tratta di una tecnologia che mette in sicurezza le connessioni creando una point-to-point secure connection, la VPN instaura quindi un collegamento tra vari soggetti, gli endpoint, che utilizzano un protocollo pubblico, come ad esempio il TCP/IP (Transmission Control Protocol), assicurandosi che tale connessione si crittografata e non intercettabile da un soggetto terzo.
VPN e protezione dei dati
Una VPN ha dunque l'obbiettivo di assicurare la protezione dei dati dell'utente fornendo una connessione con le caratteristiche di: integrità, confidenzialità, autenticazione oltre alla protezione dagli attacchi di tipo replay.
Proprio grazie a tali feature le VPN sono diventate molte gettonate in ambito aziendale, questo perché le informazioni e i file che vengono scambiati tra un server aziendale e un dipendente sono confidenziali e possono contenere segreti industriali che, se intercettati, potrebbero danneggiare il lavoro di tante di persone.
Ecco perché per un'azienda non è raro sfruttare un servizio di VPN. Questa tecnologia è poi ancora più importante per i lavoratori che operano in remote working, tra le persone maggiormente esposta agli attacchi informatici.
I servizi di VPN professionali hanno ovviamente dei costi ma è possibile realizzare un server VPN, ospitato all'interno della propria rete locale, a "costo zero" utilizzando Linux. Per garantire una protezione continua è necessario che il dispositivo che ospita il server VPN sia sempre accesso, ecco perché per tale soluzione molto spesso viene utilizzato Raspberry Pi.
Questa board ARM comporta infatti consumi energetici davvero minimi, può essere alimentato con una normale caricatore per cellulari e le dimensioni ridotte consentono di collocarlo anche vicino al router.
Nella guida di oggi vi spiegheremo come realizzare un semplice server VPN con Linux. Nel dettaglio ci focalizzeremo sulla distribuzione Debian e su OpenVPN, un popolare programma VPN distribuito sotto licenza open source. Si tratta di un tutorial accessibile anche agli utenti alle prime armi. Per realizzare una configurazione similare non è necessario possedere particolari conoscenze sul mondo Linux o sulle VPN.
Configurare un server VPN su Linux
Una volta terminata l'installazione di Debian possiamo aprire il terminale ed iniziare a configurare tutti i pacchetti necessari alla nostra VPN. Partiamo quindi assicurandoci che il sistema operativo abbia tutti i software aggiornati sfruttando il gestore di pacchetti APT (Advanced Packaging Tool):
sudo apt update && sudo apt upgrade
Ultimato tale processo dobbiamo installare, nel caso non sia già presente, il pacchetto chiamato net-tools
, questo perché al suo interno è presente l'utility ifcfg
che è necessaria al corretto funzionamento di OpenVPN:
sudo apt install net-tools
Ora installiamo anche altri programmi necessari per OpenVPN come il download manager wget
e la suite crittografica gnupg
:
sudo apt -y install ca-certificates wget gnupg
Adesso è arrivato il momento di configurare il PPA (Personal Package Archive) di OpenVPN, gestito dai coder del progetto, dalla quale reperire il programma vero e proprio:
sudo wget https://as-repository.openvpn.net/as-repo-public.asc -qO /etc/apt/trusted.gpg.d/as-repository.asc
sudo echo "deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/as-repository.asc] http://as-repository.openvpn.net/as/debian bullseye main">/etc/apt/sources.list.d/openvpn-as-repo.list
sudo apt update && apt -y install openvpn-as
Dopo aver dato quest'ultimo comando il sistema procede con l'installazione di OpenVPN, al termine della procedura viene creato anche un utente di default del server VPN, chiamato openvpn
. Noi vi consigliamo di impostare una nuova password per accedere ad OpenVPN tramite tale comando:
passwd openvpn
Ora è possibile accedere alla Web console di OpenVPN tramite il browser. Si dovrà quindi digitare questa stringa all'interno della barra degli URL:
https://IPdelcomputer:943/admin
Se non ricordate l'IP del dispositivo su cui state configurando OpenVPN potete usare questo pratico comando da CLI (Command Line Interface):
hostname -I
Una volta immesso il comando nel browser ci ritroveremo davanti ad una schermata di questo genere:
L'username da inserire è appunto openvpn
mentre la password è quella impostata precedentemente. A questo punto sarete nel pannello di controllo di OpenVPN. L'installazione è ora completa.
Impostare OpenVPN per il Tunnelling
Il Tunnelling è un protocollo che consente di accedere ad un servizio non fornito direttamente dalla rete a cui si è connessi, in questo caso la nostra nuova VPN. Per abilitare il Tunnelling su OpenVPN è necessario digitare tali comandi da shell:
sudo echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.d/99-sysctl.conf
sudo sysctl -p
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
Adesso torniamo nella Web console di OpenVPN e spostiamoci nella sezione chiamata "Routing" che si trova sotto il menu "VPN Setting".
La prima opzione che ci interessa si chiama "Should VPN clients have access to private subnets (non-public networks on the server side)?" e deve essere impostata su "No". Successivamente accertiamoci che la voce "Should client Internet traffic be router through the VPN?" sia settata su "Yes".
Per evitare ogni forma di DNS leak assicuriamoci che l'opzione "Have clients to use the same DNS servers as the Access Server host" sotto la categoria "DNS Settings" sia impostata sempre su "Yes". Salviamo quindi i setting appena immessi e ricordiamoci di cliccare sul pulsante "Update Running Server" cosi da accertarci che le modifiche vengano regolarmente attivate sul VPN Server.
Connettere i device al VPN Server
Possiamo quindi iniziare ad utilizzare la nostra nuova VPN. Se usiamo un PC Windows o un Mac con MacOS dobbiamo semplicemente installare il client di OpenVPN disponibile gratuitamente sul sito ufficiale del progetto. Esso si occupa di tutte le configurazioni necessarie e di instaurare la connessione sicura con OpenVPN.
Se invece usiamo un computer con Linux la procedura è semplice, possiamo infatti reperire il client nei repository della distribuzione. Su Ubuntu e Debian basta ad esempio rivolgersi al gestore di pacchetti:
sudo apt install openvpn
A questo punto aprite il client e seguire la procedura guidata. Il procedimento è praticamente il medesimo anche sui sistemi operativi mobile Android e iOS, basta eseguire il download dell'applicazione dal Play Store o dall'App Store ed inserire username e password di OpenVPN. Gli applicativi dovrebbero provvedere automaticamente ad eseguire la connessione sicura al server VPN appena settato.