Gentoo Logo

Guida all'uso di vpnc con Gentoo

Indice:

1.  Introduzione

Se si sta leggendo questa guida, molto probabilmente è necessario collegarsi alla propria rete aziendale da casa oppure in viaggio. Molte compagnie utilizzano un concentratore VPN Cisco 3000 e probabilmente molti utenti di Linux alle prime armi credono che sia possibile collegarsi ad esso soltanto utilizzando Windows. Questo documento spiega come connettersi ad una VPN Cisco e come creare un tunnel funzionante usando la propria workstation Gentoo.

Questo documento contiene:

  • Una guida di base per vpnc
  • Una discussione sui problemi di DNS e routing in relazione alle VPN
  • Esempi di gestione di sessioni VPN
  • Suggerimenti (si spera) utili

Questo documento non contiene:

  • Una guida dettagliata alle tecnologie di crittazione su VPN
  • Una spiegazione dettagliata delle caratteristiche di vpnc

Assunzioni

Prima di iniziare, si assume che:

  • Gentoo sia installata
  • Sia disponibile un accesso ad Internet
  • Ci si voglia connettere ad un concentratore VPN Cisco 3000
  • Si sappia come configurare, compilare ed installare un nuovo kernel

2.  Configurazione del kernel

Per permettere a Linux di aprire una connessione VPN, nel kernel deve essere stata abilitata la voce Universal TUN/TAP device driver support. Di cosa si tratta e perché è necessaria? Segue una breve spiegazione, estratta dal menù di configurazione del kernel:

Codice 2.1: CONFIG_TUN

TUN/TAP fornisce a programmi che girano nello spazio utente la possibilità di
ricevere ed inviare pacchetti. Esso può essere visto come un semplice
dispositivo punto-punto o Ethernet, che riceve pacchetti da un programma
piuttosto che da una scheda fisica; in maniera simile funziona l'invio di dati.

Quando un programma apre /dev/net/tun, il driver crea e registra il dispositivo
di rete associato tunX o tapX. Una volta che il programma chiude il dispositivo,
il driver rimuove automaticamente il device tunXX o tapXX e tutte le voci di
instradamento corrispondenti.

È possibile verificare se il supporto a TUN/TAP è abilitato nel kernel con il seguente comando:

Codice 2.2: Controllare la configurazione del kernel

#  grep "TUN" /usr/src/linux/.config
CONFIG_INET_TUNNEL=m
# CONFIG_INET6_TUNNEL is not set
# CONFIG_IPV6_TUNNEL is not set
(TUN/TAP abilitato come modulo)
CONFIG_TUN=m
# CONFIG_8139TOO_TUNE_TWISTER is not set

Come mostrato sopra, CONFIG_TUN=m è compilato come modulo. Se, invece, questa voce è disabilitata nella propria configurazione, abilitarla nel proprio kernel e procedere con ricompilazione, installazione e riavvio prima di continuare con i passi successivi di questa guida.

Codice 2.3: Percorso dell'opzione nel menu di configurazione del kernel

Device Drivers  --->
  Network device support  --->
    [*] Universal TUN/TAP device driver support

Se il supporto a TUN/TAP è incluso direttamente nel kernel, dovrebbe essere possibile trovare queste informazioni nell'output di dmesg:

Codice 2.4: Controllare l'output di dmesg

# dmesg | grep TUN
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky

Se il supporto a TUN/TAP è stato compilato come modulo, è necessario prima caricare il modulo tun:

Codice 2.5: Caricare il modulo tun

# modprobe tun
# lsmod
Module                  Size  Used by
tun                     7296  0

Ora che il modulo tun è stato caricato, controllare l'output di dmesg. Si dovrebbe ottenere un risultato simile al seguente:

Codice 2.6: Controllare l'output di dmesg

# dmesg | grep TUN
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky

3.  Installare il software necessario

Adesso che si ha una configurazione funzionante del kernel, è necessario installare net-misc/vpnc:

Codice 3.1: Installare vpnc

# emerge -av net-misc/vpnc

Assicurati di controllare che i set di USE supportati e vedere se la loro combinazione si applica al tuo ambiente. Se incontrerai problemi futuri con questo errore, dovrai abilitare la USE hybrid-auth.

Codice 3.2: vpnc si lamenta sulla modalita hybrid/cert

vpnc è stato compilato senza il supporto openssl: non si può
usare la modalità hybrid/cert.

4.  Configurazione d'esempio

In modo da rendere le sezioni seguenti più chiare, è necessaria una configurazione d'esempio sulla quale lavorare. Per gli scopi di questa guida, si supponga di avere una rete casalinga composta da diversi computer. Tutti i computer sono sulla rete 192.168.0.0 / 255.255.255.0 . La LAN in questione è gestita da una macchina Gentoo che usa un firewall iptables, DHCP, DNS con cache, ecc... e che nasconde la LAN dietro l'indirizzo IP pubblico ricevuto dall'ISP. Si supponga di voler fare VPN da un computer della LAN con il computer del proprio ufficio.

La macchina d'esempio per questa guida è configurata a questo modo:

Codice 4.1: Configurazione del proprio computer

(Configurazione del server dei nomi)
# cat /etc/resolv.conf
nameserver      192.168.0.1

(Configurazione di rete)
# cat /etc/hosts
127.0.0.1       desktop localhost
192.168.0.1     router
192.168.2.2     mediacenter

(Configurazione dell'interfaccia)
# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:11:2F:8D:08:08
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:2fff:fe8d:808/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3657889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2305893 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2193722103 (2092.0 Mb)  TX bytes:1415104432 (1349.5 Mb)
          Interrupt:185 Memory:fac00000-0

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:35510 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35510 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16023838 (15.2 Mb)  TX bytes:16023838 (15.2 Mb)

(Informazioni di instradamento)
# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     *               255.255.255.0   U         0 0          0 eth0
loopback        desktop         255.0.0.0       UG        0 0          0 lo
default         router          0.0.0.0         UG        0 0          0 eth0

5.  Configurare vpnc

Adesso che vpnc è installato, verranno discusse le basi per la sua configurazione a partire dall'esempio precedente. Il file di configurazione per le impostazioni di connessione vpnc può essere collocato in un paio di posizioni, a seconda di quanti profili è necessario impostare. Normalmente, vpnc cerca inizialmente in /etc/vpnc/default.conf e poi, se quel file non viene trovato, in /etc/vpnc.conf. Poiché in questa guida viene configurato un solo profilo, verrà utilizzato il file /etc/vpnc.conf. Prestare attenzione al fatto che il file /etc/vpnc/default.conf non sia presente nel filesystem.

Codice 5.1: File /etc/vpnc.conf di esempio

IPSec gateway vpngateway.domain.org
IPSec ID id_del_gruppo
IPSec secret password_di_gruppo
Xauth username nomeutente_rete
Xauth password password_rete

Il file di configurazione di esempio dovrebbe essere modificato con i valori appropriati. L'opzione gateway vpngateway.domain.org può essere espressa sia come un nome di dominio completamente qualificato, oppure come indirizzo IP. Le opzioni ID e secret dovrebbero essere riempite con le informazioni ricevute dall'amministratore di rete. Se non è possibile ottenere questi dati, ma è disponibile una configurazione funzionante su una macchina Windows con il client Cisco VPN ufficiale, basta allora esportare il profilo da quell'applicazione. Le opzioni username e password sono quelle utilizzate per l'autenticazione di rete, come ad esempio quelle dell'account di un dominio di Windows NT.

Quando si esporta un profilo da una macchina Windows, nella maggior parte dei casi si ottiene un file con estensione .pcf. Questo file contiene tutte le informazioni necessarie. Ecco un esempio:

Codice 5.2: File profile.pcf di esempio

[main]
Description=
Host=VPNGATEWAY.DOMAIN.ORG
AuthType=1
GroupName=id_del_gruppo
GroupPwd=
enc_GroupPwd=F3256220AA200A1D532556024F4F314B0388D48B0FBF2DB12
EnableISPConnect=0
ISPConnectType=0
ISPConnect=FOOBAR
ISPCommand=
Username=
SaveUserPassword=0
UserPassword=
enc_UserPassword=
NTDomain=
EnableBackup=0
BackupServer=
EnableMSLogon=1
MSLogonType=0
EnableNat=1
TunnelingMode=0
TcpTunnelingPort=10000
CertStore=0
CertName=
CertPath=
CertSubjectName=
CertSerialHash=00000000000000000000000000000000
SendCertChain=0
VerifyCertDN=
DHGroup=2
ForceKeepAlives=0
PeerTimeout=90
EnableLocalLAN=0
EnableSplitDNS=1
ForceNetLogin=0

Nell'esempio in alto, notare le variabili Host, GroupName e enc_GroupPwd. Le opzioni Username e UserPassword potrebbero anche non essere esportate, a seconda della propria configurazione. Per generare una configurazione funzionante a partire da un file come questo, usare pcf2vpnc, incluso con vpnc.

Nota: È possibile decrittare la password con l'aiuto di cisco-decrypt, fornito con le versioni più recenti di vpnc.

Testare la propria configurazione

Una volta che il file di configurazione è stato creato, è tempo di verificare il funzionamento delle proprie impostazioni. Per far partire vpnc usare:

Codice 5.3: Esempio d'uso di vpnc

# vpnc
Enter password for username@vpngateway.domain.org:
VPNC started in background (pid: 14788)...

Come evidenziato dall'output del comando precedente, una volta lanciato vpnc (come utente root), viene richiesta la password di rete o di dominio, che non viene mostrata durante la digitazione. Dopo l'inserimento della password, il processo vpnc si sposta automaticamente in background.

Nota: Se è stata specificata l'opzione Xauth password nel proprio file di configurazione, la password non verrà richiesta durante l'avvio di vpnc. Allo stesso modo, se vpnc ha bisogno di ulteriori informazioni non specificate nel file di configurazione, compreso il caso in cui queste siano state omesse per dimenticanza, il programma le richiederà interattivamente.

Codice 5.4: Esempio di modifiche eseguite da vpnc alla configurazione delle interfacce

#  ifconfig -a
eth1      Link encap:Ethernet  HWaddr 00:11:2F:8D:08:08
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:2fff:fe8d:808/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2101119 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1577559 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1757862627 (1676.4 Mb)  TX bytes:732200131 (698.2 Mb)
          Interrupt:177 Memory:faa00000-0

sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  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:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:192.168.160.42  P-t-P:192.168.160.42  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1412  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:60 (60.0 b)  TX bytes:616 (616.0 b)

Codice 5.5: Esempio di modifiche eseguite da vpnc alla tabella di instradamento

# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
vpn01.domain.or router          255.255.255.255 UGH    1500 0          0 eth1
192.168.0.0     *               255.255.255.0   U         0 0          0 eth1
loopback        desktop         255.0.0.0       UG        0 0          0 lo
default         *               0.0.0.0         U         0 0          0 tun0

Come è possibile desumere dall'output dei comandi precedenti, vpnc ha eseguito le seguenti operazioni:

  • Creazione dell'interfaccia di rete tun0, dispositivo virtuale che permette la gestione del traffico sul tunnel VPN
  • Ottenimento dell'indirizzo IP per il dispositivo tun0 dal proprio provider VPN
  • Impostazione della route predefinita verso il gateway VPN

A questo punto, la propria macchina è capace di comunicare con gli host via VPN. poiché vpnc indirizza la route predefinita verso il gateway VPN, tutto il traffico di rete generato dalla macchina attraverserà il tunnel VPN, anche se destinato alla rete Internet o qualsiasi altra rete non specificata manualmente. Per alcuni questa connessione potrebbe essere soddisfacente, ma nella maggior parte delle situazioni è necessario eseguire alcune azioni aggiuntive.

Ad esempio, sarebbe desiderabile avere anche:

  • Il servizio DNS per la VPN
  • Una tabella di routing che invii sul tunnel il solo traffico destinato effettivamente per la VPN. In questo modo, si potrebbe continuare ad utilizzare Internet mentre la VPN è attiva, senza che il traffico personale (web, p2p, ecc...) viaggi attraverso il tunnel.
  • Uno script che gestisca tutte queste azioni, in quanto vpnc, semplicemente, non basta.

Quanto si è pronti a terminare la sessione VPN, eseguire vpnc-disconnect. Un esempio è mostrato in basso.

Nota: Non disconnettersi in questo momento, in quanto è necessario ancora provare qualche comando. L'esempio è riportato soltanto per scopi informativi.

Codice 5.6: vpnc-disconnect

# vpnc-disconnect
Terminating vpnc daemon (pid: 26250)

6.  Impostare il DNS

Sfortunatamente, vpnc non gestisce l'impostazione e la gestione del DNS sul tunnel appena creato. La decisione su come gestire il DNS è lasciata all'utente. Anche se è possibile semplicemente sovrascrivere /etc/resolv.conf al momento della connessione, una soluzione del genere utilizzerebbe il DNS della VPN per tutte le query DNS, anche se il traffico legato ad essa non è destinato al tunnel VPN. Questo metodo di connessione è molto semplice ed è adatto per chi vuole instaurare la VPN, eseguire il proprio lavoro e disconnettersi. Se, però, si ha bisogno di lasciare attivo il tunnel per lunghi periodi di tempo e non si vuole che il DNS dell'ufficio risolva i nomi per il traffico personale, continuare con la lettura: in caso contrario, saltare pure questa sezione.

Una configurazione ideale permetterebbe all'utente la separazione delle query DNS in due categorie: quelle legate alla VPN e tutte le altre. In questo modo, tutte le query DNS relative alla VPN riceverebbero risposta dai server DNS collocati all'altra estremità del tunnel VPN, mentre tutte le altre richieste sarebbero servite dal DNS locale o del proprio ISP. A breve verrà mostrato come adottare questa soluzione.

Nota: Per gli scopi di questa guida, le query DNS sono considerate legate alla VPN se richiedono la risoluzione di un nome appartenente al dominio example.org, come ad esempio host1.example.org o server1.example.org.

Per poter adottare questa soluzione è necessario installare un server DNS locale: a dispetto delle apparenze, la procedura è molto semplice. Numerosi pacchetti software offrono le funzionalità di server DNS, ma per gli scopi di questa guida verrà utilizzato dnsmasq. Installarlo come segue:

Nota: Questo server DNS non sarà raggiungibile dalla rete e risponderà soltanto alle richieste provenienti da localhost, 127.0.0.1.

Codice 6.1: Installare dnsmasq

# emerge dnsmasq

In seguito è necessario aggiungere un'opzione alla configurazione di dnsmasq. Sostituire .example.org con il reale dominio e l'indirizzo IP con quello di un server DNS valido che appartenga al tunnel VPN.

Codice 6.2: /etc/conf.d/dnsmasq

Config file for /etc/init.d/dnsmasq

# Vedere la pagina di manuale dnsmasq(8) per la lista delle opzioni.
DNSMASQ_OPTS="-S /.example.org/192.168.125.10"

Successivamente, accertarsi che la prima voce in /etc/resolv.conf sia quella di localhost, 127.0.0.1, seguita da quelle dei server DNS di backup, utilizzati se dnsmasq non è attivo, oppure se esso ha bisogno di inoltrare una query DNS della quale non ha in cache la risposta. Un file /etc/resolv.conf di esempio è riportato in basso.

Codice 6.3: /etc/resolv.conf

nameserver 127.0.0.1
nameserver 192.168.0.1

Adesso che è stato configurato il DNS per il proprio tunnel VPN, è necessario far partire dnsmasq.

Codice 6.4: Avviare dnsmasq

# /etc/init.d/dnsmasq start
# rc-update add dnsmasq default

7.  Configurare la tabella di routing

In uno scenario ideale, solo il traffico realmente destinato alla VPN dovrebbe viaggiare sul tunnel. Allo stato attuale delle cose, invece, tutti i dati attraversano il tunnel, a meno che non vengano specificate delle route aggiuntive. Per poter correggere questa situazione, è necessario conoscere quali reti siano raggiungibili attraverso la VPN. Il modo più semplice per farlo è chiedere al proprio amministratore di rete, ma talvolta costui potrebbe essere riluttante al rispondere a domande come questa. Se il proprio amministratore non fornisce alcuna risposta, bisognerà provare a scoprire da soli le reti raggiungibili.

Quando viene creato il tunnel VPN, vpnc imposta la route predefinita affinché passi attraverso il tunnel. Per fare in modo che tutto torni alla normalità, bisogna reimpostare la route predefinita al suo valore iniziale.

Codice 7.1: Reimpostare la route di default

# route add default gw 192.168.0.1

In precedenza, quando è stato configurato il DNS per la VPN, è stato scelto il server che si occupa della risoluzione dei nomi per il dominio example.org . È necessario specificare una route per il raggiungimento della sottorete 192.168.125.0 (che include il server DNS) affinché la risoluzione dei nomi avvenga come previsto.

Codice 7.2: Aggiungere una route per il DNS

# route add -net 192.168.125.0 netmask 255.255.255.0 dev tun0

A questo punto, bisogna aggiungere le route addizionali per le altre reti conosciute, come quella per la sottorete 192.168.160.0, che include l'indirizzo IP ricevuto dal dispositivo virtuale TUN/TAP. Se l'amministratore di rete ha gentilmente fornito queste informazioni, bene. Altrimenti, è necessario fare ping verso gli host ai quali ci si connetterà più frequentemente e quindi farsi un'idea della routing table a partire dal risultato di questi tentativi.

Nota: Per come è stata strutturata questa guida, quando si usano i servizi della rete VPN utilizzando il loro nome bisogna specificare l'intero nome di dominio, come in: webserver1.example.org

Codice 7.3: Esempio di ping

# ping intranet1.example.org
PING intranet1.example.org (172.25.230.29) 56(84) bytes of data.


--- intranet1.example.org ping statistics ---
18 packets transmitted, 0 received, 100% packet loss, time 16997ms

Come è visibile nell'esempio precedente, i tentativi di ping verso intranet1.example.org sono falliti. Questo indica che è necessario aggiungere una route specifica per quella sottorete.

Codice 7.4: Esempio di comando per l'aggiunta di una nuova sottorete

# route add -net 172.25.230.0 netmask 255.255.255.0 dev tun0

Dopo alcune sessioni di ping e di aggiunta delle relative route alla tabella di instradamento, l'elenco delle reti raggiungibili via VPN dovrebbe essere stato completato ed il tunnel dovrebbe funzionare con successo.

8.  Gestire la connessione

Richiamare vpnc quando richiesto

Segue uno script di esempio per gestire la connessione VPN. È possibile utilizzarlo per avviare (da root) la connessione VPN da una finestra di terminale. Per terminare la connessione basta semplicemente premere invio. Ovviamente è necessario apportare le modifiche del caso, come ad esempio l'aggiunta delle route necessarie.

Codice 8.1: Esempio di script per la gestione della sessione

#!/bin/bash

source /sbin/functions.sh

ebegin "Connessione alla VPN"
vpnc
eend

ebegin "Modifica della tabella di instradamento"
route add default gw 192.168.0.1
route add -net 172.25.230.0 netmask 255.255.255.0 dev tun0
route add -net 192.168.160.0 netmask 255.255.255.0 dev tun0
route add -net 192.168.125.0 netmask 255.255.255.0 dev tun0
eend

einfo "Premere un tasto per disconnettersi ..."

read $disconnect

ebegin "Disconnessione dalla VPN"
vpnc-disconnect
eend
ebegin "Riconfigurazione della tabella di instradamento"
route add default gw 192.168.0.1
eend

einfo "La VPN dovrebbe ora essere disconnessa"

Lanciare vpnc all'avvio

La versione 0.4.0-r1 di vpnc viene distribuita con un file di init (/etc/init.d/vpnc) che è capace di gestire configurazioni multiple. Lo script predefinito cerca il file /etc/vpnc/vpnc.conf, ma è comunque possibile utilizzare tutte le configurazioni che si desidera. Prima e dopo dell'arresto o dell'avvio del servizio, possono essere eseguiti degli script personalizzati, che devono avere un nome simile a quello del corrispettivo script di init (a partire dalla versione 0.5.1-r1). I loro nomi terminano in -preup.sh, -postup.sh, -predown.sh e -postdown.sh e vanno salvati nella directory /etc/init.d/scripts.d/. La convenzione dei nomi è riportata nella tabella seguente.

nome dello script di init file di configurazione richiesto some dello script di preup
/etc/init.d/vpnc /etc/vpnc/vpnc.conf /etc/vpnc/scripts.d/vpnc-preup.sh
/etc/init.d/vpnc.work /etc/vpnc/work.conf /etc/vpnc/scripts.d/work-preup.sh

Aggiungere vpnc al runlevel di default utilizzando i comandi seguenti (in questo caso, per utilizzare la configurazione standard). Ricordarsi di aggiungere il modulo tun (se il supporto è stato, appunto, compilato come modulo) ai meccanismi di caricamento automatico dei moduli all'avvio del kernel.

Codice 8.2: Aggiungere vpnc tra gli script avviati nel runlevel di default

# rc-update add vpnc default

Se non si desidera salvare la propria password nel file di configurazione, è possibile dire allo script di inizializzazione di mostrare tutto l'output e i prompt sullo standard output modificando /etc/conf.d/vpnc. Impostare la variabile VPNCOUTPUT a yes o no, dove la sua impostazione predefinita è non visualizzazione l'output a video.

Nota: Gli script di init non gestiscono la separazione del traffico DNS, ma è possibile usare degli script personalizzati. Fare riferimento alla sezione Suggerimenti, più in basso.

9.  Suggerimenti

Accesso grafico da remoto

Se si cerca un'applicazione per Linux che supporti l'RDP (Remote Desktop Protocol), provare grdesktop. È un interfaccia grafica scritta in GTK+ che ben si adatta ad un desktop Gnome, anche se non dipende da esso. Se non si ha bisogno delle finestre di dialogo fornite da grdesktop, installare soltanto rdesktop. Tra l'altro, grdesktop è semplicemente un'interfaccia per rdesktop.

Se si usa KDE, provare kvpnc, una interfaccia grafica matura per l'uso delle VPN.

Per connettersi ad una macchina Windows che non possiede un record DNS, se si dispone dell'indirizzo di un server WINS, è possibile utilizzare un programma chiamato nmblookup che permette di richiedere al server WINS l'indirizzo dell'host al quale ci si vuole connettere. Sfortunatamente è necessario installare samba per ottenere questo strumento, però se si ha bisogno di lavorare con macchine Windows questo pacchetto risulta molto utile, in quanto include altri programmi utili in circostanze simili.

Codice 9.1: Installare samba

# emerge -av samba

Quando è terminata l'installazione di Samba, provare nmblookup chiedendo al server WINS raggiungibile all'indirizzo 192.168.125.11 informazioni su un host chiamato wintelbox1.

Codice 9.2: esempio per nmblookup

# nmblookup -U 192.168.125.11 -R 'wintelbox1'
querying wintelbox1 on 192.168.125.11
172.25.230.76 wintelbox1

Script personalizzati all'avvio

Gli script personalizzati per il file di init.d possono essere utilizzati per impostare un routing definito dall'utente per la connessione vpnc. Gli esempi in basso mostrano come impostare la tabella di instradamento affinché solo le connessioni verso 123.234.x.x passino attraverso la VPN, mentre tutte le altre usano il default gateway. L'esempio usa work-preup.sh per salvare il default gateway corrente prima di avviare vpnc (che reimposta il default gateway usando la connessione VPN). Quando vpnc si è avviato, work-postup.sh cancella questo nuovo default gateway, ripristina il vecchio default gateway ed imposta la route per tutte le connessioni verso 123.234.x.x attraverso la connessione vpnc.

Codice 9.3: /etc/vpnc/scripts.d/work-preup.sh

#!/bin/sh
route -n | grep -E '^0.0.0.0 ' | cut -c 17-32 >/var/tmp/defaultgw

Codice 9.4: /etc/vpnc/scripts.d/work-postup.sh

#!/bin/sh
route del -net 0.0.0.0 netmask 0.0.0.0 dev tun1
route add default gw $(cat /var/tmp/defaultgw)
route add -net 123.234.0.0 netmask 255.255.0.0 dev tun1

Gli script di esempio assumono che la connessione vpnc usi tun1 come dispositivo TUN. È possibile impostare il nome del dispositivo nel file di configurazione per la connessione.

Codice 9.5: /etc/vpnc/work.conf

Interface name tun1
IPSec gateway vpn.mywork.com
Pidfile /var/run/vpnc.work.pid

10.  Collegamenti utili

11.  Note finali

Al termine di questa guida, dovrebbe essere possibile connettersi ad una VPN di propria scelta ed essere sulla buona strada per il lavoro da remoto. Non esitare ad aprire un bug su bugs.gentoo.org nel caso si scovi un errore nella guida, o anche solo per un'aggiunta o una raccomandazione che riguardi questo documento.



Stampa

Aggiornato il 22 aprile 2012

La versione originale di questo documento non è più mantenuta

Oggetto: Questo documento descrive come connettere la propria macchina ad un concentratore VPN Cisco, utilizzando vpnc per gestire la connessione.

David H. Askew
Autore

Sven Vermeulen
Contributi

Christian Faulhammer
Contributi

Thomas Fischer
Contributi

Joshua Saddler
Redazione

Marco Leogrande
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.