Guida all'uso di vpnc con Gentoo
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
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 |
# cat /etc/resolv.conf
nameserver 192.168.0.1
# cat /etc/hosts
127.0.0.1 desktop localhost
192.168.0.1 router
192.168.2.2 mediacenter
# 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)
# 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.
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|