locked Connessione OpenVPN tra router Teltonika RUT2xx o RUT9xx

  • marcom
  • Avatar di marcom Autore della discussione
  • Offline
Di più
13/12/2018 15:33 - 13/12/2018 16:51 #1538 da marcom
Introduzione
Transport Layer Security (TLS) è un protocollo crittografico che fornisce sicurezza delle comunicazioni su una rete di computer ed è anche il successore di SSL.
Il protocollo TLS mira principalmente a garantire la privacy e l'integrità dei dati tra due applicazioni per computer comunicanti.

Generazione di certificati
I nuovi router RUTxxx sono dotati di Easy-RSA, un software in grado di generare certificati TLS, già installato all'interno del dispositivo, in modo da poter generare solo certificati all'interno del router. Tuttavia, i router hanno una quantità relativamente piccola di RAM (Random access memory) rispetto ai PC moderni, il che significa che il processo di generazione di un parametro Diffie Hellman Parameters (una chiave utilizzata per crittografare le comunicazioni successive utilizzando un codice chiave simmetrico) potrebbe richiedere molto molto tempo, soprattutto se quel file è di grandi dimensioni.

Lista dei comandi utilizzati
$ build-ca               Genera un certificato di root
$ build-key              Crea una coppia di chiavi certificato/privata utilizzando un certificato radice generato localmente
$ build-key-server       Crea una coppia di chiavi certificato/privata specifica per server utilizzando un certificato radice generato localmente
$ build-dh               Genera i parametri Diffie-Hellman per il lato server di una connessione SSL/TLS



Per utilizzare Easy-RSA all'interno del router, connettersi al dispositivo tramite l'interfaccia della riga di comando (CLI) o SSH.
La CLI può essere trovata nel WebUI del router, sotto Services. Per connettersi al router tramite SSH, utilizzare l'app Terminale (digitare ssh root@192.168.1.1; sostituire 192.168.1.1 con l'indirizzo IP LAN del router) se si utilizza un sistema operativo basato su Linux. Oppure scarica PuTTY, un client SSH e telnet gratuito, se utilizzi Windows.
In ogni caso, le informazioni di accesso sono usename: root; password: password amministratore del router.


vars

Puoi iniziare il processo di generazione di nuovi certificati.
Il primo passo è modificare il file vars, che si trova nella directory Easy-RSA - /etc/easy-rsa/. Il file vars contiene variabili relative alle chiavi appena generate. Modifica il file vars in modo che rifletta le tue esigenze.
Le principali variabili in questione sono

KEY_COUNTRY
KEY_PROVINCE
KEY_CITY
KEY_ORG
KEY_EMAIL
KEY_OU
KEY_SIZE


Imposta questi a tuo piacimento e lascia il resto come predefinito.
KEY_SIZE specifica la dimensione delle chiavi generate. Le chiavi di dimensioni maggiori forniscono una protezione migliore, ma rallentano il processo di negoziazione TLS e richiedono molto tempo per la creazione.

Per modificare il file vars:
# vi /etc/easy-rsa/vars


Una volta che hai finito con il file vars, esegui anche questi comandi:
# source /etc/easy-rsa/vars
# clean all


Autorità di certificazione (CA)
Il passo successivo è generare un certificato/chiave CA master. Per fare ciò, eseguire questo comando:
# build-ca




Una volta eseguito questo comando, ti verrà richiesto di inserire alcune informazioni di base sul certificato (come mostrato nell'esempio sopra).
Se si salta tutto, il certificato verrà generato con valori predefiniti che, come discusso in precedenza, possono essere impostati nel file vars. L'unico parametro che deve essere inserito in modo esplicito è il Common Name (WIKI-CA nell'esempio sopra).



Parametri Server, Clients e Diffie Hellman
La CA che abbiamo creato in precedenza verrà utilizzata per firmare i certificati che genereremo in questa sezione. Innanzitutto, consente di creare un certificato e una chiave per il server OpenVPN.
# server build-key-server

La seconda parte di ogni stringa è il nome comune della chiave del certificato; nell'esempio ho usato il server; sostituiscilo con un nome comune che rispecchi le tue esigenze.


Successivamente, crea certificati/chiavi per i client OpenVPN:
# build-key client1
# build-key client2
# build-key client3


Questo è quasi identico al server, ma invece di build-key-server, viene usato il comando build-key e come prima, seguito dal Common Name del client. Puoi generare chiavi distinte per tutti i client che desideri. Dopo aver generato ciascuna chiave, ti verrà chiesto di firmare e impegnare la chiave. In entrambi i casi, è sufficiente digitare y e premere il tasto Invio. Questo viene fatto per indicare che i certificati e le chiavi sono firmati dalla tua CA principale e quindi verranno autenticati quando i client si connettono al server.


