<- Editoriale - Copertina - XML ->

Articolo


SKIP per Linux e Windows 95

SKIP è un'implementazione IPSEC originariamente curata da SUN. Ne esistono versioni per diversi sistemi operativi tra i quali Solaris, FreeBSD, Digital Unix, Windows 95, Windows NT e Linux. Per Linux esiste un progetto europeo, ENskip, che supera le limitazioni all'esportazione ITAR.

Nell'articolo verranno descritte brevemente le procedure di installazione e configurazione di due host SKIP, il primo basato su ENskip e il secondo su SunScreen SKIP per Windows 95.

I servizi di network security forniti dal protocollo SKIP sono di tre tipi: controllo d'accesso, cifratura e autenticazione.
SKIP è trasparente dal punto di vista dell'utente, che può continuare ad utilizzare i propri client su connessioni sicure.
Rimando ai dettagliati draft per le specifiche tecniche del protocollo.

L'ambiente di prova è costituito da un server Linux basato su libc5 e kernel 2.0.35 (indirizzo IP: 10.100.100.2) e da una stazione Windows 95 (indirizzo IP: 10.100.100.3).

Installare SunScreen SKIP per Windows 95

Il client SKIP per Windows 95 è disponibile su www.skip.org. La versione destinata all'esportazione presenta le seguenti limitazioni:

Terminata l'installazione del software occorre scegliere una password (Pannello di Controllo, SKIP Security for TCP/IP, Proprietà, tab General):


e generare la propria unsigned private key (Pannello di Controllo, SKIP Security for TCP/IP, Proprietà, tab Private Key, Create):

Prendiamo nota del certificato generato 1397a77f9ba0b296ff9cb1a6cf693392, che ci servirà per configurare ENskip.

A questo punto possiamo passare ad installare e configurare il server Linux avendo tutti gli elementi che servono.
Torneremo più tardi alla stazione Windows 95 per ultimarne la configurazione.

Installare e configurare ENskip per Linux

La UserGuide di ENskip elenca i passi da seguire per installare il supporto SKIP per kernel 2.0.33 e 2.1.X. Con piccole modifiche alla patch fornita (per kernel 2.0.33) è possibile utilizzare SKIP anche con kernel 2.0.35 che va ricompilato senza il supporto per l'IP-MASQUERADING.

Prima di procedere alla compilazione del modulo e dei binari del pacchetto ENskip-0.67 è necessario, almeno per la versione del kernel utilizzata nella prova, rimuovere o commentare la linea:

#include <modversions.h>

dal file ./EN/linux/config.h

'make install' si occuperà di creare il device /dev/enskip, di compilare e installare in /usr/local/sbin i binari skipd, cert_gen, skip_attach, skip_detach, skip_dump e skip_stat, di copiare il modulo enskip.o in /lib/modules/misc e di creare le directory /etc/cert/, secret/, public/ e cache/.

A questo punto occorre generare un certificato di 512 bit con cert_gen:

# cert_gen
Please enter the modulus size (512, 1024 or 2048): 512
Generating random value...
If the program suspends here, please switch tasks and generate some 
keyboard input.
Random generation succeeded.
Public CERT saved as /etc/cert/public/08-40B70EEDD20DBB0ED91D8F9DAA0CCE5C-1
Secret CERT saved as /etc/cert/secret/08-40B70EEDD20DBB0ED91D8F9DAA0CCE5C-1
#

"08-40B70EEDD20DBB0ED91D8F9DAA0CCE5C", andrà poi scritto nel file di configurazione del daemon, /etc/skipd.conf. 40B70EEDD20DBB0ED91D8F9DAA0CCE5C rappresenta il certificato dello host remoto da inserire nel pannello di configurazione di SunScreen SKIP.
Un esempio di skipd.conf compatibile con le caratteristiche del client Windows 95 rilasciato da Sun è il seguente:

----------
# /etc/skipd.conf:

default:
 output filter before = NONE
 input filter before = NONE
 output filter after = NONE
 input filter after = SKIP
 output enskip mode = ALL
 input enskip mode = NONE
 Kij algorithm = 3DES-3
 MAC algorithm = MD5
 Crypt algorithm = RC4-128
 output deskip mode = NONE
 input deskip mode = DESKIP
 output deskip policy = NONE
 input deskip policy = NONE
 ttl = 20
 maxttl = 120
 key change bytes = 10240000
 key change time = 30
 lookuphosts =
 flags =

08-1397a77f9ba0b296ff9cb1a6cf693392, 08-40B70EEDD20DBB0ED91D8F9DAA0CCE5C:
    src ip = 10.100.100.3
    dst ip = 10.100.100.2
    input filter before = IP
    input deskip policy = AUTH CRYPT
    Kij algorithm = DES
    MAC algorithm = MD5
    Crypt algorithm = RC2-40
    output filter after = IP
    output enskip mode = ALL
    flags = TUNNEL

08-40B70EEDD20DBB0ED91D8F9DAA0CCE5C, 08-1397a77f9ba0b296ff9cb1a6cf693392:
    src ip = 10.100.100.2
    dst ip = 10.100.100.3
    input filter before = IP
    input deskip policy = AUTH CRYPT
    Kij algorithm = DES
    MAC algorithm = MD5
    Crypt algorithm = RC2-40
    output filter after = IP
    output enskip mode = ALL
    flags = TUNNEL
----------

Riavviato il sistema con il nuovo kernel, carichiamo il modulo enskip.o in memoria (insmod enskip.o). Se tutto funziona a dovere /var/log/messages dovrebbe registrare un messaggio del tipo:

 kernel: skip module loaded

linux:~# lsmod
Modules     used by
enskip        15

A questo punto avviamo il daemon skipd (skipd -v -d) e torniamo a Windows 95.

Configurare SunScreen SKIP per Windows 95

Dopo aver creato la private key dobbiamo accedere all'Access Manager per configurare l'Access Control List (ACL) che contiene gli host con i quali avverranno comunicazioni crittate e non. Configuriamo l'host Windows 95 per la comunicazione crittata con se stesso: dallo SKIP Access Manager selezioniamo Add, inseriamo Hostname o indirizzo IP (in questo caso 'ankh' oppure 10.100.100.3), indichiamo come opzione di Security 'SKIP' e quindi Next per specificarne le proprietà:

Il certificato è quello che ci eravamo annotati in fase di generazione della chiave privata. Allo stesso modo inseriamo nell'ACL lo host Linux. In questo caso copieremo a mano il certificato prima creato.


L'ACL alla fine avrà il seguente aspetto. Notare l'icona del lucchetto chiuso per le connessioni crittate.
La mini VPN (Virtual Private Network) così creata è pronta per la comunicazione crittata bidirezionale. Con un network monitor installato ad esempio su un terzo host appartenente allo stesso tratto di LAN possiamo verificare l'effettivo transito di pacchetti crittati tra i due host.

Conclusioni

SKIP è una soluzione ormai consolidata per la quale esistono numerose implementazioni sia commerciali sia liberamente distribuibili. La facilità di installazione/configurazione e l'elevata interoperabilità delle varie versioni rendono SKIP una valida alternativa in quei contesti dove la sicurezza delle connessioni tcp/ip costituisce una priorità.
di Paolo Rocchi

<- Editoriale - Copertina - XML ->