Vpnc - vpn client

Da Fabwiki.

Indice

Cosa è

vpnc meglio conosciuto come "client for cisco vpn concentrator" è un client vpn. E' una valida alternativa al tradizione Cisco vpn client.

Utilizzo

Avete mai avuto l' esigenza di collegare la vostra rete di casa con l' ufficio o viceversa? Non vi è mai capitato di dover dialogare con una rete che non sia la vostra? Una VPN (Virtual Private Network) serve proprio a questo: consentire a due o piu' reti diverse di colloquiare tra di loro. In questo caso specifico, non tratterò l' implementazione della VPN vera e propria, ma soltanto del client.

Requisiti pre-installazione

Ci sono dei requisiti fondamentali che devono essere rispettati per far funzionare vpnc: le librerie libgcrypt e il modulo "TUN" abilitato nel kernel. Per le prime, su debian, è necessario installarle con

apt-get install libgcrypt-dev

Per il kernel invece, dovete fare alcune verifiche.

Per prima cosa abilitate la voce "Universal TUN/TAP device driver support"


Device Drivers  --->
  Networking support  --->
    [*] Universal TUN/TAP device driver support
e verificate con
dmesg |grep -i tun
che il sistema la carichi
tun: Universal TUN/TAP device driver, 1.6

Inoltre, se non fossero già abilitati, abilitate i seguenti moduli:

#  grep "TUN" /usr/src/linux/.config
CONFIG_INET_TUNNEL=m
# CONFIG_INET6_TUNNEL is not set
# CONFIG_IPV6_TUNNEL is not set
(TUN/TAP enabled as a module)
CONFIG_TUN=m
# CONFIG_8139TOO_TUNE_TWISTER is not set

assicuratevi quindi che i parametri CONFIG_INET_TUNNEL e CONFIG_TUN siano configurati come moduli (M) e che vengano correttamente eseguiti dal sistema

lsmod |grep -i tun
tun                    11968  0 


Installazione

Per debian, banalmente,

apt-get install vpnc

Se si vuole compilare da sorgente, esiste il respository svn: http://svn.unix-ag.uni-kl.de/vpnc/

Configurazione

I file di configurazione, si trovano sotto /etc/vpnc/*.conf

# AUTOGENERATED BY gvpnc
IPSec gateway  
IPSec ID
IPSec secret
Xauth  
Xauth 


Potete editarli in base alle vostre esigenze, facendo attenzione a riportare correttamente i valori richiesti.

Se invece siete già in possesso del file .pcf potete usarlo in vpnc, ma dovete convertirlo. A tal proposito, potete usare pcf2vpnc che è un programma scritto in perl che converte il vostro pcf in formato conf Per poter funzionare però pcf2vpnc ha bisogno dell' utility cisco-decrypt.c Una volta scaricato il file cisco-decrypt.c, trattandosi di file .c, dobbiamo compilaro. Per la compilazione è sufficiente eseguire il seguente comando:

gcc -Wall -o cisco-decrypt cisco-decrypt.c $(libgcrypt-config --libs --cflags)

A questo punto, prendete pcf2vpnc e cisco-decrypt e copiateli sotto /usr/sbin

Lanciate pcf2vpnc

decoding input: Success
/usr/sbin/pcf2vpnc converts VPN-config files from pcf to vpnc-format.
Usage: /usr/sbin/pcf2vpnc <pcf file> [vpnc file]

Utilizzate come primo parametro il pcf file e come secondo il file che dovrà creare. Nel mio caso:

 pcf2vpnc /home/rizla/Desktop/VPNAccess.pcf /etc/vpnc/vpn.conf

A questo punto, abbiamo tutto. Non ci resta che provare. Per stabilire una connessione, è sufficiente digitare:

 vpnc /etc/vpnc/vpn.conf

Potrebbe darsi che, in alcuni casi, vi vengano chieste login e password (dipende da come è configurata la vostra vpn) in questo caso, scrivetele. A questo punto dovreste vedere l' intefaccia tun0, tramite ifconfig, in questo modo:

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.11.12.13  P-t-P:10.11.12.13  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1390  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Se è cosi', siete connessi :-)

Ciao.

--Fabrizio