Vediamo come implementare un tunnel IPsec site to site per connettere tra di loro un router Mikrotik ed un Firewall Pfsense.
Come possiamo vedere nel diagramma di rete seguente, il firewall Pfsense ha accesso ad internet tramite un IP Pubblico statico.
Il router Mikrotik si trova dietro il modem/router fornito dall’ISP quindi è dietro una rete nattata.
La WAN del Mikrotik ha dunque un IP privato.
Nella configurazione che andremo a realizzare faremo un collegamento site to site ed utilizzeremo come protocollo IKEv2.
Contenuti
Requisiti
- Sul router Mikrotik deve esserci un servizio DDNS configurato e funzionante (scopri come fare by foisfabio.it)
Dispositivi utilizzati
- Mikrotik CHR
- Pfsense
Diagramma IPsec site to site Pfsense-Mikrotik
Sede A – Configurazione IPsec Mikrotik
Configurazione phase 1 IPsec Mikrotik
Andiamo in IP –> IPsec e rechiamoci sul tab Profiles
Clicchiamo su +(Add) e configuriamo il profile in questo modo:
- Name: tp_pfsense
- Hash Algorithms: sha256
- Encryption Algorithms: aes-256
- DH Group: modp2048
- NAT Traversal: deselezionato
- Clicchiamo su Apply e poi su OK
Configurazione Peer
Andiamo in IP –> IPsec e rechiamoci sul tab Peers
Clicchiamo su +(Add) e configuriamo il peer come segue:
- Name: to_pfsense
- Address: 93.147.53.158 (IP Pubblico del Pfsense)
- Profile: to_pfsense
- Exchange Mode: IKE2
- Send INITIAL_CONTACT: selezionato
- Clicchiamo su Apply e poi su OK
Configurazione Identity – Pre shared Key
Andiamo in IP –> IPsec e rechiamoci sul tab Identities
Clicchiamo su +(Add) ed inseriamo i dati seguenti:
- Peer: to_pfsense
- Auth. Metod: pre shared key
- Secret: 1234567890 (impostare una pre-shared key robusta)
- My ID Type: fqdn
- My ID: labmikrotik.duckdns.org (inserire il proprio DDNS)
- Clicchiamo su Apply e poi su OK
Configurazione phase 2 IPsec Mikrotik
IPsec Proposal
Andiamo in IP –> IPsec e rechiamoci sul tab Proposals
Clicchiamo su +(Add) e configuriamo come segue:
- Name: to_pfsense
- Auth. Algorithms: sha256
- Encr. Algorithms: aes-256-cbc
- PFS Group: modp2048
- Clicchiamo su Apply e poi su OK
IPsec Policies
Andiamo in IP –> IPsec e rechiamoci sul tab Policies
Clicchiamo su +(Add) ed aggiungiamo una policy come sotto:
- General
- Peer: to_pfsense
- Tunnel: selezionato
- Src. Address: 172.19.60.0/23
- Dst. Address: 192.168.15.0/24
- Protocol: 255 (all)
- Action
- Action: encrypt
- Level: require
- IPsec Protocols: esp
- Proposal: to_pfsense
- Clicchiamo su Apply e poi su OK
Configurazione NAT Mikrotik per il traffico IPsec
Andiamo in IP -> firewall -> NAT e clicchiamo su +(Add) per aggiungere una nuova rule.
Creiamo una regola:
- General
- Chain: srcnat
- Src. Address: 172.19.60.0/23
- Dst. Address: 192.168.15.0/24
- Action
- Action: Accept
- Clicchiamo su Apply e poi su OK
Spostiamo la regola appena creata in cima, al di sopra della regola di Masquerade
Sede B – Configurazione IPsec Pfsense
Configurazione phase1 IPsec Pfsense
Procediamo ora alla configurazione della phase 1 dell’IPsec sul firewall Pfsense.
Andiamo nel menù VPN -> IPsec. Clicchiamo sulla sezione Tunnel e poi su AggiungiP1
Informazioni generali
Nel campo Descrizione inseriamo una descrizione per identificare il tunnel, es. to_Mikrotik
Configurazione IKE endpoint
Configuriamo la sezione IKE Endpoint Configuration come segue:
- Versione chiave di scambio: IKEv2.
- Protocollo Internet: IPv4
- Interfaccia: WAN
- Gateway Remoto: labmikrotik.duckdns.org (Inserite il DDNS della sede remota)
Phase1 Proposal (Authentication)
Inseriamo i valori:
- Metodo di autenticazione: PSK mutuo
- Il mio identificatore: Il mio indirizzo IP
- Peer identifier: Fully qualified domain name – labmikrotik.duckdns.org (Inserite il DDNS della sede remota)
- Pre-Shared Key: 1234567890 (stessa pre-shared key usata sul Mikrotik)
Phase1 proposal (Encryption Algorithm)
Come Algoritmo di crittografia impostiamo come segue:
- Algoritmo di crittografia
- Algoritmo: AES
- Lunghezza della chiave: 256 bits
- Hash: SHA256
- DH Group: 14 (2048 bit)
Lasciare tutti gli altri campi ai valori di default e cliccare su Salva
Configurazione phase 2 IPsec Pfsense
Dopo aver creato la phase 1 del tunnel IPsec, procediamo ora con la creazione della phase2.
Clicchiamo su Mostra voci Fase 2
e clicchiamo sulla voce Aggiungi P2
Informazioni generali
Nel campo Descrizione inseriamo una descrizione per identificare la phase2 es. phase2 to Mikrotik
Networks
Configuriamo ora le subnet interessate dal tunnel IPsec tra il Mikrotik ed il Pfsense
- Rete locale: LAN subnet
- NAT/BINAT translation: nessuno
- Rete Remota: Rete – 172.19.60.0/23
Phase2 Proposal
Configuriamo ora la sezione Proposta di Fase 2 (SA / Scambio di chiavi) come segue:
- Protocollo: ESP
- Algoritmi di crittografia: AES – 256 bits
- Algoritmi di hash: SHA256
- PFS key group: 14 (2048 bit)
Lasciare tutti gli altri campi ai valori di default e cliccare su Salva e poi su Applica le modifiche
Configurazione Policy IPsec Pfsense
E’ necessario ora configurare le policy per permettere il traffico del tunnel IPsec.
Per farlo andiamo nel menù Firewall -> Regole e poi sul tab IPsec ed infine su Aggiungi(freccia verso l’alto)
Creiamo una regola con le seguenti impostazioni:
- Azione: Consenti
- Disabilitato: non selezionato
- Interfaccia: IPsec
- Indirizzo Famiglia: IPv4
- Protocollo: Qualsiasi
- Origine: Rete – 172.19.60.0/23
- Destinazione: LAN subnets
- Log: Spuntare la voce: Registra i pacchetti gestiti da questa regola
- cliccare su Salva e poi su Applica le modifiche
Verificare il tunnel IPsec tra Pfsense e Mikrotik
Verifichiamo ora che il tunnel IPsec sia instaurato.
Pfsense
Andiamo nel menù Stato -> IPsec e verifichiamo lo stato della phase1 e phase2
Testiamo ora la raggiungibilità dalla LAN dietro il Pfsense verso la LAN dietro il Mikrotik.
Andiamo in Diagnostica -> Ping ed inseriamo i valori:
- Hostname: 172.19.60.1
- Protocollo IP: IPv4
- Indirizzo di origine: LAN
- Numero massimo di ping: 3
- Secondi tra un ping e l’altro: 1
- cliccare su Ping
Mikrotik
Andiamo nel menù IP -> IPsec e poi nel tab Active Peers
Verifichiamo le policy andando nel tab Policies
Testiamo ora la raggiungibilità dalla LAN dietro il Mikrotik verso la LAN dietro il Pfsense.
Clicchiamo su New Terminal e lanciamo il comando:
ping 192.168.15.1 src-address=172.19.60.1