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.

Annunci
  1. Salva
    12 aprile 2010 alle 16:30

    Ok grazie per la tempestiva risposta questa sera riprovo e ti faccio sapere.
    Ciao
    Salvatore

  2. Salva
    12 aprile 2010 alle 19:04

    Ciao Muflone sono arrivato a casa sto provando a collegarmi con GNOME RDP ma non riesco.
    Spiegami come puoi vedere sotto sembra che io sia collegato alla vpn aziendale dando il ping al 10.0.0.1 l’esito e’ ok la lan aziendale a come IP 190.0.0.x il mio pc nella lan e 190.0.0.xx se da terminale provo a fare un ping sul mio pc non c’e scambio di pacchetti.
    Ti ringrazio in anticipo
    Salvatore

    salva@salva-asus:~$ tail /var/log/messages
    Apr 12 19:48:27 salva-asus pppd[3648]: Modem hangup
    Apr 12 19:48:27 salva-asus pppd[3648]: Connection terminated.
    Apr 12 19:48:28 salva-asus pppd[3648]: Exit.
    Apr 12 19:48:29 salva-asus pppd[3782]: pppd 2.4.5 started by root, uid 0
    Apr 12 19:48:29 salva-asus pppd[3782]: Using interface ppp0
    Apr 12 19:48:29 salva-asus pppd[3782]: Connect: ppp0 /dev/pts/1
    Apr 12 19:48:30 salva-asus pppd[3782]: CHAP authentication succeeded
    Apr 12 19:48:30 salva-asus pppd[3782]: MPPE 128-bit stateless compression enabled
    Apr 12 19:48:31 salva-asus pppd[3782]: local IP address 10.0.0.2
    Apr 12 19:48:31 salva-asus pppd[3782]: remote IP address 10.0.0.1

    • 13 aprile 2010 alle 12:26

      nella lan avete un router/firewall che dirotti le chiamate dalla sottorete 10.0.0.x a 190.0.0.x ?

      hai eseguito le istruzioni per modificare le rotte e far arrivare i pacchetti 10.0.0.x sull’interfaccia ppp0?

      rispondi a queste due domande e posta pure il risultato di route -n

  3. Salva
    13 aprile 2010 alle 18:39

    Ciao Muflone ho dato da terminale il comando sotto

    sudo route add -net 190.0.0.x dev ppp0

    per non farlo da terminale c’e un’altro modo in automatico.

    Ciao Grazie
    Salvatore

    • 13 aprile 2010 alle 18:52

      non stai spiegando molto.
      quel passaggio stava gia` nella guida da seguire.
      l’hai eseguito e funziona oppure non funziona nonostante tu l’abbia eseguito?

  4. Salva
    13 aprile 2010 alle 19:21

    ciao Muflone
    Da terminale
    gksudo pon VPNAzienda
    poi
    sudo route add -net 190.0.0.x dev ppp0
    Poi avvio Gnome-rdp
    Funziona tutto vedo il desktop del pc remoto vorrei se e’ possibile fare un qualcosa per utilizzare poco i comando da terminale.
    Ciao
    Salvatore

    • 13 aprile 2010 alle 19:38

      allora non avevi seguito la guida per intero?
      metti tutti quei comandi in uno script, queste istruzioni sono fatte apposta per il terminale.

      se non vuoi usare il terminale usa network manager che ha il supporto alle vpn con un click.

  5. Salva
    13 aprile 2010 alle 20:05

    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

      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

  6. Salva
    14 aprile 2010 alle 18:50

    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

    • 14 aprile 2010 alle 22:34

      avvia lo script manualmente e vedi se parte no?

  7. scolpi
    29 giugno 2010 alle 18:33

    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

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

  8. scolpi
    29 giugno 2010 alle 21:01

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

  9. scolpi
    29 giugno 2010 alle 21:03

    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

      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

  10. kirkende
    29 agosto 2010 alle 0:13

    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….

Comment pages
I commenti sono chiusi.
%d blogger hanno fatto clic su Mi Piace per questo: