venerdì 20 luglio 2018

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.

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:

LAN subnet = 192.168.0.0/24
WAN address Site A = sitea.miosito.ext

Site 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 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

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)

TEST FINALE

A questo punto la configurazione è conclusa e se tutto è stato fatto correttamente dovrà essere possibile effettuare un ping da una sede verso l'altra.

Posta un commento