Laser Office s.a.s di Magnaterra Alessandro & C.

VPN configurare un server pptpd in ubuntu con clients Windows

Posted by xer su 27 giugno 2010


Le necessità di avere una VPN (virtual private network) possono essere tante, ad esempio necessità di avere una rete aziendale per più sedi protetta, oppure avere un tunnel VPN per scopi ludici, come ad esempio “multiplayer mode online” ma in una LAN privata encapsulata in VPN.

In entrambi i casi, la configurazione di un server pptpd su ubuntu non fa differenza.
In questo mini how-to mi occuperò di descrivere le “basi”  per potere avere una semplice VPN.

Prima di tutto occupiamoci di installare tramite shell ssh il server sulla nostra distro ubuntu, ovviamente il nostro utente deve avere necessariamente i diritti di amministratore:

xer# apt-get install pptpd

Il file principale per la configurazione del server pptpd è locato in:

/etc/pptpd.conf

Il file è ben commentato ed esaustivo, di seguito mi limiterò a descrivere un file di config molto semplice ma funzionale:

option /etc/ppp/pptpd-options
debug
bcrelay eth0
listen 230.67.43.56
localip 10.0.0.10
remoteip 10.0.0.11-100
add default 10.0.0.10

option /etc/ppp/pptpd-options
definisce il file relativo ai parametri per l’interfaccia ppp

debug
abilita il log delle sessioni in /var/syslog

bcrelay eth0
bcrelay abilita il broadcast dei pacchetti tramite l’interfaccia eth0

listen 230.67.43.56
determina su quale indirizzo deve “ascoltare” il server pptpd, l’IP di riferimento in questo caso da me scelto è casuale ed ovviamente l’IP deve appartenere all’interfaccia fisica eth0

localip 10.0.0.10
remoteip 10.0.0.11-100

localip stabilisce l’IP del server della LAN virtuale desiderata, in questo caso ho scelto una classe A, anche se con subnet mask da 24 (255.255.255.0) che approfondiremo più avanti.
remoteip definisce un range di IP da assegnare ai client, in questo esempio da 11 a 100 compresi.

add default 10.0.0.10
assegna al client connesso il default gateway della lan privata.

Il server pptpd genera delle interfacce di rete virtuali denominate “pppx” x sarà un numero progressivo che parte da 0. Per ogni client connesso, verrà assegnata una propria interfaccia virtuale pppx.

Il secondo file da configurare si trova in:

/etc/ppp/pptpd-options

Anche questo file di configurazione è ben commentato ed esaustivo, anche in questo caso, descriviamo rapidamente una configurazione semplice ma funzionale:

name vpn
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
nodefaultroute
lock
nobsdcomp

name vpn
assegna un nome per definire l’autenticazione ed essere contraddistinta, questo perché possono essere create diverse VPN sullo stesso server

refuse-pap
refuse-chap
refuse-mschap

in questo modo rifiutamo i metodi di connessione pap, chap ed mschap non proprio sicuri, in quanto non criptano il flusso dei dati

require-mschap-v2
require-mppe-128

con mschap-v2 ed mppe-128, abilitiamo un metodo di connessione abbastanza sicuro con una criptazione del flusso dati a 128 bit

proxyarp
il proxyarp ci permettere di potere vedere ogni singolo client nella propria rete lan virtuale

nodefaultroute
indispensabile, per non sostituire il default gateway principale della connessione del client

lock
rende l’accesso alla rete del client in modalità esclusiva, in stile UUCP

nobsdcomp
la compressione dati BSD viene disabilitata peravere maggior performance

Adesso ci resta solo di configurare il file di accesso per i nostri clients, il quale è:

/etc/ppp/chap-secrets

# Secrets for authentication using CHAP
# client server secret IP addresses
xer vpn pippo “10.0.0.11”

I campi definiti sono semplici e possono essere separati da spazi o tabulazioni e per ogni riga vanno inseriti i parametri di ogni singolo client.

Il primo è l’username (xer)
Il secondo è il nome della nostra lan privata definito in pptpd-options (vpn)
Il terzo è la password di accesso (pippo)
Il quarto è l’IP assegnato al client (“10.0.0.11”)

Se non si vuole forzare l’IP ad un determinato client, il quarto campo può essere definito con asterisco “*”, in questo modo il server pptpd assegnerà al client il primo IP disponibile.

Per far si che i clients connessi possano essere visti a vicenda o “pingabili” occorre verificare se la vostra distribuzione linux ubuntu è configurata per fare il forward dei pacchetti, verifichiamolo con il comando:

xer# cat /proc/sys/net/ipv4/ip_forward
0

Se viene visualizzato il valore 1 allora è correttamente configurato, se viene visualizzato 0 allora occorre configurare il forward.

Procedere come segue:

editare il file /etc/sysctl.conf trovare la riga “net.ipv4.ip_forward=1” decommentarla (togliere il #)
e se il valore è impostato a 0 variarlo in 1, salvate il file ed uscite.

xer# nano /etc/sysctl.conf

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Eseguite il comando /sbin/sysctl -p per aggiornare il sysctl

xer# nano /sbin/sysctl -p

kernel.printk = 4 4 1 7
kernel.maps_protect = 1
fs.inotify.max_user_watches = 524288
vm.mmap_min_addr = 65536
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_forward = 1
net.ipv4.ip_forward=1

Rieseguite il comando cat /proc/sys/net/ipv4/ip_forward per verifica.
Se il valore restituito è 1 abbiamo completato tutti i passaggi.

xer# cat /proc/sys/net/ipv4/ip_forward
1

La configurazione del server è ultimata, si potrebbero anche definire altri parametri come un DNS esclusivo per la nostra lan privata, oppure un dominio di una rete con Active Directory, ma sono considerazioni ed approfondimenti che possono essere affrontati man mano che la nostra VPN venga aggiornata per necessità successive.

A questo punto possiamo occuparci di configurare il nostro client windows.

Windows ha un setup molto semplice per aggiungere la connettività client, creare una nuova connessione, scegliere modalità aziendale VPN, inserire login e password ed il gioco è fatto!

messaggio sincronizzato da xernet.net – link diretto: VPN configurare un server pptpd in ubuntu con clients Windows

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

 
%d blogger cliccano Mi Piace per questo: