Docstoc

IPsec VPN

Document Sample
IPsec VPN Powered By Docstoc
					        IPsec VPN

Soluzioni di interoperabilità fra
   diverse implementazioni



         Riccardo Veraldi - INFN sez.
                   Firenze
            Cosa significa VPN
• Virtual Private Network: non è una tecnologia di per
  sè stessa, ma è un concetto che può essere
  implementato nella pratica con l’utlizzo di tecnologie
  diverse fra loro. Alla base vi è la necessità di avere
  una rete virtuale di calcolatori che possono fare
  parte fisicamente di reti diverse (distanti fra loro e
  topologicamente eterogenee) ma appartenere alla
  stessa rete logica (VPN). L’utilizzo di meccanismi di
  autenticazione e crittografia rende questa rete
  privata. La VPN va oltre il concetto di LAN e WAN e
  le può utilizzare entrambe come mezzo di cui servirsi
  per raggiugere tutti i suoi nodi.
                                                       2
             Tipologie di VPN
• MPPE/PPTP (Microsoft VPN) - Windows, UNIX/Linux, e
  Mac clients.
• CIPE - Linux clients e Windows (2000 & NT) clients
• OpenVPN - UNIX/Linux clients
• SSL-wrapped PPP - Linux clients
• GRE and IP/IP - Linux clients, Cisco routers
• IPSec, tunnel mode, transport mode - Windows (2000 &
  NT) e UNIX/Linux clients
• IPSec/PPTP - Windows (2000 & NT) e UNIX/Linux
  clients
• IPSec/L2TP - Windows (2000 & NT) e UNIX/Linux clients

                                                      3
                                  IPsec
• Protocol suite che implementa la crittografia a livello di
  network layer per fornire servizi di autenticazione (non
  repudiation) e confidenzialità (encryption) tra host che
  comunicano attraverso una untrusted network consentendo la
  creazione di VPN
• Elementi fondamentali di IPsec
   – SA: security association. Sta alla base di una VPN IPsec. È un set di
     proprietà relative alla connessione tra 2 host, è una sorta di tabella che
     descrive le proprietà specifiche di una VPN IPsec
       • SPI: numero che identifica il flusso di dati attraverso la VPN IPsec serve
         per discriminare tra le varie SA relative a una connessione IPsec
       • AH: data integrity, origin authentication, protezione anti-reply
       • ESP: confidentiality, data origin authentication, data integrity, protezione
         anti-reply
   – IKE: protocollo per la gestione automatica delle chiavi necessarie per
     tutte le operazioni di security fornite da IPsec
                                                                                 4
          IPsec transport mode




Attraversando lo stack TCP/IP verso il basso a livello di network
layer IPsec rimuove l’header IP originale, cripta i dati realtivi ai
layer OSI più alti, aggiunge in testa il security header appropriato
(ESP/AH) e riapplica l’header IP originale. Quindi il payload del
pacchetto originario viene criptato e viene calcolato l’opportuno
autentication protocol header e inserito tra header IP originario e
paylod criptato. Questa è la tipica soluzione host-to-host VPN
                                                                       5
            IPsec tunnel mode




L’intero pacchetto originario viene incapsulato e criptato e vengono
aggiunti in testa un nuovo Header IP e l’authentication protocol
header (ESP/AH). A livello di network layer IPsec cripta l’intero
pacchetto IP originario comprendente l’header TCP e il relativo
payload, viene creato l’header ESP/AH aggiunto in testa al
pacchetto criptato, inoltre viene crato un nuovo Header IP che
consente al client di inviare il pacchetto originario al gateway VPN
appropriato. Soluzione network-to-network VPN
                                                                       6
AH e ESP (1)




               7
AH e ESP (2)




               8
AH e ESP (3)




               9
 IPsec: implementazioni freeware

• FreeS/WAN (Linux)
  – http://www.freeswan.org

• KAME (FreeBSD, NetBSD)
  – http://www.kame.org

• ISAKMPD (OpenBSD)
   – http://www.openbsd.org/faq/faq13.html

                                             10
 IPsec: prove di interoperabilità




1. creazione dei certificati
2. configurazione IPsec policies e IKE in FreeBSD
3. configurazione IPsec policies in WindowsXP

                                               11
                   Certificati X509
1.   Crezione della CA
     •   openssl genrsa -des3 -out ca.key 1024
2.   Certificato della CA
     •   openssl req -new -x509 -days 365 -key ca.key -out
         ca.crt
3.   Certificati host (xiexie – hal9000)
     •   openssl genrsa -out xiexie.key 1024
     •   openssl req -new -key xiexie.key -out xiexie.csr
     •   openssl x509 -req -days 182 -in xiexie.csr -CA
         ca.crt -CAkey ca.key -CAcreateserial -out xiexie.crt



                                                         12
 Configurazione di FreeBSD (1)

#! /bin/sh
#
# SPD: security policy database settings
# packet will look like this: IPv4 ESP payload
#
setkey -c <<EOF
spdadd 192.84.145.10 192.84.145.18 any -P out ipsec
  esp/transport/192.84.145.10-192.84.145.18/require;
spdadd 192.84.145.18 192.84.145.10 any -P in ipsec
  esp/transport/192.84.145.18-192.84.145.10/require;
EOF



                                                   13
Configurazione di FreeBSD (2)
 # /usr/local/etc/racoon/racoon.conf
 #
 path certificate "/usr/local/etc/racoon/certs" ;
 log debug2;
 padding
 {
         maximum_length 20;      # maximum padding length.
         randomize off;          # enable randomize length.
         strict_check off;       # enable strict check.
         exclusive_tail off;     # extract last one octet.
 }
 timer
 {
         # These value can be changed per remote node.
         counter 5;              # maximum trying count to send.
         interval 20 sec;        # maximum interval to resend.
         persend 1;              # the number of packets per a send.

         # timer for waiting to complete each phase.
         phase1 90 sec;
         phase2 60 sec;                                                14
 }
Configurazione di FreeBSD (3)
# /usr/local/etc/racoon/racoon.conf (continued)
remote anonymous
{
        exchange_mode main,aggressive;
        #exchange_mode aggressive,main;
        doi ipsec_doi;
        situation identity_only;

        #my_identifier address;
        my_identifier user_fqdn “veraldi@fi.infn.it”;
        peers_identifier user_fqdn “veraldi@fi.infn.it”;
        certificate_type x509 “hal9000.crt” “hal9000.key”;
        peers_certfile “xiexie.crt";

        nonce_size 16;
        lifetime time 4 hour;   # sec,min,hour
        initial_contact on;
        support_mip6 on;
        proposal_check obey;    # obey, strict or clai
proposal {
                encryption_algorithm 3des;
                hash_algorithm md5;
                authentication_method rsasig;
                dh_group 2 ;
        }
}                                                            15
 Configurazione di FreeBSD (4)


# /usr/local/etc/racoon/racoon.conf (continued)
sainfo anonymous
{
        pfs_group 1;
        lifetime time 30 sec;
        encryption_algorithm 3des,des;
        authentication_algorithm hmac_sha1,hmac_md5;
        compression_algorithm deflate ;
}
# end of racoon.conf




                                                       16
Configurazione di Windows XP (1)
• Importare I certificati della CA
  e dell’host Windows XP
  (xiexie) utilizzando mmc




                                     17
Configurazione di Windows XP (2)
• Creazione delle policies IPSec




                                   18
Configurazione di Windows XP (3)
• IPsec startup




                               19
Windows XP - FreeBSD VPN




                           20
         Problemi riscontrati

• Interfaccia mmc non sempre consistente
• Windows XP non crea la VPN se si cerca
  di inizializzare la connessione IPsec
  partendo prima da Windows XP, funziona
  come client ma non come server (almeno
  per quanto riguarda questa prova di
  interoperabilità)

                                           21

				
DOCUMENT INFO
Categories:
Tags:
Stats:
views:6
posted:1/5/2012
language:Italian
pages:21