Riproponiamo oggi la versione aggiornata di uno degli articoli più apprezzati del blog.
Questa volta però abbandoneremo la configurazione basata su chiave condivisa per passare a quella più sicura basata su certificati SSL.
Lo scenario prevede sempre una sede A che fa da server e una sede B che fa da client.
Nella sede A è necessaria la presenza di 1 IP pubblico statico, nella sede B può esserci o non esserci.
Sede A (Server):
LAN: 192.168.0.0/24
IP Pubblico: 1.2.3.4
Sede B (Client):
LAN: 192.168.5.0/24
IP Pubblico: 5.6.7.8
Rete Tunnel VPN: 192.168.254.0/24
1. Creazione della CA e dei Certificati
Accedere all'interfaccia web di pfSense (Sede A).
Navigare su System > Cert. Manager > CAs e cliccare su "Add" e inserire i seguenti parametri:
- Descriptive Name: OpenVPN_CA
- Method: Create internal Certificate Authority
- Key Length: 2048
- Digest Algorithm: SHA256
- Common Name: OpenVPN-CA
- Salvare cliccando su "Save".
Passare alla scheda Certificates e cliccare su "Add" per creare il certificato del server:
- Method: Create internal Certificate
- Certificate Authority: OpenVPN_CA
- Descriptive Name: OpenVPN_Server
- Common Name: server
- Type: Server Certificate
- Key Length: 2048
- Digest Algorithm: SHA256
Ripetere l'operazione per creare il certificato del client (che sarà utilizzato sulla sede B):
- Descriptive Name: OpenVPN_Client
- Common Name: client
- Type: Client Certificate
2. Configurazione del Server OpenVPN (Sede A)
Navigare su VPN > OpenVPN > Servers e cliccare su "Add" e configurare i seguenti parametri:
- Server Mode: Peer to Peer (SSL/TLS)
- Protocol: UDP
- Device Mode: tun
- Interface: WAN
- Local Port: 1194
- Description: Site-to-Site VPN Server
Cryptographic Settings:
- TLS Authentication: Spuntare "Use a TLS Key" e generare la chiave cliccando su "Generate TLS Key".
- Peer Certificate Authority: OpenVPN_CA
- Server Certificate: OpenVPN_Server
- Encryption Algorithm: CHACHA20-POLY1305; AES-256-GCM
- Auth Digest Algorithm: SHA256
- Hardware Crypto: No Hardware Crypto Acceleration
- Tunnel Network: 192.168.254.0/24
- Local Network: 192.168.0.0/24
- Remote Network: 192.168.5.0/24
Salvare e applicare le modifiche
3. Configurazione del Firewall su Sede A
Andare su Firewall > Rules > WAN e cliccare su "Add" e configurare:
- Action: Pass
- Interface: WAN
- Protocol: UDP
- Source: Any
- Destination: WAN Address
- Destination Port Range: 1194
- Description: Allow OpenVPN Traffic
- Salvare e applicare le modifiche.
4. Esportazione e Importazione Certificati Client
Su pfSense (Sede A), navigare su System > Cert. Manager > Certificates.
- Scaricare il certificato e la chiave privata del client OpenVPN.
- Importare questi file su pfSense (Sede B) in System > Cert. Manager > Certificates cliccando su "Add" e selezionando "Import an existing certificate".
5. Configurazione del Client OpenVPN (Sede B)
Accedere all'interfaccia web di pfSense (Sede B). Navigare su VPN > OpenVPN > Clients e cliccare su "Add" e configurare i seguenti parametri:
- Server Mode: Peer to Peer (SSL/TLS)
- Protocol: UDP
- Device Mode: tun
- Interface: WAN
- Server Host or Address: 1.2.3.4
- Server Port: 1194
- Description: Site-to-Site VPN Client
- Peer Certificate Authority: OpenVPN_CA
- Client Certificate: OpenVPN_Client
- Encryption Algorithm: CHACHA20-POLY1305; AES-256-GCM
- Auth Digest Algorithm: SHA256
- Hardware Crypto: No Hardware Crypto Acceleration
- Tunnel Network: 192.168.254.0/24
- Remote Network: 192.168.0.0/24
Salvare e applicare le modifiche.
6. Verifica della Connessione VPN
Navigare su Status > OpenVPN in entrambe le sedi: se la configurazione è corretta, vedrai la connessione attiva.