OpenVPN: un po di teoria e di configurazione Andrea Lanzi, Davide Marrone, Roberto Paleari Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2006/2007 15 Novembre 2006
Sommario 1 IPSec VPN-SSL 2 Scenario d esempio TCP over UDP 3
Sommario 1 IPSec VPN-SSL 2 Scenario d esempio TCP over UDP 3
Sommario 1 IPSec VPN-SSL 2 Scenario d esempio TCP over UDP 3
IPSec VPN-SSL Virtual Private Network (VPN) insieme di strumenti che permettono a reti, in differenti locazioni geografiche, di essere collegate tra loro in modo sicuro, usando la tecnologia di una rete pubblica, come Internet. le VPN offrono tre principali proprietà: integrità, confidenzialità e autenticità; possibilità di creare connessioni su reti senza dover utilizzare le costosissime linee dedicate ma utilizzando Internet; VPN implementate seguendo, generalmente, due diversi approcci: estensione al protocollo IP Internet Protocol Security (IPSec); VPN-SSL OpenVPN, Vtun, Tinc, Cipe.
IPSec Cenni IPSec VPN-SSL IPSec IPSec, primo strumento utilizzato per creare delle VPN, proposto nel 1995 come standard RFC; l architettura di IPSec è composta da codice scritto nella parte kernel che modifica lo stack TCP/IP, intervenedo sui pacchetti di rete prima di effettuare l instradamento; tool in user-space per poter configurare le regole di VPN.
IPSec Principali Vantaggi IPSec VPN-SSL pericolosità della scrittura di codice kernel (buona pratica non implementare servizi all interno del codice del kernel per ragioni di sicurezza e stabilità); complesso da configurare (scambio di chiavi, Security Association,... i firewall devono essere consapevoli dell esistenza di IPSec).
VPN-SSL OpenVPN IPSec VPN-SSL OpenVPN demone in user-space che esegue il lavoro; interfaccia virtuale, tun, su cui vengono destinati i pacchetti della VPN; è un interfaccia virtuale Point-to-Point il demone in user-space ascolta sull interfaccia virtuale e comunica con l altro end-point della VPN tramite il protocollo TLS/SSL;... in questo modo è possibile avere una comunicazione: tra due o più end-point privati, sfruttando Internet; sicura: autenticità, confidenzialità dei dati scambiati.
Scenario d esempio Scenario d esempio TCP over UDP
Cosa accade con OpenVPN Scenario d esempio TCP over UDP
Autenticazione/Autorizzazione Autenticazione/Autorizzazione autenticazione; pre-shared secret; certificati; Diffie-Hellman effimero; cifratura; TLS authentication HMAC con shared key; etc.
Server (1) Server local <server IP> port <port number> proto udp dev tun ca server/cacert.cert cert server/server.cert key server/server.key dh dh1024.pem server <tunnel IP network> <tunnel IP netmask> push "route <IP network> <IP netmask>"
Server (2) Server client-config-dir ccd route <IP network> <IP netmask> client-to-client tls-auth ta.key 0 cipher AES-128-CBC comp-lzo user nobody group nogroup
Client (1) Client client dev tun proto udp remote <server IP> <port number> ca client/cacert.cert cert client/client.cert key client/client.key tls-auth ta.key 1
Client (2) Client cipher AES-128-CBC comp-lzo user nobody group nogroup
1 certificato CA self-signed, usato per verificare il certificato del server e dei client; 2 certificato server, firmato dalla CA; 3 certificato client, firmato dalla CA; 4 parametri DH (effimero) per scambiare la chiave di sessione 5 chiave TLS statica pre-shared per HMAC