Home > Comandi Console, Concetti, Connessioni, Guide, Internet, Linux, Ubuntu, Windows > Connettersi a una VPN PPTP

Connettersi a una VPN PPTP

10 marzo 2008

Connessione VPN

Chiunque lavori in un’azienda con un ruolo in qualche modo informatico è connesso ad una rete con le sue risorse interne, quali database, applicativi o semplicemente altri client e server. Ma una volta fuori dalla porta dell’ufficio diventa più complesso e più rischioso accedere a queste risorse.

Una soluzione che da alcuni anni prende piede consiste nel costruire un tunnel in cui il traffico viene crittografato e consente ai client esterni di connettersi ad una rete privata virtuale (VPN, Virtual Private Network) connessa a una parte della rete interna reale.

In questo modo non si espongono ad attacchi esterni le risorse interne della rete e possono transitare informazioni tra gli utenti esterni e la rete interna in maniera più sicura.

La più semplice rete VPN che si può costruire è quella basata sul protocollo PPTP (Point to Point Tunnel Protocol) sviluppato da Microsoft, nativo in tutti i Windows dal 98 in su e il server disponibile su tutti i Windows NT Server. Questa semplicità ha fatto si che molte reti VPN venissero messe a punto con questo protocollo anche se non molto sicuro.

Sebbene esistano alcuni front-end grafici per creare connessioni PPTP (PPTPClient e network-manager-pptp per Network Manager) utilizzeremo il pacchetto pptp-linux e alcuni semplici comandi da console per configurare la connessione in quanto entrambi i pacchetti precedenti mostrano enormi limitazioni sulla configurazione della connessione.

Prima di iniziare assicuriamoci di essere in possesso dei dati di accesso alla rete VPN:

  • Indirizzo del server VPN, qui usato 123.123.123.123
  • Nome utente per l’accesso, qui Paolino Paperino
  • Password relativa all’utente per l’accesso, qui EmyEvyEly
  • Nome del dominio se in una rete con dominio, qui nessuno

Installiamo il pacchetto pptp-linux (sudo apt-get install pptp-linux), decidiamo un nome per il tunnel VPN che qui chiameremo VPNAzienda, può essere qualsiasi parola.

Memorizziamo utente, nome del tunnel e password nel file delle password delle connessioni con:

gksudo gedit /etc/ppp/chap-secrets

Aggiungendo in fondo al file l’accesso nella forma:

"DOMINIO\\Nome Utente" NomeTunnel "Password" *

Se il dominio non viene utilizzato, rimuoverlo, assieme alle barre di separazione. Nel nostro esempio avremo quindi:

"Paolino Paperino" VPNAzienda "EmyEvyEly" *

Questi dati saranno utilizzati automaticamente dal servizio di connessione remota ppp per autenticare la connessione.

Fatto ciò creiamo un nuovo file con i parametri per la connessione col nome del tunnel come indicato:

gksudo gedit /etc/ppp/peers/VPNAzienda

E scriviamo all’interno:

pty "pptp 123.123.123.123 --nolaunchpppd"
name "Paolino Paperino"
remotename VPNAzienda
require-mppe-128
usepeerdns
file /etc/ppp/options.pptp

La prima riga avvierà la connessione ppp verso il server 123.123.123.123, la seconda identifica il nome utente da utilizzare, la terza riga identifica il nome della connessione e servirà anche per la ricerca della password nel file chap-secrets.

La quarta riga impone l’uso della crittografia mppe-128, utilizzarla quindi solo se il server VPN la consente. La riga usepeerdns consentirà di ricevere i DNS dal server VPN e utilizzare quelli prima di quelli della nostra connessione internet, se non ne abbiamo bisogno possiamo anche eliminarla. L’ultima riga aggiunge le opzioni predefinite per tutte le connessioni PPTP, indicate su /etc/ppp/options.pptp.

Questi due semplici files già consentono di stabilire la connessione VPN che possiamo attivare con:

gksudo pon VPNAzienda

Se tutto va a buon fine la connessione sarà stabilita. E’ possibile osservare i messaggi di connessione con tail /var/log/messages. Verrà attivata una nuova interfaccia di rete (generalmente ppp0) attraverso la quale sarà possibile instradare il traffico diretto verso la nostra rete privata e connettersi ai client della rete, accedere alle risorse condivise.

