Questo tutorial ha lo scopo di guidare 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 dei devices nella rete LAN interna.
E per ultimo verrà mostrato come configurare il client OpenVPN sul PC.
PREREQUISITI
PC con sistema operativo Windows
WinBox scaricabile dal seguente link https://mikrotik.com/download
Selezionare la versione a 32 o 64 bit in base al sistema operativo utilizzato
ACCESSO CONFIGURAZIONE MIKROTIK
Accedere tramite winbox o via web (se abilitato) alla configurazione del Mikrotik.
Aprire il Terminale della Mikrotik cliccando sul pulsante New Terminal.
Come esempio utilizzerò il dominio raffaelechiatto.com.
ATTENZIONE: La VPN è configurabile e funzionante anche se il dominio e i dns non sono raggiungibili.
ATTENZIONE: SI potrebbero riscontrare latenze e comandi che andranno in timeout nella generazione dei certificati. Non vi preoccupate… I certificati saranno validi per 10 anni (3650 giorni)
CREAZIONE DEI CERTIFICATI
Eseguire i comandi elencati di seguito uno per volta per la creazione di tutti i ceritificati necessari alla VPN:
0
1
2
3
4
5
6
|
/certificate
add name=ca-template common-name=raffaelechiatto.com days-valid=3650 key-size=4096 key-usage=crl-sign,key-cert-sign
add name=server-template common-name=server.raffaelechiatto.com days-valid=3650 key-size=4096 key-usage=digital-signature,key-encipherment,tls-server
add name=client-template common-name=client.raffaelechiatto.com days-valid=3650 key-size=4096 key-usage=tls-client
|
FIRMA DEI CERTIFICATI
Procedere quindi con il Sign dei certificati eseguendo i comandi elencati di seguito:
0
1
2
3
4
5
6
|
/certificate
sign ca-template name=ca-certificate
sign server-template name=server-certificate ca=ca-certificate
sign client-template name=client-certificate ca=ca-certificate
|
ATTENZIONE: In questa fase qualche comando potrebbe andare in timeout. Non preoccuparsi e proseguire…
Per verificare che tutti i certificati creati siano corretti da Winbox aprire la sezione relativa ai ceritifcati
Cliccare Systems quindi Certificates
Se è tutto OK dovremmo vedere una schermata come quella sovrstante. La cosa importante è che i certificati abbiano le seguenti caratterstiche:
CA Cert: KLAT
CLIENT Cert: KIT
SERVER Cert: KI
ESPORTAZIONE DEI CERTIFICATI
A questo punto possiamo procedere con l’esportazione dei certificati con i seguenti comandi:
0
1
2
3
4
|
/certificate
export-certificate ca-certificate export-passphrase=””
export-certificate client-certificate export-passphrase=password12345
|
Sempre da WinBox cliccare su Files come mostrato nell’immagine sovrastante
Come si può vedere dall’immagine sottostante all’interno della cartella sono presenti 2 certificati ed una chiave
Selezionare i tre files quindi cliccare su Download
Selezionare la cartella dove salvare i tre files quindi cliccare OK. (Io per comodità ho salvato tutto sul desktop del mio PC)
CREAZIONE DEL POOL DI INDIRIZZI IP
Procedere con la creazione del pool di IP con il seguente comando:
0
1
2
|
/ip
pool add name=”vpn-pool” ranges=192.168.8.10-192.168.8.30
|
Per verificare che il Pool sia stato creato dal menù di sinistra di WinBox cliccare su IP quindi selezionare Pool
Se è tutto OK dovremmo vedere il Pool con il range di IP assegnato
CONFIGURAZIONE DEL SERVER PPP OPENVPN
Procedere con la configurazione del server PPP per accettare le richieste di connessione.
Il gateway VPN che imposterò sarà 192.168.8.250
Eseguire i comandi:
0
1
2
3
4
|
/ppp
profile add name=”vpn-profile” use-encryption=yes local-address=192.168.8.250 dns-server=192.168.8.250 remote-address=vpn-pool
secret add name=adminvpn profile=vpn-profile password= password12345
|
Procedere con la configurazione dei parametri del profilo VPN eseguendo i comandi:
0
1
2
3
4
|
/interface
ovpn-server server
set default-profile=vpn-profile certificate=server-certificate require-client-certificate=yes auth=sha1 cipher=aes128,aes192,aes256 enabled=yes
|
CONFIGURAZIONE FIREWALL
Per permettere ai client collagti in VPN di raggiungere la rete LAN bisogna eseguire i comandi che elenco di seguito:
0
1
2
3
4
5
6
7
8
9
10
11
|
/ip firewall filter
add chain=forward connection-state=established,related,untracked action=accept comment="Accetta Inoltro per connessioni stabilite e correlate"
add chain=forward src-address=192.168.8.0/24 action=accept comment="Consenti l'inoltro da parte dei client OVPN "
add chain=input connection-state=established,related,untracked action=accept comment="Accetta input per connessioni stabilite e correlate "
add chain=input protocol=tcp dst-port=1194 action=accept comment="Consenti connessione OpenVPN "
add chain=input in-interface=all-ppp action=accept comment="Consenti input da client OVPN "
add chain=input protocol=tcp dst-port=8291 action=accept comment="Consenti input Winbox "
add chain=input protocol=tcp dst-port=443 action=accept comment="Consenti HTTPS"
add chain=input action=drop comment="Drop tutte le altre connessioni"
add chain=forward action=drop comment="Drop forward per tutte le altre connessioni "
add chain=forward connection-state=invalid action=drop comment="Drop non valido per tutte le altre connessioni "
|
Quindi impostare il NAT con il seguente comando:
0
1
2
|
/ip firewall nat
add chain=srcnat src-address=192.168.8.0/24 action=masquerade comment="Consenti ai client VPN di navigare in Internet tramite la rete cloud/server"
|
CREAZIONE DEL FILE DI CONFIGURAZIONE .OVPN
Creare un file sul proprio PC chiamandolo client.ovpn quindi editarlo con il notepad e copiare all’interno del file le seguenti righe
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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-128-CBC
auth SHA1
auth-user-pass
redirect-gateway def1
verb 3
|
ATTENZIONE: sostituire al posto di IP_PUBBLICO l’indirizzo IP pubblico o il nome DNS pubblico del Mikrotik
Salvare il file e chiudere l’editor di testo.
CONFIGURAZIONE CLIENT OPENVPN
A questo punto non ci resta che installare il client OpenVPN scaricabile al seguente link
NOTA BENE: Scaricare sempre l’ultima versione disponibile. Al momento della stesura di questa guida l’ultima versione disponibile è la 2.5.3
Dopo aver installato il client OpenVPN copiare all’interno della cartella C:\Program Files\OpenVPN\config i seguentri files:
ca.crt
client.crt
client.key
client.ovpn
Se è tutto OK dovremmo vedere una scheramata come quella sovrastante.
A questo punto non ci resta che cliccare sull’icona di OpenVPN in basso a destra quindi Connetti
Basterà inserire user e password create in precedenza e la VPN verrà stabilità.
CONFIGURAZIONE SPLIT-TUNNEL OPENVPN
Uno Split-Tunnel consente di indirizzare parte del traffico attraverso la tua VPN, mentre consente al resto del traffico di non essere influenzato e di passare attraverso il normale percorso di rete. Questo può essere utile quando si desidera lasciare inalterato il resto della connessione Internet, in termini di velocità o larghezza di banda. Tuttavia, può anche essere utile se hai bisogno di mantenere l’accesso ad altre risorse sulla tua rete locale, mentre ti connetti a una risorsa specifica sulla VPN, offrendoti il meglio di entrambi i mondi.
Quando ti connetti a un server OpenVPN Community Edition e accedi ai file di configurazione di OpenVPN, puoi modificarli e implementare il tunnel diviso a tuo piacimento.
Per indicare a OpenVPN di utilizzare il tunnel VPN solo per siti Web specifici, ecco cosa bisogna fare:
Scoprire l’indirizzo IP per i siti Web che si desidera vengano instradati tramite la VPN. È possibile utilizzare il comando nslookup o caricare un sito Web di localizzazione IP (ad es. XMyIP.com), inserire l’URL del sito Web e ottenere l’indirizzo IP.
Aprire e modificare il file conf di OpenVPN (.ovpn). Qualsiasi editor di testo andrà bene.
Aggiungere i seguenti comandi:
0
1
|
route-nopull
route [indirizzo IP del sito web] 255.255.255.255
|
Salvare le modifiche e riavviare la connessione OpenVPN.
Per rimuovere lo split-tunnel, eliminare le due righe e riavviare la connessione OpenVPN.
Il risultato è che solo il traffico verso i siti Web selezionati utilizzerà il tunnel crittografato OpenVPN e il resto del traffico rimarrà non crittografato.
Potrebbe essere necessario configurare ulteriormente i server DNS VPN per arrestare le perdite DNS.
Sono Raffaele Chiatto, un appassionato di informatica a 360 gradi.
Tutto è iniziato nel 1996, quando ho scoperto il mondo dell'informatica grazie a Windows 95, e da quel momento non ho più smesso di esplorare e imparare.
Ogni giorno mi dedico con curiosità e passione a scoprire le nuove frontiere di questo settore in continua evoluzione.
Grazie mille per il suggerimento…
Grazie mille per la guida! Nell’ultima versione di RouterOS, per via di un errore ricevuto inserendo il comando, ho dovuto modificare la stringa “cipher=aes128,aes192,aes256” in “cipher=aes128-cbc,aes192-cbc,aes256-cbc” oppure “cipher=aes128-gcm,aes192-gcm,aes256-gcm” (a scelta, gcm è ritenuto più sicuro). In questo secondo caso, è necessario settare nella medesima riga anche auth=null perché gcm gestisce anche questo .Vanno poi applicate le medesime modifiche al cipher e in caso all’auth anche nel file di configurazione .ovpn .