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#
- Il client VPN negozia le chiavi con il VPN Concentrator via IKE (UDP 500)
- IKE usa Diffie-Hellman per derivare una chiave simmetrica senza trasmetterla mai
- Il traffico viene cifrato con ESP (IP Protocol 50) e facoltativamente autenticato con AH (IP Protocol 51)
- Il Concentrator decifra, verifica e instrada il traffico nella LAN aziendale
- 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.

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.

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.

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.

Quattro funzioni primarie:
- Autenticazione - verifica identita' del client, spesso interrogando RADIUS
- Gestione Tunnel - termina il tunnel e mantiene la SA attiva
- Cryptographic Offloading - decifra ogni pacchetto ESP in ingresso (CPU-intensive)
- 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.

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.
| Aspetto | IPsec | SSL VPN |
|---|---|---|
| Layer | 3 (IP) | 7 (Applicazione) |
| Porta | UDP 500 / 4500 | TCP 443 |
| NAT | Problematico (NAT-T serve) | Nessun problema |
| Uso tipico | Site-to-site enterprise | Remote access utenti |
| Esempi | Cisco ASA, AWS VPN GW | OpenVPN, 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.

- 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#
- ssl-tls - TLS come alternativa a IPsec per SSL VPN
- bgp-asn-fundamentals - BGP usato nel routing tra sedi VPN
- nat-concept - NAT e il problema con ESP (NAT-T)
- dns-tunneling - tunneling applicativo vs tunneling IPsec
- zero-trust - ZTNA come alternativa moderna alla VPN tradizionale
- unicast-broadcast-multicast - modelli di indirizzamento IP correlati


