Configurare un server VPN su Linux

25 febbraio 2016

Ultimamente si è assistito ad una crescita del numero di utenti che utilizzano Linux come sistema operativo principale. Ciò può essere motivato in molti modi. Ad esempio, se si guarda alla sfera degli utenti desktop, si può ragionevolmente affermare che sistemi come Microsoft Windows sono più esposti a vulnerabilità di sicurezza, e talvolta anche meno stabili. Se ci si sposta sull’ambito dei sistemi server, in realtà il discorso è pressocchè analogo.

Se, però, si pensa alla configurazione ed installazione di pacchetti software, i vantaggi nell’uso di Linux sono meno evidenti. Se pensiamo di dovere installare software tipo Skype, Firefox, VLC e simili, distribuzioni Linux moderne come Ubuntu, Fedora o openSUSE ci semplificano notevolmente ogni processo di configurazione. Ma se si pensa di volere configurare un server VPN, la questione (seppur risolvibile più o meno agevolmente) non è egualmente banale.

In questo articolo vedremo proprio in che modo possiamo configurare una VPN sul nostro PC, utilizzando Ubuntu come sistema operativo server. Collegandoci, poi, alla nostra VPN personale, potremo mascherare a chiunque altro tutto il traffico in uscita, dal momento che esso sarà interamente diretto, per esempio, verso casa nostra (dove si troverà il nostro server VPN).

Esistono due soluzioni per le VPN, vale a dire OpenVPN e PPTP VPN. In questo tutorial ci soffermeremo su quest’ultima opzione.

Configurazione del server VPN

Installazione e configurazione di PPTP

La prima cosa di cui ci occuperemo sarà proprio la configurazione del server VPN, ovvero quel software che ha il compito di assegnare gli IP alle macchine che vi si collegheranno. Installiamo quindi il pacchetto PPTP sul nostro server. Possiamo farlo sfruttando il comando apt-get, dal momento che su Ubuntu questo pacchetto è già presente sui repository. Per essere anche certi di installare la versione più aggiornata, procediamo come segue:

sudo apt-get update
sudo apt-get install pptpd

Completata l’installazione, dobbiamo modificare il file di configurazione /etc/pptd.conf. Possiamo farlo con un editor grafico come gedit:

sudo gedit /etc/pptpd.conf

o se preferiamo (e se sappiamo come utilizzare un editor di testo a riga di comando) possiamo usare vi o nano:

sudo nano /etc/pptpd.conf

Aperto questo file, dobbiamo aggiungere le seguenti due linee in fondo ad esso:

localip 172.20.0.1
remoteip 172.20.0.100-200

Queste due linee specificano l’IP che utilizzerà il server VPN (in questo caso 172.20.0.1, ma ovviamente questo varierà caso per caso), ed il range di IP da assegnare ai client che si connetterano con il server (specificato a seguito di remoteip).

Aggiungere gli utenti

Il prossimo passo consiste nell’aggiungere nuovi utenti. Per farlo, dovremo aprire e modificare il file /etc/ppp/chap-secrets con un editor a nostra scelta. Per ogni utente, dovremo aggiungere il nome del client, seguito dal server, la password e l’indirizzo IP. Quindi, le righe che aggiungeremo saranno simili alle seguenti:

utente1 pptpd password *
utente2 pptpd password *

In realtà abbiamo utilizzato gli asterischi (*) anziché gli indirizzi IP, in modo da consentire ad ogni indirizzo IP di connettersi tramite il server VPN che stiamo configurando. Ovviamente questa scelta dipende da quanto vogliamo che sia privato e sicuro il nostro server, e ciò va valutato caso per caso.

Specificare i DNS

Sebbene questo passaggio sia opzionale, è sempre bene specificare quali DNS si vogliono utilizzare per il nostro server VPN. Esistono due opzioni preferibili: gli OpenDNS ed i DNS di Google. Nel primo caso, gli indirizzi sono 208.67.222.222 e 208.67.220.220; i server DNS di Google, invece, sono più facilmente memorizzabili: 8.8.8.8 e 8.8.4.4. Possiamo specificare quali usare modificando il file /etc/ppp/pptpd-options, aggiungendo due linee come le seguenti:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Completare la configurazione di PPTP

Per completare, avviamo il demone di PPTP come segue:

service pptpd start

Apriamo quindi il file /etc/sysctl.conf e verifichiamo che esso contenga la linea seguente:

net.ipv4.ip_forward = 1

Se tale linea non è presente, copiamola ed incolliamola nel file, salviamolo ed aggiorniamo la configurazione con il comando:

sysctl -p

Infine, se voglimo che i client comunichino gli uni con gli altri, possiamo aggiungere le opportune regole iptable come segue:

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save

Ovviamente dovremo sostituire eth0 con la connessione utilizzata dal server (e possiamo capirlo dando un’occhiata agli output dei comandi iwconfig ed ifconfig). Quindi, procediamo come segue:

# iptables --table nat --append POSTROUTING --out-interface ppp0 -j
# iptables -I INPUT -s 172.20.0.0/20 -i ppp0 -j ACCEPT
# iptables --append FORWARD --in-interface eth0 -j ACCEPT

A questo punto la configurazione è completato, ed il nostro server VPN è pronto e funzionante. Nella seconda parte di questo articolo vedremo come collegarci da un client al nostro server.

Se vuoi aggiornamenti su Configurare un server VPN su Linux inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Configurare un server VPN su Linux

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy