OpenVPN Server su dispositivi Mikrotik (RouterBOARD)

Pubblicità

In questo articolo vi guiderò passo passo nella configurazione di un server OpenVPN su un router Mikrotik. Verrà illustrata anche la configurazione del firewall per permettere ai client connessi in VPN di raggiungere i dispositivi nella rete LAN interna. Inoltre, come step aggiuntivo, verrà descritto come abilitare la connettività verso la rete internet, veicolando tutto il traffico tramite la VPN oppure con lo split tunnel.

Prerequisiti

WINBOX (tool di accesso/configurazione per dispositivi Mikrotik)

Configurazione

Accedere tramite Winbox al dispositivo che si vuole utilizzare come server OpenVPN. Successivamente aprire una nuova finestra “Terminale” (New Terminal) dalla barra di navigazione di sinistra.

Una volta aperta la finestra terminale, iniziamo creando i certificati necessari con validità di 10 anni (3650 giorni):

  • CA ROOT (self-signed)
  • certificato server
  • certificato di un client e chiave privata per la connessione remota
/certificate

add name=ca-template common-name=miodominio.it days-valid=3650 key-size=4096 key-usage=crl-sign,key-cert-sign
add name=server-template common-name=server.miodominio.it days-valid=3650 key-size=4096 key-usage=digital-signature,key-encipherment,tls-server
add name=client01-template common-name=client01.miodominio.it days-valid=3650 key-size=4096 key-usage=tls-client

A questo punto, per il certificato “CA ROOT”, prima di procedere alla firma, potete aggiungere tramite “System > Certificates i vari dettagli del certificato (country, state, locality, …) e spuntare la voce “Trusted”:

La voce “Trusted” va spuntata anche per il certificato “client01”.

Tornando ora alla finestra “Terminale”, possiamo procedere alla firma dei certificati tramite la nostra CA ROOT self-signed:

/certificate

sign ca-template name=ca-certificate
sign server-template name=server-certificate ca=ca-certificate
sign client-template name=client01-certificate ca=ca-certificate

I comandi digitati potrebbero richiedere diverso tempo, che sarà variabile in base alle performance del dispositivo Mikrotik che state usando e dal carico del sistema.

Al termine, possiamo verificare che i certificati siano effettivamente pronti tramite la “System > Certificates”:

In sostanza, verificate che i certificati generati abbiano le seguenti caratteristiche:

La cosa importante è che i certificati abbiano le seguenti caratterstiche:

  • CA Cert: KLAT (trusted self-signed)
  • CLIENT Cert: KIT (trusted)
  • SERVER Cert: KI

Ora possiamo procedere all’esportazione dei certificati per poter poi configurare una VPN client. Esportiamo solo la CA e il client generati:

/certificate
export-certificate ca-certificate export-passphrase=""
export-certificate client01-certificate export-passphrase="lamiapassword"

Possiamo scaricare i file sul PC locale tramite la gestione file presente nella WINBOX (clic destro sopra al file e scegliamo “download”):

Questi primi passaggi ci hanno consentito di generare i certificati necessari per configurare il server OpenVPN. Procediamo ora con la configurazione vera e propria del server VPN.

Creazione pool di indirizzi IP per la VPN

Sempre dal terminale, digitiamo i seguenti comandi:

/ip
pool add name=”ovpn-pool” ranges=192.168.88.10-192.168.88.30

Configurazione del server PPP OpenVPN

Configuriamo ora il server OpenVPN, specificando come gateway e DNS l’indirizzo 192.168.88.250. Creeiamo contestualmente anche un “secret”, cioè un account di accesso per autenticarci.

/ppp
profile add name=”ovpn-profile” use-encryption=yes local-address=192.168.88.250 dns-server=192.168.8.250 remote-address=vpn-pool
secret add name=ovpnuser01 profile=ovpn-profile password=lamiapassword

Non rimane che creare il server OpenVPN (utilizzare i ciphers più sicuri, aes256 e sha256 almeno, disabilitiamo tutti gli algoritmi più datati che sono affetti da note vulnerabilità):

/interface
ovpn-server server
set default-profile=ovpn-profile certificate=server-certificate require-client-certificate=yes auth=sha256 cipher=aes256 enabled=yes

Configurazione del firewall

/ip firewall filter
add chain=input protocol=tcp dst-port=1194 in-interface-list="WAN" action=accept comment="Consenti connessione OpenVPN da interfacce WAN"
add chain=forward src-address=192.168.88.0/24 action=accept comment="Consenti l'inoltro da parte dei client OVPN"

[Opzionale] Se vogliamo che i client remoti che si connettono alla VPN possano navigare verso internet va aggiunta anche la seguente configurazione:

/ip firewall nat
add chain=srcnat src-address=192.168.88.0/24 action=masquerade comment="Consenti ai client VPN di navigare in Internet"

Ci siamo, non resta che creare ora il file di configurazione .ovpn da importare poi nel client remoto che vogliamo utilizzare per la connessione.

Creazione file di configurazione OVPN

Apriamo un editor di testo (notepad, sublime, notepad++, …) e creiamo un file client.ovpn con la seguente struttura (attenzione, sostituire IP_PUBBLICO con un indirizzo o un FQDN valido per raggiugere il vostro dispositivo Mikrotik):

client
dev tun
proto tcp
remote IP_PUBBLICO 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
cipher AES-256-CBC
auth SHA256
auth-user-pass
redirect-gateway def1
ignore-unknown-option 
verb 3

Dopo aver installato il client OpenVPN sul dispositivo che intendete utilizzare per la connessione remota, posizioniamo ora i 4 file in una cartella (certificato CA, certificato client, chiave privata client, configurazione .ovpn), apriamo il client OpenVPN ed importiamo il file “client.ovpn” appena creato.

Se tutto è stato eseguito correttamente, vi verrà chiesto di inserire username/password e la chiave di cifratura usata per esportare il certificato client. Username e password sono quelli che sono stati impostati nel “secret” creato qualche riga più in alto.

[OPZIONALE] Configurazione dello split tunnel

Lo split tunnel consente di indirizzare parte del traffico attraverso la VPN, mentre consente al resto del traffico di “uscire” attraverso il normale percorso di rete (default gateway del client che stiamo utilizzando). Questa configurazione può essere utile quando si desidera lasciare inalterato il resto della connessione Internet, in termini di velocità o larghezza di banda. Può essere utile se si ha la necessità di mantenere l’accesso ad altre risorse sulla tua rete locale, mentre ti connetti a una risorsa specifica sulla VPN. In sostanza si creano delle “route” che consentono di “girare” il traffico verso la VPN, lasciando inalterato il default gateway del client.

Per configurare lo split tunnel, occorre modificare il file “client.ovpn” creato in precedenza, aggiungendo questa parametrizzazione:

route-nopull
route 192.168.88.20 255.255.255.255
route 192.168.88.55 255.255.255.255

Alcuni dettagli:

  • route-nopull: non vengono scaricate ed applicate le regole di routing dal server VPN
  • route “successive”: consentono di creare percorsi di rete specifici da direzionare verso la rete VPN

Salvare le modifiche e riavviare la connessione OpenVPN.

Tag

Pubblicità

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *