IPsec IKEv2: tunnel site-to-site sicuro
Configurazione IPsec IKEv2 site-to-site su RouterOS v7 con cifrari moderni (AES-256-GCM, SHA-256, ECP256), regola srcnat per escludere il traffico VPN dal masquerading.
IPsec IKEv2 è lo standard industriale per tunnel VPN interoperabili. Rispetto a WireGuard è più complesso da configurare ma è supportato nativamente da qualsiasi firewall/router enterprise. Richiede di configurare: profilo IKE (fase 1), proposta (fase 2), peer, identità, policy e regola NAT di esclusione.
Le due fasi. La fase 1 (IKE) stabilisce un canale sicuro di controllo tra i due gateway, negoziando algoritmo di cifratura, hash e gruppo Diffie-Hellman (profilo). La fase 2 (IPsec/ESP) negozia le chiavi che cifrano davvero il traffico dati (proposta). La policy decide quali reti finiscono dentro il tunnel.
# Profilo fase 1 con AES-256, SHA-256, DH ECP-256 /ip/ipsec/profile/add \ name=ike2-profile \ dh-group=ecp256 \ enc-algorithm=aes-256 \ hash-algorithm=sha256 \ nat-traversal=yes \ dpd-interval=30s \ dpd-maximum-failures=5
# Proposta fase 2: AES-256-GCM (autenticazione integrata), # no auth-algorithm separato, PFS con ECP-256 /ip/ipsec/proposal/add \ name=ike2-proposal \ enc-algorithms=aes-256-gcm \ auth-algorithms=null \ pfs-group=ecp256 \ lifetime=1h
# Peer: IP pubblico del router remoto, modalità IKEv2 /ip/ipsec/peer/add \ name=peer-sedeB \ address=203.0.113.2/32 \ exchange-mode=ike2 \ profile=ike2-profile \ send-initial-contact=yes # Identità: metodo autenticazione con PSK /ip/ipsec/identity/add \ peer=peer-sedeB \ auth-method=pre-shared-key \ secret="SegreteForte$2024!Cambiami"
# Policy: traffico dalla rete locale A verso la rete B viene cifrato /ip/ipsec/policy/add \ peer=peer-sedeB \ src-address=10.1.101.0/24 \ dst-address=10.1.102.0/24 \ tunnel=yes \ action=encrypt \ proposal=ike2-proposal
# IMPORTANTE: questa regola deve precedere quella di masquerade! # Senza di essa il traffico verso la rete remota verrebbe nattato # e IPsec non riconoscerebbe il pacchetto. /ip/firewall/nat/add \ chain=srcnat \ src-address=10.1.101.0/24 \ dst-address=10.1.102.0/24 \ action=accept \ comment="Escludi traffico VPN dal NAT" \ place-before=0
action=accept deve essere inserita PRIMA della regola action=masquerade. Verifica con /ip/firewall/nat/print che la numerazione sia corretta.protocol=udp dst-port=500,4500 e protocol=ipsec-esp in chain=input, altrimenti il tunnel non si negozia. Se l'altro lato è dietro NAT, NAT-T (UDP 4500) è obbligatorio.Verifica e monitoraggio
# Stato SA attive (Security Associations) /ip/ipsec/active-peers/print /ip/ipsec/installed-sa/print # Statistiche policy (pacchetti cifrati/decifrati) /ip/ipsec/policy/print stats # Log in caso di problemi /log/print where topics~"ipsec"
Problemi tipici e diagnosi
- SA fase 1 ok ma niente traffico: quasi sempre la regola NAT di esclusione manca o è dopo il masquerade.
installed-sacon counter rx ma non tx (o viceversa): policy asimmetriche — src/dst su un lato non sono lo specchio dell'altro.- Negoziazione fallisce subito: cifrari/DH non combaciano tra profilo e proposta dei due lati; allinea
dh-group,enc-algorithm,pfs-group. - Tunnel cade dopo l'inattività: abbassa la dipendenza da DPD o aggiungi traffico keepalive; verifica i
lifetimecoerenti.
address=0.0.0.0/0 sul peer passivo e usa mode-config o DDNS. Con IP dinamico su entrambi i lati preferisci WireGuard.Continua con
Configura senza fatica con l'AI
In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.
Prova WispOS