MPD: Creazione e gestione di accessi VPN

MPD: Creazione e gestione di accessi VPN su FreeBSD


Contenuti


Lo Scenario

In questo esempio si ha l'esigenza di creare e gestire connessioni VPN di tipo PPTP. Il pacchetto è particolarmente indicato per chi ha l'esigenza di rilasciare accessi VPN a consulenti esterni, i cosiddetti "Road Warriors". Il sistema operativo utilizzato è FreeBSD ver 6.1 Release

La rete

La rete organizzata in questo modo:
    
  [ COMP1 ]    [ COMP3 ]                                                                                     [ COMP 1 ]
      |            |                              ADSL                                                           |              
   ---+------+-----+------- fxp1 [ BSD ] rl0 -------- ( Internet ) --------- [ Canale Crittografato VPN ] ---------+-----+ 
             |                                                                                                         |
         [ COMP2 ]                                                                                                 [ COMP 2]

Il numero di computer (e la loro tipologia di servizi) di cui è composta la rete interna è simbolico e non rilevante. Il server BSD è stato realizzato su hardware IBM xSeries 300 (P III 1 GHz, ram 1,5 Gb, 18 Gb di hd). La rete interna usa la famiglia di indirizzi 172.21.0.0/255.255.0.0

L'indirizzo interno del firewall BSD è 172.21.1.2

Obiettivo

L'obiettivo è quello di creare e gestire un set di possibili collegamenti VPN di tipo PPTP tra la vostra rete interna e utilizzatori esterni, simultaneamente.

Realizzazione

Installazione

Installazione del port MPD.

cd /usr/ports/net/mpd 
sudo make install

Configurazione

Configurazione del demone MPD.

Dopo l'installazione la cartella /usr/local/etc/mpd sarà popolata dai file "samples"

Copiare, rinominando, i file

cd /usr/local/etc/mpd
cp mpd.conf.sample mpd.conf
cp mpd.links.sample mpd.links
cp mpd.secret.sample mpd.secret

 

Configurazione del file mpd.conf.

In questo caso decidiamo di riservare 8 connessioni massime simultanee, e per ognuna di esse andiamo a definirne interfaccia virtuale di rete e indirizzo ip:

-------------------- start of mpd.conf ---
#dichiarazione device virtuali simultanei 
default:
 load pt1
 load pt2
 load pt3
 load pt4
 load pt5
 load pt6
 load pt7
 load pt8
 
#personalizzazione singolo device 
pt1:
   new -i ng1 pt1 pt1
   set ipcp ranges 172.21.1.2/32 172.21.11.2/32 
   load pts
pt2
   new -i ng2 pt2 pt2
   set ipcp ranges 172.21.1.2/32 172.21.11.3/32
   load pts
pt3
   new -i ng3 pt3 pt3
   set ipcp ranges 172.21.1.2/32 172.21.11.4/32
   load pts
pt4
   new -i ng4 pt4 pt4
   set ipcp ranges 172.21.1.2/32 172.21.11.5/32
   load pts
pt5
   new -i ng5 pt5 pt5
   set ipcp ranges 172.21.1.2/32 172.21.11.6/32
   load pts
pt6
   new -i ng6 pt6 pt6
   set ipcp ranges 172.21.1.2/32 172.21.11.7/32
   load pts
   pt7
   new -i ng7 pt7 pt7
   set ipcp ranges 172.21.1.2/32 172.21.11.8/32
   load pts
pt8
   new -i ng8 pt8 pt8
   set ipcp ranges 172.21.1.2/32 172.21.11.9/32
   load pts
#set di regole valide per tutte le connessioni 
pts:
 set iface disable on-demand
 set iface enable proxy-arp
 set iface enable tcpmssfix
 set iface idle 1800
 set iface up-script /usr/local/sbin/vpn-linkup
 set iface down-script /usr/local/sbin/vpn-linkdown
 set bundle enable multilink
 set bundle enable crypt-reqd
 set link yes acfcomp protocomp
 set link no pap chap
 set link enable chap-msv2
 set link mtu 1460
 set link keep-alive 10 60
 set ipcp yes vjcomp
 set bundle enable compression
 set ccp yes mppc
 set ccp yes mpp-e128
 set ccp yes mpp-stateless
 set ccp yes mpp-e40
 set ccp yes mpp-e56
