Web3king’s Blog

Crearsi velocemente una vpn pptp con Linux (ubuntu) senza router adsl particolari

Scritto da agelmi il 26.mar, 2009, in Linux

Per crearsi in modo semplice e rapido una vpn casalinga o aziendale è veramente molto semplice: basta Linux e una manciata di minuti a disposizione…

Mi sono basato su questa bellissima guida, ma ho integrato alcune importanti configurazioni che ho dovuto fare per risolvere alcuni disfunzioni sul mio Server… Grazie UbuntuTrucchi!

Prima le facevamo con openvpn e ipcop, adesso basta cliente dedicati sui singoli pc, ma largo alle trasparenza pptp!!! Ovviamene il certificato OpenVpn è una sicurezza in più…

Partiamo dunque:

sudo apt-get install pptpd bcrelay

Il servizio sarà già attivo e funzionante… non rimane che dargli qualche piccola limatura, creare gli utenti e abilitare la porta sul router.

Sul router adsl, o firewall aziendale è necessario che la porta TCP 1723 sia aperta sull’ip del server linux con le funzionalità di PPTP Server.

Fatto questo siamo raggiungibili dall’esterno, pertanto dobbiamo creare gli utenti per la connessione. Bisogna quindi modificare il file /etc/ppp/chap-secrets tramite terminale oppure utilizzando l’interfaccia grafica webmin che ha un modulo per il pptp.

La struttura del file è semplice e chiara:

"NomeUtente" nometunnel "Password" *

oppure in caso di utenti di dominio

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

Se non c’e’ dominio consiglio di utilizzare la prima sintassi.

Il nome del tunnel predefinito per il servizio è pptpd quindi une esempio potrebbe essere:

"Angelo" pptpd "PasswordDiAngelo" *

Riavviamo il servizio:

/etc/init.d/pptpd restart

Prima di testare la connessione, è necessario capire se ma macchina Linux ha attivato l’IP FORWARDING, altrimenti il client remoto sarà in grado solamente di raggiungere le risorse sul server e non gli altri pc della rete. Per verificare se IP Forwarding è abilitato:

cat /proc/sys/net/ipv4/ip_forward

Se risponde 0 vuol dire che non è abilitato. Se invece risponde 1 possiamo proseguire allegramente :)

Per settare definitivamente l’impostazione :

gksudo /etc/sysctl.conf

e impostiamo la riga in questione così:

net.ipv4.ip_forward = 1

Per abilitarlo già da subito, senza riavviare, andiamo a forzare l’impostazione sul kernel in esecuzione:

echo "1" > /proc/sys/net/ipv4/ip_forward

A questo punto, se proviamo a collegarci con Windows vedremo che si collegherà correttamente, solamente che non sarà più possibile navigare, questo perchè il server pptpd (su Ubuntu per lo meno) non va a impostare un default gateway per la connessione remota.
Dal canto suo, il comportamento predefinito della connessione VPN di Windows è quello di aspettare il nuovo gateway dal Server PPTPD; quindi l’utente remoto potrà raggiungere le risorse sul server ma non saprà come raggiungere qualsiasi altro indirizzo in internet.

Abbiamo quindi 2 opzioni:

  1. Impostare la connessione di Windows affinchè non utilizzi il gateware del server remoto, ma utilizzi quello solito di windows
  2. Impostare il server affinchè dia il default gateway e i dns per la navigazione

Per il primo caso, basta andare a modificare le impostazioni IPv4 della connessioni sul singolo client remoto, quindi su avanzate -> togliere la spunta su “usa gateway predefinito sulla rete remota”. Riavviando la connessione tutto funzionerà a dovere.

Per il secondo caso andiamo a modificare il file /etc/ppp/pptp-options
e commentiamo nodefaultroute in questo modo

#nodefaultroute

inotre impostiamo i dns che verranno passati al client remoto; in questo caso imposto quelli di Telecom, ma potrebbero essere anche di un dns interno alla rete di casa/ufficio.

ms-dns 212.216.112.112.
ms-dns 151.99.0.100

Di default PPTPD, per ogni connessione stabilità, creerà una nuova interfaccia pppX con indirizzo IP 192.168.0.xxx mentre i client che si connetteranno riceveranno indirizzo IP 192.168.1.xxx e le due interfacce potranno comunicare tranquillamente tra loro.

Tuttavia questa configurazione di IP spesso va a cozzare con gli indirizzi già esistenti nella rete locale. E’ possibile modificarli per assegnare quelli da noi desiderati, semplicemente con:

gksudo gedit /etc/pptpd.conf

Se la vostra rete ha indirizzo 192.168.1.0 vi consiglio di trovare una decina di indirizzi ip statici contigui che non sono gestiti dal DHCP Server. ad esempio da 192.168.1.150 a 192.168.1.160.

E aggiungere in fondo al file:

localip 192.168.1.150
remoteip 192.168.1.151-160

Questo forzerà il server PPTPD a utilizzare per ogni client un indirizzo IP compreso tra 192.168.1.151 e 192.168.1.160, mentre sul server per ogni connessione sarà costituita un’interfaccia pppX con IP fisso 192.168.1.150.

In questo modo tutti quanti i client nella stessa rete potranno comunicare direttamente, siano essi interni siano essi esterni. Naturalmente tutte le informazioni in transito saranno crittografate.

Alla fine delle modifiche ricordiamoci di riavviare il servizio pptpd con:

sudo /etc/init.d/pptpd restart

Questo è tutto

:, , , ,
4 commenti per questo post:
  1. Francesco

    ciao, fantastica ed esaudiente guida!
    ho un problema pero’…
    senza modificare nulla funzionava tutto ok, per essere pignolo ho fatto tutte le modifiche da te suggerite per ip dns ecc….
    ma traaaaack al riavvio del servizio pptpd si ferma tutto e rimane li in standby sul “Starting PPTP Daemon:” e non mi dice piu’ nulla, ho provato a rimettere i file esattamente come erano, a eliminare l’applicazione ma anche reinstallandola mi si blocca li e non si installa piu’!!!!

    suggerimenti?

  2. agelmi

    Ciao,
    che cosa mostra il file /var/log/syslog ?
    prova a dare il comando tail -f /var/log/syslog mentre da un altro terminale riavvi il servizio…

  3. Francesco

    ciao, grazie per avermi risposto

    ho notato che i client si connettono comunque anche se SEMBRA non si concluda il restart del daemon.

    anzi il client perchè nella stessa rete in ufficio non si capisce come, pur avendo editato più account, se ne connette solo uno alla volta e tra uno e l’altro aspettando almeno 15 min. e pur cambiando gli ip nel file sempre con 192.168.1.1

    cmq il syslog dice questo:

    pptpd[22600]: Long config file line ignored.

    e rimane li lampeggiante su “STARTING PPTP DAEMON:”

  4. Lino Kemper

    I use a program called Hamachi, it creates a Seure VPN that will connect to anyone who also has it installed. There is noo need for a server as it is p2p, and also no need to forward any ports on the router.

Leave a Reply

Cerchi qualcosa?

Usa il form qui sotto per ricerare all'interno del sito:

Ancora niente? Lasciaci un commento!

Visita i nostri amici!

Qualche amico fidto...