VPN server con Linux

In questi giorni ho avuto modo di testare, per vari motivi, diversi dispositivi firewall facilmente reperibili in commercio ad un prezzo compreso tra i 70 ed 140 euro.

I test erano volti sia alla configurazione del portmapping sia alla configurazione di un accesso vpn dall’esterno.

Il panorama dovrebbe essere quello di un soggetto “in giro per il mondo” che decide di collegarsi alla propria rete in casa. Per ovvie ragioni non desidera “pubblicare” direttamente un computer in Internet bensì, preferisce proteggersi con un firewall il quale “in qualche modo” deve gestire anche la connessione vpn. Bene, dopo svariati tentativi, durati nel tempo, ho scoperto che non sempre gli aggeggini in discorso sono affidabili, specie quando s’inizia a raffinare la configurazione con controlli sul protocollo e sui pacchetti scambiati nonchè sulla tipologia di collegamento (CHAP, MSCHAPv1 e 2, ecc).  Infatti probabilmente per colpa della naturale instabilità della connessione Internet e della eterogeneità dei mezzi che dobbiamo attraversare per giungere in casa (immaginiamo il collegamento by umts o meglio hsdpa), gli aggeggini troncano/sospendono/disabilitano la connessione vpn; a volte bloccando anche la connessione Internet. Il test era sempre volto a guadagnare il desktop remoto.

Il protocollo che useremo per la vpn è il pptp, questo perchè presente in tutti i sitemi operativi ( ce n’è una versione test anche per symbian 😮 ) ed utilizzeremo, quindi, la configurazione guidata di Windows per configurare il client.

Bene a questo punto passiamo ai passi da compiere, con Sistema Operativo Ubuntu :

Installiamo Ubuntu 9.04 nella versione base, senza scegliere alcuna configurazione.
Ora installiamo il server con

apt-get install pptp-linux

editiamo il file /etc/ppp/pptpd-options e controlliamo che nella direttiva Encryption sia abilitata la sola voce

require-mschap-v2

mentre le altre sono impostate a refuse …

dopo di ché prendiamo nota del parametro “name” di default dovrebbe essere pptpd.

Questo parametro servirà in seguito per definire attraverso quale tipologia di servizio accederemo e con quali caratteristiche.

Editiamo il file /etc/poptp.conf e valorizziamo le variabili

localip  192.168.0.100         (indirizzo ip del server)

remoteip 192.168.0.101-107     (range di indirizzi da assegnare ai client a connessione avvenuta)

Editiamo il file /etc/ppp/chap-secrets ed inseriamo per ogni rigo

<username> pptpd <password> *

dove :

<username> una stringa per definire l'utente (non deve essere un utente di sistema)

<password> una stringa

* che significa qualsiasi indirizzo IP di provenienza

Riavviamo ed il gioco è fatto !

Un serverino di vpn completamente compaibile con tutti i sistemi operativi, stabile ed estremamente configurabile.

A proposito dimenticavo che per i pigri della riga di comando c’è anche una interfaccia grafica, si deve aggiungere il repository alla nostra sourcelist :

deb http://quozl.netrek.org/pptp/pptpconfig ./

e poi

apt-get update

apt-get install pptpconfig