IPSec client
Da Security e-Book.
IPSec si è affermato come lo standard per la protezione dei dati su TCP/IP ed è presente nella maggioranza dei moderni sistemi operativi, seppur supportando diversi standard crittografici e modalità di configurazione, a volte con estensioni proprietarie. Esistono anche client “all purposes” che sono in grado di coprire la maggioranza delle funzionalità presenti sul mercato, come ad esempio SSH Sentinel, oppure client che sono in grado di integrarsi in una infrastruttura di policy più ampia, per esempio SecuRemote/SecureClient di CheckPoint che scaricano le loro policy da un firewall. È importante capire quali client andranno a collegarsi al VPN server e quali standard sono in grado di supportare, così da configurare il VPN gateway usando le migliori tecnologie comuni. Ad esempio, Linux con FreeS/WAN è in grado di supportare sia la crittografia AES 256-bit che 3DES, mentre Windows 2000 usa sia DES che 3DES. In tale scenario, il VPN gateway dovrà essere impostato per usare l'algoritmo 3DES, essendo comune ad entrambi.
Nei successivi paragrafi verranno descritti degli esempi di IPSec client, in particolare SSH Sentinel e Linux FreeS/WAN. È da sottolineare che MacOS X 10.2, cui nome in codice è “Jaguar”, è basato su tecnologia BSD e incorpora la stessa implementazione IPSec di FreeBSD. Per maggiori informazioni sull'implementazione IPSec dei BSD si faccia riferimento al sito http://www.kame.net/.
Indice |
Esempio di client con SSH Sentinel
Uno dei client IPSec più popolari in Internet è SSH Sentinel per Windows, dovuto al suo uso gratuito per fini non commerciali. Per configurare il programma è necessario disporre del certificato X509 dell'utente in formato PKCS#12 o PEM e un certificato pubblico della Certification Authority se questa non è pubblicamente riconosciuta (ad esempio Verisign).
Configurazione dei certificati
Il primo passo è quello della configurazione della Certification Authority comune.
- Aprire il programma Policy Editor e selezionare la sezione Key Management
- Selezionare Trusted Certificates, evidenziare Certification Authorities e con il tasto destro del mouse selezionare Import
- Selezionare il file contenente il certificato pubblico della CA e premere Yes fino ad importazione avvenuta
Poi è necessario importare il certificato dell'utente selezionando My Keys, con il tasto destro del mouse selezionando Import e selezionando il file del certificato. Durante l'importazione del certificato verrà chiesta la password per aprire il file con la chiave privata.
Configurazione della VPN
Per effettuare la configurazione della VPN è necessario selezionare la sezione Security Policy. È consigliabile creare una nuova policy, al fine di faciltitare la gestione utente, selezionando New Policy Layer. Nell'esempio successivo le connessioni ad altre reti non sono ammesse mentre è in uso la VPN, questo per proteggere il client da eventuali attacchi di intrusi mentre si è collegati attraverso la rete wireless. Per fare questo è necessario selezionare l'opzione Deny Split Tunneling nel pannello Advanced durante la definizione della VPN.
Per creare una VPN è necessario selezionare VPN Connections nella policy appena creata oppure su quella di Default, poi selezionare Add e specificare quanto segue.
- Security gateway: il nome o l'indirizzo IP del gateway VPN
- Remote network: any (0.0.0.0/0).
- Authentication key: La chiave privata o il certificato X.509
- Selezionare legacy quando si usa 3DES per la crittografia e normale quando si usa AES (Rijndael).
- Selezionare Properties per specificare altri parametri.
- Non selezionare Aquire virtual IP address qualora la rete wireless sia raggiungibile attraverso la rete interna. Selezionarla quando si desidera avere un indirizzo IP virtuale.
Esempio di client con Linux e FreeS/WAN
FreeS/WAN è il programma per Linux che si occupa di gestire IPSec. La sua installazione e configurazione è piuttosto complessa anche per i più esperti, in particolare se si tratta di usare congiuntamente la crittografia X.509 e il NAT Traversal. Molte distribuzioni Linux, quali Suse e Mandrake, includono anche il programma FreeS/WAN a cui pero' mancano le features di autenticazione a chiave digitale. É bene controllare nella propria distribuzione Linux se è presente FreeS/WAN con la patch per X.509. Qualora ne fosse sprovvisto, si consiglia l'ottimo sito http://www.freeswan.ca che distribuisce una versione di FreeS/WAN con le ultime patch disponibili, quali appunto l'estensione X.509, il NAT Traversal e l'algoritmo di crittografia AES. Per ricompilare il kernel di Linux con IPSec è necesario avere i sorgenti del kernel di Linux installati in /usr/src/linux, successivamente entrare nella directory di freeswan e eseguire il comando menugo. Verrà presentata la usuale schermata dei parametri di configurazione del kernel: assicurarsi che all'interno di Networking Support, sia abilitato IPSec con i relativi moduli.
Certificati
È necessario avere un certificato X.509 in formato PEM o DER prima di procedere con la configurazione del client IPSec per Linux. Molte Certification Authorities sono solite rilasciare il certificato in formato PKCS#12, pertanto è necessario estrarre prima la chiave privata con il comando:
# openssl pkcs12 -in freeswan.p12 -nocerts -out /etc/ipsec.d/private/freeswan-key.pem
e poi la chiave pubblica con:
# openssl pkcs12 -in freeswan.p12 -nokeys -out /etc/ipsec.d/freeswan-pub.pem
È anche necessario includere il certificato pubblico della CA, sempre in formato PEM o DER, nella directory /etc/ipsec.d/cacerts. Bisogna successivamente modificare il file /etc/ipsec.secrets includendo il certificato privato appena generato, ad esempio inserendo la seguente linea:
: RSA /etc/ipsec.d/private/freeswan-key.pem "my password"
Dove “my password” è la password segreta che protegge la chiave privata.
File di configurazione
Di seguito si fornisce un esempio di file di configurazione /etc/ipsec.conf che permette sia di collegarsi solamente al gateway che alla intranet interna. Come indicato precedentemente, la configurazione di FreeS/WAN è piuttosto complessa ed è bene consultare anche la documentazione allegata al programma.
config setup
# THIS SETTING MUST BE CORRECT or almost nothing will work;
# %defaultroute is okay for most simple cases.
#interfaces=%defaultroute
interfaces="ipsec0=eth0"
klipsdebug=none
plutodebug=none
plutoload=%search
plutostart=%search
uniqueids=yes
## RoadWarrior to Gateway
conn freeswan-x509
# Right side is FreeS/WAN RoadWarrior
rightrsasigkey=%cert
rightid="/O=id/OU=users/CN=freeswan"
right=%defaultroute
# Left side is VPN GATEWEAY
left=1.2.3.4
# leftid= # !do not use for Check Point!
# config
type=tunnel
keyingtries=0
disablearrivalcheck=no
authby=rsasig
auth=esp
keyexchange=ike
auto=start
## RoadWarrior to Net behind Gateway: FreeS/WAN <-> Check Point
conn freeswan-x509-net
# Right side is FreeS/WAN RoadWarrior
rightrsasigkey=%cert
right=%defaultroute
rightid="/O=id/OU=users/CN=freeswan"
left=1.2.3.4
leftsubnet=172.16.1.0/24
# config
type=tunnel
keyingtries=0
disablearrivalcheck=no
authby=rsasig
auth=esp
keyexchange=ike
auto=start
In caso di problemi durante la configurazione di FreeS/SWAN, si consiglia la lettura di SSL Certificates HOW-TO (The Linux Documentation Project) e di VPN Connection to FreeS/WAN IPSec Gateway (SSH Communications Security).

