OpenVPN Server su pfSense 2.7
Una delle funzionalità più utilizzate e più apprezzate di pfSense è la possibilità di fare da terminatore per la OpenVPN.
Abbiamo già descritto come creare un Server OpenVPN in diversi articoli precedenti (OpenVPN Server su pfSense 2.3, l'ultimo), ma vogliamo riprendere l'argomento, in quanto col passare del tempo e delle versioni sono cambiati gli algoritmi supportati e anche alcune delle funzionalità offerte dal configuratore.
In questo articolo prendiamo in considerazione la configurazione di un server pfSense come terminatore per una VPN Road Warrior, che permetta agli utenti remoti di collegare il proprio pc, da ovunque si trovino, alla rete aziendale.
Per autenticarsi saranno necessari un certificato SSL + username e password.
Il backend di autenticazione sarà il database locale del firewall stesso.
La configurazione che vedremo in seguito è effettuata su un pfSense 2.7.2
Gli step da effettuare sono i seguenti:
- Creazione dei certificati (CA - Server - User)
- Configurazione del server OpenVPN
- Configurazione dell'interfaccia virtuale
- Impostazione regole di firewall
- Export della configurazione del client
Creazione dei certificati
Creazione del certificato della CA
Portarsi nel menù System > Cert Manager > CAs
Cliccare su Add
Compilare in modo preciso i campi sotto ripotati per la creazione del nostro certificato
- Descriptive Name: Nome del certificato
- Method: Create an internal Certificate Authority
- Key length: 4096
- Digest Algorithm: sha512
- Lifetime: 3650 days (10 anni)
- Country Code:
- State or Province:
- City:
- Organization:
- Email Address:
- Common Name: internal-ca
Cliccare su Save
Creazione del certificato Server
Portarsi nel menù System > Cert Manager > Certificates
Cliccare su Add
Compilare in modo preciso i campi sotto ripotati per la creazione del nostro certificato
- Method: Create an internal Certificate
- Descriptive Name: Nome del certificato
- Certificate Authority: la CA creata in precedentza
- Key length: 4096
- Digest Algorithm: sha512
- Lifetime: 3650 days (10 anni)
- Common Name: nome dns firewall
- Country Code:
- State or Province:
- City:
- Organization:
- Email Address:
- Certificate Type: Server Certificate
Cliccare su Save
Creazione della Certificate Revocation List
A questo punto è buona prassi creare anche una Certificate Revocation List che tornerà utile nel momento in cui ci sarà da invalidare dei certificati.
Portarsi nel menù System > Cert Manager > Certificate Revocation
Cliccare su Add or Import CRL in corrispondenza del nome del certificato della nostra CA
Compilare in modo preciso i campi sotto riportati per la creazione del nostro certificato
- Certification Authority: la CA creata in precedentza
- Method: Create an internal Certificate Revocation List
- Descriptive Name: CRL
- Lifetime: 730 days
- Serial: 0
Creazione del certificato User
Portarsi nel menù System > Cert Manager > Certificates
Cliccare su Add
Compilare in modo preciso i campi sotto riportati per la creazione del nostro certificato
- Method: Create an internal Certificate
- Descriptive Name: Nome del certificato (per esempio lo username dell'utente)
- Certificate Authority: la CA creata in precedentza
- Key length: 4096
- Digest Algorithm: sha512
- Lifetime: 3650 days (10 anni)
- Common Name: lo username dell'utente
- Distinguished Name:
- Country Code:
- State or Province:
- City:
- Organization:
- Email Address:
- Certificate Type: User Certificate
Se si utilizzano utenti locali al firewall la creazione del certificato può essere fatta contestualmente alla creazione dell'utente cliccando sulla voce apposita
Configurazione del server OpenVPN
Portarsi nel menù VPN > OpenVPN > Server
Cliccare su Add
Impostare i seguenti campi:
- Description: il nome descrittivo
- Server Mode: Remote Access (SSL/TSL + User Auth)
- Selezioniamo i backend di autenticazione
- Device Mode: tun
- Protocol: UDP
- Interface: WAN (interfaccia su cui viene fatto il bind)
- Local Port: 1194
- TLS authentication: YES
- Automatically generate a shared TLS authentication key: YES
- Peer Certificate Authority: Selezionare il certificato della CA appena creato
- Peer Certificate Revocation List: Selezionare la CRL appena creata
- Server Certificate: Selezionare il certificato del server appena creato
- DH Parameters Length: 4096 bits
- Encryption algorithm: CHACHA20-POLY1305 + AES-256-GCM
- Auth digest algorithm: SHA256 (256-bit)
- Hardware Crypto: selezionare una eventuale scheda di accelerazione
- Certificate Depth: One (Client+Server)
- Flaggare Strict User-CN Matching
- Flaggare Enforce key usage
- Tunnel Network: Inserire una subnet per il tunnel, non usare subnet già in uso.
- Ipv4 Local network(s): inserire le subnet locali raggiugibili tramite la VPN separandole con virgola
- Allow Compression: Refuse any non-stub compression
- Topology: One IP address per client
- Configurare eventuali impostazioni relative a DNS default domain, server DNS, NTP, NetBIOS secondo le proprie esigenze
Configurazione dell'interfaccia virtuale
Per poter utilizzare il tunnel VPN come gateway nelle roules o per creare rotte statiche, è necessario assegnare al tunnel VPN un interfaccia virtuale.
- Portarsi nel menù Interfaces > (assign)
- Nella colonna Network port selezionare ovpns1 (REMOTE ACCESS)
- Cliccare su Add per aggiungere la nuova interfaccia
- Cliccare sul nome della nuova interfaccia, tipicamente optx
- Nell'interfaccia effettuare le seguenti modifiche:
- Enable: Yes
- Description: OPENVPN_REMOTE
Cliccare su Save
Impostazione regole di firewall
A questo punto non ci resta che configurare il firewall affinchè permetta il traffico verso la wan sulla porta 1194 UDP per ricevere le connessioni dai client OpenVPN e creare le regole sull'interfaccia virtuale per permettere il traffico tra i client e il site della vpn.
Portarsi sul menù Firewall > Rules > WAN
Cliccare su Add
E compilare i seguenti campi:
- Action: Pass
- Protocol: UDP
- Destination Port Range: From OpenVPN to OpenVPN
Portarsi sul menù Firewall > Rules > OPENVPN_REMOTE
Cliccare su Add
E compilare i seguenti campi:
- Action: Pass
- Protocol: Any
- Source: Any
- Destination: Any
Export della configurazione del client
Per esportare la configurazione da inserire nel client OpenVPN sul proprio device, installare il pacchetto aggiuntivo openvpn-client-export
Una volta installato posizionarsi su VPN > OpenVPN > Client Export
Scaricare il file di configurazione cliccando sul tasto Most Clients di fianco al nome dell'utnete di nostro interesse
0 commenti:
Posta un commento