Skip to main content
  1. Concetti/

VPN e IPsec - IKE, ESP, AH, Tunnel e Split Tunnel

Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cos'e' una VPN
#

Una VPN (Virtual Private Network) e' un concetto architetturale, non un protocollo: crea un tunnel cifrato su una rete pubblica per collegare utenti o sedi remote come se fossero in rete locale. Il protocollo piu' diffuso per implementarla in ambito enterprise e' IPsec.

Proteggere il traffico in transito su Internet creando un canale cifrato tra due endpoint (gateway o utente e gateway).

TL;DR
#

  1. Il client VPN negozia le chiavi con il VPN Concentrator via IKE (UDP 500)
  2. IKE usa Diffie-Hellman per derivare una chiave simmetrica senza trasmetterla mai
  3. Il traffico viene cifrato con ESP (IP Protocol 50) e facoltativamente autenticato con AH (IP Protocol 51)
  4. Il Concentrator decifra, verifica e instrada il traffico nella LAN aziendale
  5. Per l'utente finale la rete remota appare come locale

Suite IPsec
#

IPsec (IP Security) e' una suite di tre componenti che lavorano insieme: IKE per la negoziazione, ESP per la cifratura, AH per l'integrita'. Non e' un singolo protocollo ma uno standard RFC implementato a livello kernel.

ipsec-tunneling-suite-overview.webp

Sequenza IKE + ESP
#

Quando un client si connette via IPsec, la sequenza e' in due fasi distinte:

Fase 1 - IKE Handshake:

sequenceDiagram
    participant C as Client VPN
    participant V as VPN Concentrator

    Note over C,V: FASE 1 - IKE Handshake

    C->>V: Hello - voglio un tunnel IPsec
    V-->>C: Certificato con chiave pubblica
    C->>V: Parametri Diffie-Hellman pubblici
    Note over C,V: Entrambi calcolano la stessa chiave simmetrica effimera senza trasmetterla

    Note over C,V: FASE 2 - Trasporto Sicuro ESP e AH

    C->>V: Pacchetto cifrato con ESP + firma AH
    Note right of V: Verifica integrita' AH
    Note right of V: Decifra ESP con chiave simmetrica
    Note right of V: Instrada in chiaro nella LAN

Dev parallel: La Fase 1 IKE e' concettualmente identica al TLS handshake che un'app PHP fa verso un database remoto. Entrambi usano crittografia asimmetrica per autenticarsi e derivare una chiave simmetrica per il traffico successivo. La differenza e' il layer: TLS opera a livello applicazione (Layer 7), IKE/IPsec opera a livello IP (Layer 3).


Tunnel Mode vs Transport Mode
#

IPsec supporta due modalita' operative che determinano quanta parte del pacchetto viene cifrata.

ipsec-tunnel-transport-mode.webp

Regola pratica: se si vedono due gateway VPN che connettono reti diverse, e' sempre Tunnel Mode. Se due server interni comunicano in modo sicuro senza attraversare Internet, e' Transport Mode.


Tipi di VPN
#

Le VPN si distinguono in base a chi sono gli endpoint del tunnel.

site-to-site-vpn-gateways.webp

Dev parallel: In un sistema PHP/Node che deve connettersi a un DB in un datacenter remoto, il VPN site-to-site e' trasparente: l'applicazione vede l'IP privato del DB come se fosse in rete locale. AWS Direct Connect o Azure ExpressRoute fanno la stessa cosa a livello enterprise con connessione fisica dedicata, non VPN via Internet.

VPN Concentrator
#

Il VPN Concentrator e' il dispositivo (hardware o software) che funge da endpoint del tunnel VPN lato azienda. Gestisce autenticazione, decifratura e routing del traffico in ingresso.

vpn-concentrator-concept.webp

Quattro funzioni primarie:

  1. Autenticazione - verifica identita' del client, spesso interrogando RADIUS
  2. Gestione Tunnel - termina il tunnel e mantiene la SA attiva
  3. Cryptographic Offloading - decifra ogni pacchetto ESP in ingresso (CPU-intensive)
  4. Assegnazione IP - assegna un IP interno fittizio al client remoto

Split Tunnel vs Full Tunnel
#

La scelta tra split e full tunnel determina quale traffico transita nella VPN e quale va direttamente su Internet.

vpn-split-full-tunnel.webp

Dev parallel: Split tunnel in BYOD: il developer che lavora da casa con split tunnel usa la VPN solo per accedere ai repository interni, mentre il suo Spotify va diretto su Internet. Full tunnel significa che tutto il traffico passa dal proxy aziendale: piu' sicuro ma il developer sente la latenza anche per GitHub.com. In un'azienda che usa full tunnel, la latenza aggiuntiva puo' diventare un problema reale per i developer che lavorano intensivamente con Git e CDN esterni.


SSL VPN vs IPsec
#

Quando IPsec non e' praticabile (NAT, firewall pubblici in hotel o aeroporti), SSL VPN usa la porta TCP 443 per passare ovunque.

AspettoIPsecSSL VPN
Layer3 (IP)7 (Applicazione)
PortaUDP 500 / 4500TCP 443
NATProblematico (NAT-T serve)Nessun problema
Uso tipicoSite-to-site enterpriseRemote access utenti
EsempiCisco ASA, AWS VPN GWOpenVPN, SSTP

WireGuard
#

WireGuard e' un protocollo VPN moderno che non fa parte della suite IPsec: e' completamente indipendente. Circa 4.000 righe di codice vs 400.000 di IPsec, implementato a livello kernel.

ipsec-vs-wireguard-comparison.webp

  • Crittografia: ChaCha20 + Poly1305 (piu' veloce di AES su hardware senza AES-NI)
  • Porta: UDP 51820
  • Non interoperabile con IPsec: sono protocolli separati
  • Ideale quando si controllano entrambi gli endpoint
  • IPsec resta lo standard quando l'altra parte usa hardware Cisco/Juniper/AWS

Scenario Reale Blue Team
#

In un ambiente enterprise, VPN e IPsec lasciano tracce nei log di sistema. I comandi seguenti permettono di verificare tunnel attivi e connessioni VPN:

# Verificare tunnel IPsec attivi (Linux con strongSwan)
ipsec statusall

# Vedere le Security Associations (SA) attive nel kernel
ip xfrm state list
ip xfrm policy list

# Connessioni VPN attive su un sistema Linux
ss -tulnp | grep -E "500|4500|51820|1194"

# Log di negoziazione IKE in strongSwan
journalctl -u strongswan -f

# Verificare interfacce VPN attive (WireGuard)
wg show

# Traffico IPsec su interfaccia (cattura ESP = protocol 50)
tcpdump -i eth0 'proto 50 or proto 51 or port 500 or port 4500'

Segnali da cercare in un SIEM:

  • Connessioni UDP 500 verso IP non autorizzati (negoziazione IKE anomala)
  • Traffico ESP (Protocol 50) verso destinazioni non whitelistate
  • VPN login da IP geolocalizzati fuori dall'area operativa attesa
  • Multipli tunnel attivi dallo stesso utente in paesi diversi simultaneamente

Collegato a
#

Related