Infine, dovrai generare un file di parametri di Diffie Hellman. Il metodo di scambio di chiavi Diffie-Hellman consente a due parti che non hanno una conoscenza precedente l'una dell'altra per stabilire congiuntamente una chiave segreta condivisa su un canale non sicuro. Non dimenticare di impostare KEY_SIZE nel file vars.
# build-dh

Nota che una chiave lunga 1024 bit impiegherà circa 8 minuti per essere costruita all'interno del router e una chiave lunga 2048 bit impiegherà circa 1 ora. Questo non dovrebbe essere un problema quando si generano i parametri DH su un PC, ma una chiave lunga 4096 bit può ancora giocare qualche minuto o più per la costruzione.


Estrazione dei certificati/chiavi dal router
Se si utilizza un sistema operativo basato su Linux, l'estrazione di file dal router è semplice. Basta andare nella directory del PC in cui si desidera spostare i file, fare clic con il tasto destro del mouse in qualsiasi punto e scegliere l'opzione Apri nel terminale. Nella riga di comando Terminale utilizzare il comando Copia protetta (scp) per copiare i file dal router. Il comando completo dovrebbe essere simile a questo:
$ scp root@192.168.1.1: /etc/easy-rsa/keys/* ./

root@192.168.1.1: /etc/easy-rsa/keys/* specifica il percorso in cui si trovano i certificati/chiavi (sostituisci l'indirizzo IP con l'IP LAN del tuo router); l'asterisco (*) specifica che si desidera copiare tutto il contenuto della directory /etc/easy-rsa/keys/; il ./ indica che si desidera copiare il contenuto nella directory in cui ci si trova al momento.

Se si utilizza Windows, è possibile copiare i file utilizzando WinSCP, un freeware open source SFTP, SCP e client FTP per il sistema operativo Windows. Utilizzare le stesse informazioni di accesso con WinSCP come con CLI o SSH. Una volta connesso al router con WinSCP, copiare i file dovrebbe essere abbastanza semplice: basta spostarsi nella directory /etc/easy-rsa/keys/, selezionare i file che si desidera copiare e trascinarli nella directory sul PC dove vorresti memorizzarli


Esempio configurazione OpenVPN

Generazione di certificati / chiavi TLS

Una connessione che utilizza TLS richiede più certificati e chiavi per l'autenticazione:

Server OpenVPN
Il file del certificato radice (autorità di certificazione)
Certificato del server
Chiave del server
Parametri Diffie Hellman

Client OpenVPN
Il file del certificato radice (autorità di certificazione)
Certificato cliente
Chiave del cliente


Configurazione

Ora possiamo iniziare a configurare le istanze Server e Client OpenVPN.
Per questo esempio creeremo una connessione di tipo TUN (Tunnel) che utilizza il protocollo UDP per il trasferimento dei dati e TLS per l'autenticazione.
Utilizzeremo due router RUT: RUT1 (Server; IP LAN: 192.168.1.1; WAN (pubblico statico) IP: 193.186.223.42) e RUT2 (Client; IP LAN: 192.168.2.1); che sarà connesso alla rete virtuale (con l'indirizzo virtuale: 10.0.0.0):




Per riassumere, basta assicurarsi che Server e Client utilizzino gli stessi parametri (stessa autenticazione, stessa porta, stesso protocollo, ecc.). Un altro aspetto importante è l'indirizzo IP della rete virtuale (10.0.0.0 in questo caso). Al server e ai client connessi verrà assegnato l'indirizzo IP che appartiene a questa rete. Se stai creando una rete eccezionalmente grande, potresti voler cambiare la maschera di rete della rete virtuale.

Dal lato client, assicurarsi di inserire l'indirizzo host / IP remoto corretto (193.186.223.42 in questo caso). Questo è l'indirizzo IP pubblico del server, non l'indirizzo IP virtuale.




Riferimenti Teltonika in inglese

wiki.teltonika.lt/view/How_to_generate_T...tificates_(Linux)%3F
wiki.teltonika.lt/view/How_to_generate_T...ficates_(Windows)%3F
wiki.teltonika.lt/view/OpenVPN_configuration_examples

Marcom S.r.l.
via Mezzacampagna, 52 int.29
37135 - Verona (VR)
Allegati:
L\'Argomento è stato bloccato.
Powered by Forum Kunena
Avviso
  • I prezzi sul sito sono IVA esclusa.