# indirizzo ip del server dns della vostra rete 
   set ipcp dns 172.21.1.200
 
-------------------- end of mpd.conf ---
 

Passiamo ora alla configurazione del file mpd.links

Per ogni device (pt1, pt2) dovrà essere creata la sua sezione all'interno del file mpd.links.

Attenzione dunque a ripetere (i dati sono sempre gli stessi, cambia solo il nome del device) tale sezione tante volte quante sono le connessioni simultanee pre-configurate.

-------------------- start of mpd.links ---
pt1:
 set link type pptp
 set pptp enable incoming
 set pptp disable originate
 set pptp disable windowing
 set pptp self 127.0.0.1
 
pt2:
 set link type pptp
 set pptp enable incoming
 set pptp disable originate
 set pptp disable windowing
 set pptp self 127.0.0.1
pt3:
   set link type pptp
   set pptp enable incoming
   set pptp disable originate
   set pptp disable windowing
   set pptp self 127.0.0.1
pt4:
   set link type pptp
   set pptp enable incoming
   set pptp disable originate
   set pptp disable windowing
   set pptp self 127.0.0.1
pt5:
   set link type pptp
   set pptp enable incoming
   set pptp disable originate
   set pptp disable windowing
   set pptp self 127.0.0.1
pt6:
   set link type pptp
   set pptp enable incoming
   set pptp disable originate
   set pptp disable windowing
   set pptp self 127.0.0.1
pt7:
   set link type pptp
   set pptp enable incoming
   set pptp disable originate
   set pptp disable windowing
   set pptp self 127.0.0.1
pt8:
   set link type pptp
   set pptp enable incoming
   set pptp disable originate
   set pptp disable windowing
   set pptp self 127.0.0.1
-------------------- end of mpd.links ---

E infine passiamo al file mpd.secret

All'interno di questo file è possibile configurare gli accessi semplicemente dichiarandone nome_utente e password

-------------------- start of mpd.secret ---
 
nome_utente1 password
nome_utente2 password
nome_utente3 password
nome_utente4 password
nome_utente5 password
nome_utente6 password
nome_utente7 password
nome_utente8 password
 	 
-------------------- end of mpd.secret ---

 

Ora aggiungete al vostro /etc/rc.conf la riga:

 

mpd_enable="YES"

Completare le seguenti operazioni per permettere a syslog di loggare le connessioni effettuate tramite MPD:

 

touch /var/log/mpd.log
vi  /etc/syslog.conf 

e aggiungere la seguente istruzione:

!mpd
 
*.* 
/var/log/mpd.log 

 

 

Avvio del demone MPD.

Per avviare il demone si può usare il seguente script:

-------------------- start of /usr/local/etc/rc.d/mpd.sh ---
#!/bin/sh
 
mpd_flags="${mpd_flags:--b}"
   mpd_enable="${mpd_enable-NO}"
. /etc/rc.subr
name=mpd
   rcvar=`set_rcvar`
prefix=/usr/local
   procname=${prefix}/sbin/mpd
   pidfile=/var/run/mpd.pid
   required_files="${prefix}/etc/mpd/mpd.conf ${prefix}/etc/mpd/mpd.links"
   command="${prefix}/sbin/mpd"
load_rc_config ${name}
   run_rc_command "$1"
-------------------- end of /usr/local/etc/rc.d/mpd.sh ---

 

Ora avviamo il demone MPD digitando

/usr/local/etc/rc.d/mpd.sh start 




Configurazione dei client in Windows 2000/XP

Si presuppone che nella maggiorparte dei casi il sistema operativo installato sui vari "client" sia Microsoft Windows 2000 o XP (fino ad'ora nessuna esperienza con Windows Vista, ma non dovrebbero esserci particolari problemi)

Per la configurazione latl client possiamo tranquillamente utilizzare il client "embedded" installato nel sistema operativo, procedendo come segue:

Start - Impostazioni
Connessioni di rete
Crea nuova connessione
Connessione alla rete aziendale 

In caso di client Linux esistono svariati pacchetti, tra cui il valido Kanola (Kde light MPD client) o il classico Pptpclient.

 


www.freebsd.org www.015-bsd.org
Lorenzo Guglielmo.