Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Configurare un server VPN su Linux

Un tutorial che mostra passo a passo come configurare un server VPN su Linux, utilizzando PPTP su Ubuntu.
Un tutorial che mostra passo a passo come configurare un server VPN su Linux, utilizzando PPTP su Ubuntu.
Link copiato negli appunti

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.

Abbiamo visto come configurare un server VPN su Linux. Per completare la nostra discussione, vediamo brevemente in che modo un client Debian-based può connettersi al nostro server. Ovviamente, con una diversa procedura (che qui non approfondiremo), potremo connetterci al nostro server VPN anche utilizzando sistemi operativi diversi, siano essi desktop come Mac OS X e Windows, oppure mobile, come Android e iOS.

Per prima cosa, dobbiamo assicurarci che il nostro client abbia il pacchetto pptp installato. Abbiamo già visto come installarlo, ma per completezza ripetiamo di seguito le due righe di apt che ce lo consentono:

sudo apt-get update
sudo apt-get install pptp-linux

A questo punto carichiamo il modulo ppp_mppe in questo modo:

modprobe ppp_mppe

Dobbiamo adesso creare un file di configurazione, che conterrà le informazioni necessarie per effettuare la connessione al nostro server. Questo file dovrà essere creato all'interno della directory /etc/ppp/peers/, e possiamo dargli un nome qualsiasi. Per esempio, immaginiamo di chiamare il nostro file vpnserver, e facciamo sì che il suo contenuto sia il seguente:

pty "pptp --nolaunchpppd"
name computer1
password password
remotename PPTP
require-mope-128

Quindi potremo connetterci con questo comando:

pppd call vpncomputer

Non ci resta che specificare la direttiva di routing corretta, ed il gioco è fatto. Assumendo che l'indirizzo IP del nostro server sia 172.20.0.0, procediamo come segue:

ip route add 172.20.0.0/20 dev ppp0

Possiamo ripetere questa operazione per ogni client Linux Debian-based che vogliamo connettere al nostro server VPN.

Ti consigliamo anche