Configurare un server OpenVPN su Mikrotik è abbastanza semplice e veloce.
Le uniche limitazioni importanti sono l’assenza della modalità UDP e dell’autenticazione TLS. Attualmente l’autenticazione è possibile esclusivamente attraverso utente e password.
Tutti i passi qui illustrati vengono eseguiti attraverso Winbox.
1. Creazione Certification Authority e certificato Mikrotik
La prima fase consiste nella creazione di una Certification Authority abilitata ad emettere certificati, in questo caso necessaria per il server OpenVPN. In questa guida verranno utilizzati certificati autofirmati.
Dal menu System, aprire Certificates. Creare ora un nuovo certificato CA, compilando la scheda General come di seguito indicato:

Si consiglia di modificare i campi Country, Locality ed Organization. Il certificato CA avrà validità di 10 anni.
Dalla scheda successiva Key Usage, spuntare le seguenti voci: crl sign, key cert. sign.
Fatto ciò, possiamo salvare con Apply il certificato e firmarlo cliccando su Sign. Nella finestra di firma dovremmo soltanto valorizzare il campo CA CRL Host con l’indirizzo IP (privato o pubblico) del nostro router ed infinite cliccare su Start.
Ad operazione completata avremo nella lista dei certificati, il nostro certificato CA riportante i flag KLAT (rispettivamente: chiave privata, CRL, authority e trusted).
Esportare il certificato CA in quanto sarà necessario per la generazione per il file di configurazione dei client. Cliccando con il tasto destro del mouse sul certificato, selezionare Export e, dopo aver dato un nome al file, confermare l’esportazione.

Scaricare il file appena generato dal menu Files e conservarlo sul proprio computer.
Passiamo ora alla creazione del certificato di un certificato per il router Mikrotik e firmiamolo attraverso la CA creata.

Nella scheda Key Usage spuntare le voci come di seguito illustrato:

Salviato e firmiamo il certificato attraverso la Certification Authority creata in precedenza. Il certificato riporterà ora i flag KLA.
2. Creazione Pool IP
Andiamo su IP -> Pool, per la configurazione del range di IP che verranno assegnati ai client della nostra VPN.
Nel nostro caso creeremo una pool chiamata “ovpn-pool” con il seguente range IP: 192.168.90.100-192.168.90.200
Andremo dunque ad utilizzare un range di 100 indirizzi IP nella subnet 192.168.90.0/24.
3. Creazione profilo PPP
La penultima fase per l’abilitazione del server OpenVPN consiste nella creazione di un profilo PPP, ovvero andremo a definire i parametri di configurazione degli utenti che creeremo successivamente. In questa guida utilizzeremo un unico profilo per tutti gli utenti.
Creeremo dunque, dal menu PPP -> Profiles, un nuovo profilo ovpn-profile così definito:

Abbiamo creato un nuovo profilo con cui diremo ai client che il gateway VPN sarà 192.168.90.1 (il router) ed acquisiranno un IP dal range ovpn-pool.
4. Configurazione ed abilitazione server VPN
Dal menu PPP -> Interface, cliccare su OVPN Server.
Abilitare il server OpenVPN spuntando la voce Enabled, cambiare se necessario la porta del server OpenVPN, impostare il profilo di default sul profilo ovpn-profile, selezionare il certificato Mikrotik, e scegliere come metodo di autenticazione solamente sha1 e come cifrario aes 256.
Infine cliccare su OK per salvare la configurazione ed abilitare il server OpenVPN.
5. Creazione utente VPN
Aprire il menu PPP -> Secrets per creare un nuovo utente, compilando i seguenti campi:
- Name: nome utente
- Password: password dell’utente
- Service: ovpn
- Profile: ovpn-profile
Può essere utile definire un remote address, ovvero forzare un indirizzo IP che acquisirà ad ogni connessione l’utente, per esempio per poter gestire regole di firewall basate sugli utenti.
File di configurazione client OpenVPN
Di seguito un esempio di file di configurazione client VPN secondo la configurazione effettuata nella guida:
proto tcp-client
remote IP_ROUTER 1194
dev tun
script-security 2
nobind
persist-key
auth-user-pass
tls-client
verb 1
cipher AES-256-CBC
auth SHA1
pull
<ca>
INCOLLARE QUI IL CONTENUTO DEL CERTIFICATO CA
</ca>
Sostituire IP_ROUTER con l’indirizzo IP pubblico del router, eventualmente cambiare la porta 1194 se variata nella configurazione del server OpenVPN ed incollare il contenuto del certificato CA scaricato precedentemente all’interno dei tag <ca></ca>.
Configurazione via riga di comando
# CREAZIONE CERTIFICATO CA
/certificate add name=CA country=Provincia state=Italia locality=Citta organization="Nome Organizzazione" unit="Dipartimento IT" common-name=CA key-size=2048 days-valid=3650 trusted=yes key-usage=crl-sign,key-cert-sign
# FIRMA CERTIFICATO CA
/certificate sign CA ca-crl-host=192.168.1.1
# ESPORTAZIONE CERTIFICATO CA
/certificate export-certificate CA
# CREAZIONE CERTIFICATO
/certificate add name=Mikrotik country=Provincia state=Italia locality=Citta organization="Nome Organizzazione" unit="Dipartimento IT" common-name=Mikrotik key-size=2048 days-valid=3650 trusted=yes key-usage=digital-signature,key-encipherment,data-encipherment,key-cert-sign,crl-sign,tls-client,tls-server
# FIRMA CERTIFICATO
/certificate sign Mikrotik ca=CA
# CREAZIONE POOL IP
/ip pool add name=ovpn-pool ranges=192.168.90.100-192.168.90.20
# CREAZIONE PROFILO PPP
/ppp profile add name=ovpn-profile local-address=192.168.90.1 remote-address=ovpn-pool
# CONFIGURAZIONE ED ABILITAZIONE SERVER OPENVPN
/interface ovpn-server server set enabled=yes default-profile=ovpn-profile certificate=Mikrotik auth=sha1 cipher=aes25
6
# CREAZIONE UTENTE VPN
/ppp secret add name=mario.rossi password=Rossi2021 service=ovpn profile=ovpn-profile
Nella creazione certificati in country non accetta provincia ma solo 2 caratteri esempio IT
Grazie per la segnalazione! Effettivamente l’ho dato per scontato nella stesura del documento.