Cookie

Creare un server VPN sul tuo PC con Linux

Pubblicato da TheJoe il

Tempo di lettura stimato: 4 minuti

Attenzione


Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.

Ti è mai capitato di connetterti a una rete Wi-Fi di cui non ti fidi completamente? Sto parlando di reti pubbliche come negli hotel o nei locali. In quel caso come potresti fare per navigare in tutta sicurezza sfruttando una rete “debole”? Tramite una VPN.

Una VPN (Virtual Private Network) è una rete di telecomunicazioni privata, instaurata come connessione tra soggetti che utilizzano un protocollo di trasmissione pubblico e condiviso, come ad esempio la suite di protocolli Internet.

Tratto da Wikipedia

Scopo delle reti VPN è quello di offrire alle aziende, a un costo minore, le stesse possibilità delle linee private a noleggio, ma sfruttando reti condivise pubbliche: si può vedere dunque una VPN come l’estensione a livello geografico di una rete locale privata aziendale sicura che colleghi tra loro siti interni all’azienda stessa variamente dislocati su un ampio territorio, sfruttando l’instradamento tramite IP per il trasporto su scala geografica e realizzando di fatto una rete LAN, detta appunto “virtuale” e “privata”, equivalente a un’infrastruttura fisica di rete (ossia con collegamenti fisici) dedicata.

Tratto da Wikipedia

Tutto chiaro? In beve connettendoci ad una VPN sarà come se il nostro client fosse fisicamente nella LAN del server. Vedremo gli host che vede il server, avremo le limitazioni (come firewall o blacklist) che ha il server.

Ci sono svariati servizi VPN disponibili, ognuno con delle caratteristiche differenti. Google stessa di recente ha lanciato la sua VPN (occorre sottoscrivere un abbonamento a Google One), altre sono gratuite. Tutte differiscono in velocità, sicurezza e servizi offerti. Molte VPN, anche commerciali, usano OpenVPN come software per gestire le VPN.

OpenVPN crea un tunnel criptato tra due punti, impedendo a qualsiasi “terza parte” di accedere ai dati sul traffico. Avviando il tuo server VPN diventeresti il tuo provider VPN. Molti servizi proprietari usano OpenVPN come backend, quindi perché legarsi a uno in particolare quando potresti avere il pieno controllo?

Creare un server Linux

Qui c’è poco da dire. Occorre installare una qualsiasi distribuzione Linux su un PC. L’hardware del PC in questione non dev’essere per forza di ultima generazione se lo dobbiamo usare solo come server VPN. Per il nostro articolo useremo Fedora, ma non sentirti legato a questa distribuzione: OpenVPN è installabile su qualsiasi sistema Linux.

Impostazioni di rete

Dopo aver installato Fedora sul nostro PC dovremo configurare la rete. Per fare ciò dovremo loggarci tramite console o in SSH.

Per prima cosa scarichiamo gli aggiornamenti e riavviamo il sistema.

~$ sudo dnf update -y && reboot

Logghiamoci ancora e disabilitiamo il firewall.

~$ systemctl disable firewalld.service

~$ systemctl stop firewalld.service

Potresti voler abilitare alcune regole del tuo firewall per la rete interna. Se così fosse finisci prima di configurare OpenVPN con il firewall down. Abiliterai le regole del firewall successivamente. C’è un post molto dettagliato nel blog di RedHat.

L’indirizzo IP

I comandi che seguono assumono che la tua interfaccia di rete venga “chiamata” dal sistema ens3. Nel tuo caso potrebbero avere un altro identificativo, quindi controlla come si chiami con il seguente comando.

~$ sudo nmcli connection show
NAME  UUID                                  TYPE      DEVICE
ens3  18916b35-9d58-42bc-bdc6-fc0659480875  ethernet  ens3

Dovrai assicurarti di riuscire a collegarti al tuo server VPN in remoto. Ci sono due strade: impostare l’IP in modo statico sulla LAN (e questo è il mio consiglio), oppure lasciare al router il lavoro “sporco”.

Guarda qui:  Cambiare lingua a Firefox

Configurare l’IP manualmente

Imposta come statici l’IP, il gateway e il DNS con il comando che segue (inserisci l’IP del tuo server).

~$ sudo nmcli connection modify ens3 ipv4.addresses 10.10.10.97/24
~$ sudo nmcli connection modify ens3 ipv4.gateway 10.10.10.1
~$ sudo nmcli connection modify ens3 ipv4.dns 10.10.10.10
~$ sudo nmcli connection modify ens3 ipv4.method manual
~$ sudo nmcli connection modify ens3 connection.autoconnect yes

E alla fine impostiamo un hostname.

~$ sudo hostnamectl set-hostname OVPNserver

Se hai un server DNS locale dovrai impostare una voce DNS con l’hostname che punta all’IP del server VPN.

Riavvia il PC e assicurati alla riaccensione che le impostazioni date siano effettive.

Fai configurae l’IP dal tuo router

Il router che usi nella tua rete (che tu l’abbia acquistato, o che ti sia stato dato in comodato dal tuo ISP) integra con tutta probabilità un server DHCP che assegna gli indirizzi IP in modo arbitrario ai dispositivi connessi. Il tuo nuovo server VPN è esattamente uno dei dispositivi della rete a cui il router ha assegnato un IP.

Il problema si pone nel momento in cui il router non può garantire che ogni dispositivo non possa mai ottenere lo stesso IP ad una eventuale riconnessione. Il router con tutta probabilità tenterà di assegnare lo stesso indirizzo, ma può cambiarlo in base al numero di dispositivi connessi, o ad altre variabili che non conosciamo (ogni produttore imposta regole arbitrarie).

Ad ogni modo quasi tutti i router oggigiorno hanno una interfaccia web di configurazione in cui prenoteremo gli indirizzi IP per ogni dispositivo specifico.

Non esiste una interfaccia universale per i router… ogni produttore ha sviluppato quella che secondo l’ufficio marketing si adatta di più alla loro clientela. Dovrai cercare nelle impostazioni del router “IP statico”, o “DHCP” e assicurarti che a ogni riavvio del PC o del router l’IP assegnato a quel computer in particolare rimanga sempre lo stesso.

Accedi al server

Oltre ad integrare un server DHCP, con tutta probabilità il tuo router integrerà anche un firewall. Di norma questo è ottimo perché non vorresti mai che qualcuno penetrasse nella tua LAN. Dobbiamo però configurare il router in modo che lasci aperte le connessioni al nostro server VPN, o non saremo in grado di collegarci.

La situazione migliore sarebbe ottenere dal ISP di riferimento un IP statico. In Italia gli IP statici hanno un costo in bolletta (pochi euro in realtà), quindi più facilmente vorrai rivolgerti ad un servizio privato ma gratuito come dynDNS (configurabile anche su Linux), o un servizio collegato al router (come ad esempio, ma non solo, il servizio MyFritz di FritzBox!).

OpenVPN usa la porta UDP 1194 di default. Dovrai configurare il port-forward del tuo router per indirizzare il traffico in entrata sulla porta 1194 alla porta 1194 del tuo server VPN. Puoi anche cambiare la porta in ingresso a piacimento e dovrai ricordartela quando tenterai di accedere.

Ah, come prima non esiste una interfaccia standard per tutti i router. A volte viene chiamata “Port forwarding”, a volte “Virtual server”, o (in alcuni casi) “Abilitazioni” (o altro ancora).


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

0 commenti

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.