Generalmente è compito del server VPN definire le rotte verso cui il traffico deve seguire il tunnel VPN. Se così non fosse o desideriamo aggiungere qualche indirizzo alle rotte del tunnel VPN possiamo farlo con:

sudo route add INDIRIZZO dev INTERFACCIA

Mentre nel caso di sottoreti intere:

sudo route add -net INDIRIZZO/CIDR dev INTERFACCIA

Oppure nella notazione classica con subnet:

sudo route add -net INDIRIZZO netmask SUBNET dev INTERFACCIA

Tre esempi valgon più di mille parole:

sudo route add 123.123.123.125 dev ppp0
sudo route add -net 123.123.124.0/29 dev ppp0
sudo route add -net 123.123.125.0 netmask 255.255.255.0 dev ppp0

Possiamo osservare le rotte create su tutte le interfacce con:

route -n

Se abbiamo qualche difficoltà nella connessione o l’interfaccia ppp non viene avviata, possiamo avviare la connessione da terminale con:

sudo pon VPNAzienda debug dump logfd 2 nodetach

E osservare i messaggi man mano che la connessione va avanti. Naturalmente non possiamo stare tutta la vita collegati, per cui quando avremo finito scolleghiamoci con:

gksudo poff VPNAzienda

Tutte le rotte definite saranno automaticamente rimosse.

Per ulteriori informazioni: Understanding PPTP, Creazione guidata di una connessione PPTP passo passo su tutti i Windows.

Facile come entrare e uscire dalla porta in ufficio ma restando comodamente seduti sul divano di casa.

  1. 29 agosto 2010 alle 1:03

    per la 1 non dovrebbe avere importanza.
    per la 2, probabilmente non hai compilato il file delle password come indicato nell’articolo

  2. marco
    03 settembre 2010 alle 12:12

    ciao e grazie della guida!

    funziona ma ho un problema, dal mio client con windows mi connetto alla VPN ma pingo solo il server vpn (sia il suo ip reale che quello creato con l avpn), tutti gli altri pc in rete non li pingo! potete aiutarmi per favore? grazie

    • 03 settembre 2010 alle 13:38

      hai aggiunto le rotte in modo che quelle richieste passino attraverso la rete vpn?

      • marco
        07 settembre 2010 alle 12:58

        si! le ho aggiunte seguendo il tuo esmpio mapurtroppo non è servito, non sò più cosa fare mannaggia, qualche idea? (p.s. grazie della veloce risposta dell’altra volta)

      • 07 settembre 2010 alle 13:29

        in tal caso devi chiedere a chi amministra quella vpn, i client esterni potrebbero avere il ping bloccato o abilitati solo certi servizi.

        se sei connesso alla vpn e la tabella di routing è corretta, la responsabilità passa totalmente al server vpn.

  3. 20 maggio 2011 alle 8:18

    ringrazio l’autore per la guida, mi è stata davvero utile ed ho risolto con la mia VPN aziendale

  4. muggy
    04 agosto 2011 alle 13:50

    Non mi funziona l’autenticazione, come se non riuscisse a fare il match con il file chap-secrets😦

    • Anonimo
      20 dicembre 2011 alle 1:19

      ti manca il carattere * nel file /etc/ppp/chap-secrets da aggiungere alla riga con nome utente nomeVPN e pass

  5. Valter M.
    12 settembre 2012 alle 9:46

    Ciao grazie per la guida, seguendola ha funzionato alla prima🙂

    Ho pero’ un problema sulla copia di file dalla macchina client al server.
    Entrambe hanno ubuntu 10.04
    Dalla pc client mi collego in vpn via internet al pc server senza problemi.
    Quando pero’ cerco di copiare un file piu’ grande di 1232 byte dal client al server il trasferimento va in timeout.
    Inizialmente avevo utilizzato una condivisione nfs sul server, ma poi ho provato anche con samba ed infine via ftp. Il risultato e’ sempre lo stesso: se il file e’ piu’ di 1232 byte, sull’indirizzario di destinazione viene creato il file vuoto e poi trasferimento va in timeout.
    N.b. in locale, sulla lan, la condivisione nfs funziona regolarmente senza alcun problema.
    Ho provato a ridurre su entrambe i pc il MTU, prima a 1400 poi a 1200, ma non e’ cambiato nulla.

    Potete aiutarmi per favore? Grazie.

  6. Anonimo
    13 settembre 2012 alle 22:34

    Risolto!

Comment pages
I commenti sono chiusi.
%d blogger cliccano Mi Piace per questo: