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

Connettersi a una VPN PPTP


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. Salva
    13 aprile 2010 alle 20:05 | #1

    Ciao
    La prima volta ho provato a creare una connessione vpn da network manager ma mi da sempre connessione non riuscita, provo a mettere qui comandi in uno script anche se non come si fa.
    Ciao
    Salvatore

    • 13 aprile 2010 alle 20:09 | #2

      crea un file di testo e scrivi dentro
      #!/bin/bash
      pon VPNAzienda
      route add -net 190.0.0.x dev ppp0

      salvalo come ti pare, rendilo eseguibile dalle proprieta` e poi fatti un lanciatore che esegua gksudo nomefile

  2. Salva
    14 aprile 2010 alle 18:50 | #3

    ciao ho seguito le tue istrizioni sulla Scrivania
    creato file gli ho messo dentro le tre righe l’ho salvato l’ho reso eseguibile poi ho creato un lanciatore che punta al file che ho creato sopra quando apro gnome -rdp mi da errore sembra che non sia connesso alla VPN.
    Grazie al tuo aiuto riesco a collegarmi solo da terminale.
    Ciao
    Salvatore

  3. scolpi
    29 giugno 2010 alle 18:33 | #5

    essendo di fatto una connessione point-to-point, per la rotta di default dovrebbe bastare:

    sudo route add -net 0.0.0.0 ppp0

    • 29 giugno 2010 alle 18:53 | #6

      cosi` facendo impedisci di fatto la navigazione internet mentre sei connesso

  4. scolpi
    29 giugno 2010 alle 21:01 | #7

    hai ragione, si nota che non ho mai usato una vpn ? :)

  5. scolpi
    29 giugno 2010 alle 21:03 | #8

    che tu sappia, visto che in una discussione su ubuntu.it un utente aveva questo problema, sai se sia possibile usare per l’autenticazione un certificato?

    • 29 giugno 2010 alle 21:22 | #9

      io non l’ho mai usato ma dovrebbe bastare usare il metodo di autenticazione EAP-TLS invece di MSCHAP che e` gia` supportato dai moderni pppd

  6. kirkende
    29 agosto 2010 alle 0:13 | #10

    salute,
    ho due intoppi:
    1.in /etc/ppp/ manca il file options.pptp
    2.all’esecuzione di “gksudo pon VPNAzienda” mi restituisce:
    “The remote system (xxxxx) is required to authenticate itself/usr/sbin/pppd: but I couldn’t find any suitable secret (password) for it to use to do so.”

    Ma magari ho sbagliato io qualcosa, domattina ci riprovo….

  7. 29 agosto 2010 alle 1:03 | #11

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

  8. marco
    03 settembre 2010 alle 12: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 | #13

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

      • marco
        07 settembre 2010 alle 12:58 | #14

        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 | #15

        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.

  9. 20 maggio 2011 alle 8:18 | #16

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

  10. muggy
    04 agosto 2011 alle 13:50 | #17

    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 | #18

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

Comment pages
  1. 23 marzo 2008 alle 19:26 | #1
  2. 29 giugno 2008 alle 13:32 | #2
  3. 12 febbraio 2009 alle 19:48 | #3
  4. 18 agosto 2009 alle 15:03 | #4

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Iscriviti

Get every new post delivered to your Inbox.

Join 90 other followers