martedì , Marzo 19 2024
Ultime Notizie
Home / Wireless & Networking / Mikrotik / Mikrotik Openvpn Server Howto

Mikrotik Openvpn Server Howto

Ciao Ragazzi sono tornato e oggi vi parlo di come creare un server Openvpn su Mikrotik.

Un po’ di nozioni teoriche che non guastano mai, per prima cosa OpenVPN come IPSEC o PPTP o L2TP è uno standard per la creazioni di connessioni VPN (Virtual Private Network) per fare in modo che due reti LAN geograficamente distanti tra loro possano essere viste come una unica rete instaurando un tunnell cifrato.

Ad oggi gli standard PPTP e L2TP per quanto ancora utilizzati sono in dismissione perchè considerati (ed è vero!) poco sicuri. Tutti questi standard possono essere implementati su device Mikrotik

Per prima cosa è necessario munirsi di certificati digitali, che potete o acquistare se vi interessano servizi Trusted di terze parti (es. Geotrust, Symantec etc.) oppure generare da soli (self-signed) nel caso la vostra OpenVPN serva per uso “casalingo”!

Bene, siamo pronti per iniziare.

Creazione Certificati Self-Signed

Per prima cosa creiamo i certificati che ci servono, installando la suite OpenSSL (disponibile per tutti i sistemi operativi) creiamo per prima cosa la certification authority (CA) keyfile:

openssl genrsa -des3 -out ca.key 4096

 

Creiamo il file .crt:

openssl req -new -x509 -days 3650 -key ca.key -out ca.crt

In questa parte vi chiederà di inserire diverse informazioni quali Country, State, Province e così via. Queste non sono informazioni importanti per il nostro certificato, quello che è davvero importante è il Common Name (CN) dove dovete inserire o il dominio al quale punta la vostra Mikrotik (es. miamikrotik.miosito.it) oppure l’indirizzo IP pubblico della vostra Mikrotik. Queste informazioni sono fondamentali per il funzionamento del sistema di certificazione.

Una volta che abbiamo il file ca.crt e il file ca.key possiamo procedere con la copia dei files tramite Winbox, FTP etc. sulla Mikrotik.

IMMAGINE

Procediamo con l’import del certificato e della chiave sulla Routerboard:

[mikrotik@testssl] /certificate> import file-name=ca.crt 
passphrase: 
     certificates-imported: 1
     private-keys-imported: 0
            files-imported: 1
       decryption-failures: 0
  keys-with-no-certificate: 0
 
[mikrotik@testssl] /certificate> import file-name=ca.key        
passphrase: 
     certificates-imported: 0
     private-keys-imported: 1
            files-imported: 1
       decryption-failures: 0
  keys-with-no-certificate: 0

Adesso andando da Winbox su System -> Certificates se accanto il nostro ca.crt ci sono le lettere KT oppure KR l’importazione è avvenuta con successo e quindi possiamo proseguire, altrimenti controllate i certificati che siano corretti come in figura:

mikrotik-certificates

Verificato questo possiamo procedere con la configurazione vera e propria.

 

Creazione Pool Indirizzi

Per prima cosa creiamo un nuovo pool di indirizzi IP, andando su IP -> Pool clicchiamo su + e impostiamo come in figura:

mikrotik-ip-pool

Applicate le modifiche andiamo a definire il profilo openvpn su PPP->Profiles come segue:

mikrotik-ppp-profile

Ovviamentese utiizzate ip diversi ricordatevi di cambiare tutto altrimenti non funziona nulla!

Fatto questo possiamo abilitare il server OVPN, sempre da PPP-> OVPN Server e configuriamo come in figura:

mikrotik-openvpn-server

Attenzione, se spuntate Require Client Certificate dovrete generare un certificato anche per ogni client vpn che create, è una procedura più lunga, ma garantisce maggiore sicurezza di una semplice autenticazione basata su username e password.

Ci siamo quasi, manca solo aggiungere gli utenti che volete ed abbiamo finito!

Andiamo su PPP->Secrets e aggiungiamo il nuovo utente:

mikrotik-secret

Abbiamo finito!

Il server Openvpn è pronto, possiamo provarlo con un client!

Di seguito vi allego per completezza un esempio di file di configurazione del client OpenVPN, nel mio caso è per linux ma si trovano tantissimi esempi in giro per la rete anche di file per sistemi operativi diversi.

remote firewall.example.com 1194 tcp-client
persist-key
auth-user-pass 
tls-client
pull
ca /home/testvpn/.cert/ca.crt
redirect-gateway def1
dev tun
persist-tun
nobind

Enjoy!

 

Info Paolo Daniele

Ingegnere delle Telecomunicazioni, appassionato di informatica fin da piccolo ho trasformato la passione in lavoro. Con il PHP faccio tutto (o quasi...) ma non disprezzo altri linguaggi all'occorrenza. Se vi piace il mio sito, o vi è utile, o vi sto simpatico, offritemi una birra!

Ti potrebbe interessare

Mikrotik Site to Site Wireguard VPN

Ciao Ragazzi, a volte ritornano! Dopo diverso tempo che non posto nulla (per motivi lavorativi!) …

22 Commenti

  1. Ciao Paolo, mi chiedevo cosa ne pensi di creare il certificato direttamente dal mikrotik.
    Ora lo testo…anche perché la l2tp-ipsec mi funziona a random

    • Paolo Daniele

      Ciao Stefano,
      da mikrotik puoi creare direttamente i self signed, ma sinceramente sono affezionato a OpenSSL!
      Per la l2tp-ipsec vedi se ti può essere utile la mia guida, in caso ne parliamo!

  2. Paolo Tomiato

    Ciao, una cosa non mi è chiara: come mai si imposta un pool con range da 10 a 20 e poi al client si da indirizzo local: 5 remote: 6?

    • Paolo Daniele

      Ciao Paolo,
      in realtà tu puoi usare sia il pool che gli ip definiti da te. Nell’esempio ho fatto un mix definendo sia il pool che l’ip1 statico! A presto,
      P.

      • Paolo Tomiato

        Capito, quindi se nella configurazione del secrets non inserisco nessun ip si prende l’ip dal pool.
        Altra domanda: con lo smartphone android e la connessione wifi si connette alla vpn se invece uso il 4g va in timeout (ho provato un paio di clients ma succede sempre la stessa cosa)

        • Paolo Daniele

          mmm, come client ti consiglio di usare sempre OpenVPN Connect per android che è perfetto, ma è strano che ti va in timeout. Potrebbe essere la porta utilizzata che non gli piace? Oppure prova a cambiare il protocollo da tcp a udp.(ricordati di cambiare il file di config del client). Ricorda che nel file di config android deve essere incluso il CA e in alcuni casi anche la KEY. Fammi sapere in caso che ti mando una config tipo.

          • Paolo Tomiato

            Ho provato con il protocollo UDP ma non cambia niente.
            Intanto provo con un pc di casa…

          • Paolo Tomiato

            No, non riesco a connettermi da fuori. Se collego il cell alla rete interna la vpn si connette se invece uso i dati del telefono o la rete wifi di casa, non si connette.

            PS: che glorioso cognome che porti! 😉

          • Paolo Daniele

            Ti ho mandato una mail. Fammi sapere 😉

  3. Ciao Paolo,
    ho seguito la tua guida e riesco a connettermi da windows al router.
    Il problema che riscontro è che non riesco a sfogliare la rete, la vpn è instaurata correttamente.
    Hai idea di cosa potrebbe essere???

    Grazie in anticipo e complimenti per tutte le guide che redigi.

    Stefano

    P.S.

    Di seguito il mio file di configurazione:

    client
    dev tun
    proto tcp
    remote xxxxxx.no-ip.info 1194
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    cipher AES-256-CBC
    ca ca.crt
    verb 3
    pull
    auth-user-pass

    • Paolo Daniele

      Ciao Stefano,
      ma i vari ip della tua rete li raggiungi? Nel senso se fai un ping risponde?
      Perchè in genere le cerchi di accedere ad una share con un nome NetBios via VPN non ci riuscirai, ma se ci accedi con indirizzo IP ti fa accedere?
      Perchè potrebbe essere che il router non stia ruotando correttamente la subnet!

      • Ciao Paolo,
        scusa il ritardo della risposta!
        no purtroppo non pingo niente nemmeno ip….
        probabilmente è un problema di route!

  4. Buona giornata Paolo, ho seguito la guida, tutto ok se mi connetto da client openVPN windows, se utilizzo quello per android ho il seguente errore:
    EVENT: CORE_THREAD_ERROR info=’mbed TLS: error parsing config private key : PKCS5 – Requested encryption or digest alg not available’

    il file .ovpn
    client
    dev tun
    proto tcp-client
    remote XXX.XXX.XXX.XXX
    port 1194
    nobind
    persist-key
    persist-tun
    tls-client
    remote-cert-tls server
    ca CA.crt
    cert client1.crt
    key client1.key
    verb 4
    mute 10
    cipher AES-256-CBC
    auth SHA1
    auth-user-pass auth.cfg
    auth-nocache
    redirect-gateway def1

    Ringrazio per l’aiuto

    • Paolo Daniele

      Ciao,
      ti rispondo come ti ho scritto nella mail che magari è utile a qualcuno. Il file allegato è un template per Linux, basta trovarne altri che vanno bene per Android e vedi che funzionerà tutto.

  5. Salve Paolo , Ho un 951Ui-2nD vorrei usarlo come client OPENVPN.
    Hai per caso in programma di farne una ?

    Sarebbe molto interessante riuscire ad usarlo come client.

    Volevo chiederti se tecnicamente è fattibile riuscire ad utilizzare diversi client vpn da assegnare rispettivamente ad ogni porta lan della routerboard.
    e se lo stesso è fattibile con il wifi.

    Esempio assegno alla lan2 che tutto il traffico su quella porta vada in PROVIDER OPENVPN1
    e avedno un modem lte configurato sulla porta usb il traffico del modem lte vada n PROVIDER OPENVPN2 LTE.

    Ache se in un primo momento ho capito che sono configurazioni davvero ostiche e non da newbie.

    A presto

    • Paolo Daniele

      Ciao,
      non ne ho fatte semplicemente perchè usare la mikrotik come client openvpn non è conveniente.
      Ci sono diverse problematiche e un peggioramento delle prestazioni esagerato.
      Anche il file di config è particolare, per cui ho sempre preferito usarla come client per altri tipi (IPSec, L2TP etc.)
      Usare n client è fattibile purchè tu abbia n sottoreti diverse e la mikrotik sia il default gw di ogni subnet, ma ti stai buttando su una strada che è un groviglio di rovi appuntiti, io non lo farei!

  6. francesco

    Salve, ho trovato molto interessante la sua guida. Attualmente ha descritto come autenticarsi lato client con user e password, io invece ho creato i certficati per il client. Potrebbe indicare cosa configurare lato client per l’auth con certificati?grazie

    • Paolo Daniele

      Salve Francesco,
      sinceramente non ho mai usato mikrotik per autenticare cert VPN. Tieni conto che il client sulla mikrotik è in versione molto basilare, per cui per fare qualcosa di più avanzato ti consiglio un server VPN “vero”.

  7. Marco Serioli

    Ciao, ho una domanda probabilmente banale.

    Posso usare il mikrotik come server openvpn, anche se questo non è default gw della rete?

    Il tutto nasce dal fatto che la mia vodafone station è una ciofeca nella gestione vpn.. funziona qualche giorno ma poi ad un certo punto si incastra e non instaura più la connessione fino al riavvio.

    Allora ho pensato di mettere il mikrotik sulla rete della station con il solo scopo di fare openvpn server. Ho configurato openvpn e la connessione funziona. Raggiungo il mikrotik sull’Ip della rete con vodafone station ma non vado oltre. Poiché i client siano raggiungibili da vpn devono impostare il mikrotik come gw. E qui temo non ci siano alternative, ma è questo che vorrei evitare di fare.

    La mia idea sarebbe quella di usare il mikrotik senza stravolgere la rete attualmente presente, spero di essermi spiegato.

    Grazie ed in bocca al lupo per il blog

    • Paolo Daniele

      Ciao!
      Perdona il ritardo!
      Si la puoi usare lo stesso basta che natti la porta che scegli per la OpenVPN dal router Vodafone alla mikrotik!
      P.

  8. mihai anndre

    io riesco a fare un connesone mikrtoik to mikrotik
    se pingo dal tool mikrotik sulla interfaccia open vpn funziona
    ma da tutto no! cosa sbaglio?

Lascia un commento

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