Creare una vpn layer2 con pfSense ed OpenVPN
Con la progressiva diffusione del cloud ibrido, è cresciuta anche la necessità di collegare tramite vpn layer2, due o più siti aziendali mantenendo un unica subnet. Detto in maniera più sintetica creare una stretched LAN tra i siti.
La caratteristica principale di questo tipo di connessione è quella di sostituire il routing (Layer 3) con il bridging (Layer 2). Entrambe le soluzioni hanno pro e contro, ma lo scopo di quest'articolo non è analizzare quale e quando sia meglio una o l'altra.
La caratteristica principale di questo tipo di connessione è quella di sostituire il routing (Layer 3) con il bridging (Layer 2). Entrambe le soluzioni hanno pro e contro, ma lo scopo di quest'articolo non è analizzare quale e quando sia meglio una o l'altra.
Giusto per fare un esempio dei vantaggi di avere una stretched LAN è la possibilità di muovere VM tra un sito e l'altro senza dover cambiare IP, questo si dimostra molto utile quando si vuole fare DR tra siti distinti.
In questa configurazione per creare la nostra stretched lan utilizzeremo due siti: Site A e Site B. Sul Site A configureremo OpenVPN in modalità server e sul Site B configureremo OpenVPN in modalità Client.
Il tunnel OpenVPN verrà messo in bridge con l'interfaccia Lan di ogni sito in modo che la subnet della Lan del Site B diventi estensione della subnet della Lan del Site A.
Per la nostra configurazione supporremo che:
Il tunnel OpenVPN verrà messo in bridge con l'interfaccia Lan di ogni sito in modo che la subnet della Lan del Site B diventi estensione della subnet della Lan del Site A.
Per la nostra configurazione supporremo che:
LAN subnet = 192.168.0.0/24
WAN address Site A = sitea.miosito.extSite A
CONFIGURAZIONE DEL SERVER OPENVPN
Selezioniamo VPN > OpenVPN > Servers e clicchiamo su Add;
Impostiamo la VPN come segue
Server mode: Peer to Peer (Shared Key)
Protocol: UDP on IPv4 only
Device mode: tap - Layer 2 Tap Mode
Interface: WAN
Local port: 1194
Description: VPN SiteA to SiteB
Shared Key: Chiave generata
Encryption Algorithm: AES-128-CBC (potete scegliere quello che preferite)
Enable NCP: yes
NCP Algorithms: Elencate gli algoritmi tra cui scegliere
Auth digest algorithm: SHA1 (potete scegliere quello che preferite)
IPv4 Tunnel Network: 10.0.8.0/30 (se le sedi sono due basta una rete di 2 soli IP)
Clicchiamo su Save
CONFIGURAZIONE DELL'INTERFACCIA OPENVPN
Ora selezioniamo Interfaces > Interfaces Assignments e clicchiamo su Add
Per la rete appena creata selezioniamo come Network port la vpn appena creata es: ovpns1 (VPN SiteA to SiteB)
Ora clicchiamo sul nome dell'interfaccia es: OPT1
Spuntiamo l'opzione Enable interface
Modifichiamo la description in VPN_BRIDGE
Lasciamo il resto invariato e clicchiamo su Save
CONFIGURAZIONE DEL BRIDGE
Selezioniamo Interfaces > Assignments > Bridges e clicchiamo su Add
Selezioniamo le interfacce da metter ein bridge
Member Interfaces: LAN, VPN_BRIDGE
Description: SITES_BRIDGE
Clicchiamo su Save
Selezioniamo Firewall > Rules > VPN_BRIDGE e clicchiamo su Add
Aggiungiamo una regola che permetta il tranito di tutto il traffico IPv4
In questo punto potrebbe essere utile inserire prima della regola appena creata, delle regole di blocco del traffico che non si vuole far transitare sulla VPN
Es: DHCP (Protocol: udp Port: 67 e 68)
CONFIGURAZIONE DELLE RULES
Selezioniamo Firewall > Rules > WAN e clicchiamo su Add
Aggiungiamo una regola che permetta la pubblicazione del server OpenVPN con protocollo UDP e porta 1194
Per rendere più sicura la connessione possiamo indicare come source l'IP pubblico del Site B
Site B
Ora ripetiamo le stesse operazioni effettuate sul Site B partendo dalla creazione del client OpenVPN
CONFIGURAZIONE DEL CLIENT OPENVPN
Selezioniamo VPN > OpenVPN > Clients e clicchiamo su Add;
Impostiamo la VPN come segue
Server mode: Peer to Peer (Shared Key)
Protocol: UDP on IPv4 only
Device mode: tap - Layer 2 Tap Mode
Interface: WAN
Server host or address: sitea.miosito.ext
Server host or address: sitea.miosito.ext
Server port: 1194
Description: VPN SiteA to SiteB
Shared Key: Chiave generata del server
Encryption Algorithm: AES-128-CBC (Algoritmo impostato sul server)
Enable NCP: yes
NCP Algorithms: Elencate gli algoritmi tra cui scegliere
Auth digest algorithm: SHA1 (Algoritmo impostato sul server)
Clicchiamo su Save
Clicchiamo su Save
CONFIGURAZIONE DELL'INTERFACCIA OPENVPN
Ora selezioniamo Interfaces > Interfaces Assignments e clicchiamo su Add
Per la rete appena creata selezioniamo come Network port la vpn appena creata es: ovpnc1 (VPN SiteA to SiteB)
Ora clicchiamo sul nome dell'interfaccia es: OPT1
Spuntiamo l'opzione Enable interface
Modifichiamo la description in VPN_BRIDGE
Lasciamo il resto invariato e clicchiamo su Save
CONFIGURAZIONE DEL BRIDGE
Selezioniamo Interfaces > Assignments > Bridges e clicchiamo su Add
Selezioniamo le interfacce da metter ein bridge
Member Interfaces: LAN, VPN_BRIDGE
Description: SITES_BRIDGE
Clicchiamo su Save
CONFIGURAZIONE DELLE RULES
Selezioniamo Firewall > Rules > VPN_BRIDGE e clicchiamo su Add
Aggiungiamo una regola che permetta il tranito di tutto il traffico IPv4
In
questo punto potrebbe essere utile inserire prima della regola appena
creata, delle regole di blocco del traffico che non si vuole far
transitare sulla VPN
Es: DHCP (Protocol: udp Port: 67 e 68)
5 commenti:
ciaoo. Ho provato a seguire la tua guida ma non funziona: se faccio il ping dal webconfigurator di un firewall verso l'altro si vedono, ma i rispettivi client in rete no. è come se non funzionasse il bridging.
Ciao,
Anch'io ho lo stesso problema.
La vpn va su ma non c'è ping tranne tra firewall e firewall
Cercato su google ma non ho trovato risoluzione.
Dopo molto tempo sono riuscito a riprodurre il problema segnalato da molti, o almeno credo di averlo scovato. Se i test sono stati fatti con un pfsense virtualizzato su vmware occorre attivare la modalità promiscua sul vSwitch a cui è connessa la lan di pfsense.
In caso contrario i due firewall instaurano la VPN, si vedono tra di loro, ma i devices non riescono a comunicare.
Ottimo tutorial , avevo la necessità di costruire un bridge L2TP ta due reti durante la migrazione di un sito ed il setup ha funzionato ottimamente.
Bel tutorial e soprattutto funzionante!
Domanda: ho implementato la configurazione di cui sopra, nella stazione pfsense locale (lan1 + wan1 + wan2) - ho dedicato la wan1 al bridging, vorrei dedicare la wan2 al traffico internet per tutti i dispositivi presenti sulla lan, instradando il traffico lan sul bridge e quello verso internet sulla wan2, ma non sono riuscito a fare in modo che funzioni correttamente.
Avresti mica indicazioni su come impostare correttamente le regole del firewall e del nat per riuscire nell'intento? Grazie
Posta un commento