Una VPN (acronimo di Virtual Private Network) può essere considerata come un’estensione di una rete privata che si occupa di instaurare dei “collegamenti” tra due o più sistemi che debbono scambiarsi dati in modo sicuro, utilizzando una rete condivisa o comunque pubblica qual è Internet.
Attraverso la rete VPN è possibile scambiarsi informazioni in modo molto simile a quanto accade in una connessione privata punto-punto. L’approccio utilizzato dà modo di rendere il computer remoto parte di una rete privata interna alla struttura aziendale creando un “tunnel” virtuale attraverso la rete Internet. Per simulare un collegamento punto-punto, i dati vengono incapsulati con l’aggiunta di un’intestazione che fornisce le informazioni di routing e cifrati in modo da renderne possibile la lettura da parte di eventuali aggressori, sprovvisti delle necessarie chiavi crittografiche.
In questo articolo vogliamo presentarvi una procedura che consentirà di configurare una qualunque macchina Linux Ubuntu Desktop od Ubuntu Server come server VPN. Alla rete VPN che allestiremo potranno collegarsi tutti i client, qualunque sistema operativo montino. Nel nostro caso, tuttavia, utilizzando Ubuntu come server, vedremo come sia possibile connettersi alla VPN dalle macchine Windows.
La VPN utilizzerà il protocollo di rete PPTP, il più semplice da installare e configurare. Diamo per scontato di avere a disposizione un sistema Ubuntu 10.10 già installato, perfettamente funzionante e connesso alla rete Internet mediante un router domestico od aziendale.
Cliccando su Applicazioni, Ubuntu Software Center, apparirà l’applicazione che, in Ubuntu, consente di installare e rimuovere rapidamente il software. Nella casella di ricerca, in alto a destra, si dovrà digitare pptpd
quindi cliccare sul pulsante Installa in corrispondenza di PoPToP Point to Point Tunneling Server.
Cliccando sul pulsante Installa, Ubuntu provvederà a scaricare dai suoi repositories il pacchetto principale di PPTPD oltre alla dipendenza Broadcast relay daemon. Dopo qualche istante di attesa, entrambi i pacchetti verranno automaticamente installati sul sistema.
A questo punto, è necessario aprire una finestra del terminale cliccando sul menù Applicazioni quindi su Accessori, Terminale.
Alla comparsa del prompt, va digitato il comando seguente: sudo gedit /etc/pptpd.conf
. In questo modo Ubuntu visualizzerà immediatamente (previo inserimento della password) il contenuto del file di configurazione di PPTPD utilizzando l’editor di testo libero “gedit“, compatibile con la codifica di caratteri UTF-8 e nato per l’ambiente desktop GNOME.
In calce al file è necessario aggiungere quanto segue:
localip 192.168.1.200
remoteip 192.168.1.234-238,192.168.1.245
Dove 192.168.1.200
va sostituito con l’indirizzo IP assegnato al server VPN all’interno della rete locale. Il parametro remoteip
permette invece di stabilire quali gruppi di indirizzi IP saranno assegnati ai client collegati.
Dopo aver cliccato su File, Salva, per memorizzare le modifiche applicate, si dovrà tornare alla finestra terminale e digitare il comando seguente: sudo gedit /etc/ppp/pptpd-options
.
Alla fine del file di testo si dovrà aggiungere le righe seguenti:
ms-dns 192.168.1.1
nobsdcomp
noipx
mtu 1490
mru 1490
In corrispondenza del parametro ms-dns
va indicato l’indirizzo IP corrispondente al server DNS che tutti i clienti collegati in VPN utilizzeranno.
Il passo seguente consiste nell’editare il file contenente le coppie di username e password necessari per l’autenticazione al server VPN di ciascun sistema client. Per procedere è necessario digitare, sempre dalla finestra terminale, il comando sudo gedit /etc/ppp/chap-secrets
.
All’interno del file si dovranno indicare gli username seguiti dalla pressione del tasto TAB, inserire il carattere *
(asterisco), premere ancora TAB, introdurre una password, premere ancora il tasto TAB ed infine digitare nuovamente *
.
Dopo aver salvato le modifiche applicate, si dovrà riavviare il daemon della connessione affinché gli interventi apportati abbiano effetto:
A questo punto, chi lo volesse può attivare il forwarding dei dati dal server VPN a tutti i sistemi che compongono la rete locale. In questo modo, coloro che si connetteranno da remoto al server VPN avranno visibilità dell’intera LAN alla quale il server è collegato.
Per consentire questa possibilità basta agire sull'”interruttore” giusto. Innanzi tutto è necessario digitare sudo vim /etc/sysctl.conf
, cercare la direttiva net.ipv4.ip_forward=1
e togliere il segno di commento #
innanzi ad essa.
Per concludere, è sufficiente riavviare il sistema od invocare il comando sudo sysctl -p
.
Configurazione lato client su Windows
Proviamo adesso a connettere uno o più client Windows al server VPN Ubuntu Linux.
La procedura può essere effettuata sia sui sistemi Windows più moderni come Windows Vista e Windows 7 ma anche dal più “datato” Windows XP. Per iniziare, è necessario aprire il Pannello di controllo, cliccare su Centro connessioni di rete e condivisione (icona Connessioni di rete in Windows XP) quindi sul link Configura nuova connessione o rete (Crea una nuova connessione in Windows XP).
Su Windows XP, a questo punto, bisognerà cliccare il pulsante Avanti quindi scegliere l’opzione Connessione alla rete aziendale.
Anche in Windows 7 si dovrà selezionare la voce Connessione a una rete aziendale e cliccare sul pulsante Avanti.
Nella finestra successiva, nel caso di Windows XP va selezionata l’opzione Connessione VPN (consente di connettere il computer alla rete mediante una connessione VPN su Internet) mentre su Windows 7 la voce Usa connessione Internet esistente (VPN).
Il passo seguente, nel caso di Windows XP, consiste nell’attribuzione di un nome alla connessione VPN in fase di configurazione (campo VPN aziendale). Cliccando ancora su Avanti si dovrà poi specificare l’IP remoto del server VPN. Ovviamente, l’indirizzo da indicare nel campo è l’IP statico o dinamico assegnato dal provider Internet che fornisce la connessione di rete alla struttura ove è fisicamente collocato il server VPN.
L’indirizzo IP da specificare, quindi, è ad esempio quello assegnato al router aziendale o domestico al quale il server VPN è connesso.
Sul router remoto dovrà essere abilitato il forwarding dei pacchetti in transito sulla porta TCP 1723. Trascurando questo importantissimo passaggio, le richieste dirette al server VPN remoto cadranno sempre “nel vuoto”. Com’è ovvio, il traffico dati in arrivo sulla porta TCP 1723 dovrà essere inoltrato verso l’IP locale corrispondente al server VPN.
In Windows 7 dovrà essere egualmente specificato l’IP remoto verso il quale richiedere la connessione VPN ed attribuito un appellativo alla stessa.
E’ importante attivare, in questa fase, la casella Non stabilire la connessione ora. Esegui solo la configurazione della connessione, di modo che sia possibile connettersi in un secondo momento.
In Windows XP, alla comparsa della finestra che segue, è necessario cliccare sul pulsante Proprietà.
Nella scheda Rete, in alto, è quindi necessario optare per l’impostazione PPTP VPN (menù a tendina Tipo di VPN) quindi cliccare ancora su Proprietà.
A questo punto bisogna cliccare sul pulsante Avanzate… e togliere il segno di spunta dalla voce Usa gateway predefinito sulla rete remota.
Adesso si possono inserire nome utente e password di uno degli account precedentemente specificati, lato server, nel file chap-secrets
.
In Windows 7, alla comparsa del messaggio La connessione è pronta per l’utilizzo, è necessario cliccare sul pulsante Chiudi.
Dalla finestra Centro connessioni di rete e condivisione, si deve poi cliccare su Modifica impostazioni scheda (colonna di sinistra), fare clic con il tasto destro del mouse sulla connessione VPN appena aggiunta, scegliere Proprietà, cliccare sulla scheda Rete, selezionare Protocollo Internet versione 4 (TCP/IPv4), cliccare nuovamente sul pulsante Proprietà, su Avanzate… ed infine togliere il segno di spunta dalla casella Usa gateway predefinito sulla rete remota.
Nella scheda Sicurezza suggeriamo poi di indicare PPTP (Point to Point Tunneling Protocol) in corrispondenza del menù a tendina Tipo di VPN.
Perché si è disattivata la casella Usa gateway predefinito sulla rete remota sia in Windows XP che in Windows 7? Utilizzando l’opzione predefinita ciascun client utilizzerebbe, per connettersi alla Rete e quindi per navigare anche sul web, il server VPN. Dal momento che tutto il traffico di rete verrebbe inoltrato in remoto e veicolato sull’interfaccia di rete del server VPN si sperimenterebbero rallentamenti. Disattivando Usa gateway predefinito sulla rete remota, ciascun client non si appoggerà più alla VPN per la navigazione in Rete.
A questo punto, sia da Windows XP che da Windows 7 si dovrebbe riuscire a connettersi al server VPN ed avere visibilità sull’intera rete locale alla quale il server remoto è collegato.
Controlli finali e conclusioni
Adesso, aprendo da un client Windows il prompt dei comandi e digitando ping
seguito dall’IP locale assegnato al server VPN (direttiva localip
contenuta nel file pptpd.conf
), si dovrebbe ottenere risposta da parte del server remoto.
Dal momento che il primo IP assegnabile ai client (vedasi l’impostazione del parametro remoteip
) è 192.168.1.234, digitando dal prompt dei comandi di Windows IPCONFIG /ALL
, si troverà qualcosa di simile:
Se sul server remoto o sugli altri sistemi della LAN sono in esecuzione componenti server (FTP, MySQL, SQL Server,…) o se, più semplicemente, è stata attivata la condivisione di file e cartelle, si potrà interagire con il loro contenuto come se si avesse a che fare con un sistema fisicamente collegato alla propria LAN.
Per condividere file e cartelle dal server Ubuntu, ovviamente, deve essere necessariamente installato Samba. Per procedere rapidamente, basta cliccare sul menù Risorse, Computer, cliccare con il tasto destro sulla cartella da condividere, scegliere Opzioni di condivisione, spuntare la casella Condividere questa cartella ed accettare l’installazione di Samba.
Dopo aver concluso l’installazione di Samba ed accettato il riavvio del sistema Ubuntu, si dovrà ripetere l’operazione di condivisione sulla cartella d’interesse.
In Windows, digitando – in Start, Esegui… – l’indirizzo IP del server VPN preceduto da due barre rovesciate (esempio: \\192.168.1.200
) oppure il suo nome (esempio: \\MIOSERVERLINUX
) si dovrà effettuare l’autenticazione (ad esempio, nel caso di Windows 7, cliccando su Usa un altro account) usando nome utente e password di un account valido ed attivo creato sul sistema Ubuntu (non utilizzare le credenziali introdotte nel file chap-secrets
).
Va rimarcato che PPTP è stato oggetto di numerose indagini, da parte di una folta schiera di ricercatori, volte ad inviduarne le debolezze. Oggi non è quindi la scelta migliore per proteggere una VPN ma resta comunque lo schema più semplice da utilizzare. Presenteremo una serie di soluzioni alternative nei prossimi articoli.