Configurare OpenVPN sulla SIF TeAm

Ovpntech logo s

Introduzione

Questa guida è stata creata per le persone che non hanno molta dimestichezza con gli applicativi software di rete e sicurezza delle reti e cercherà di rendere il più semplice possibile la configurazione di una rete casalinga con openvpn. Se riscontrate degli errori potete contattarmi tramite il sito o il forum.

Cosa è e cosa serve OpenVPN

OpenVPN è un'alternativa opensource e gratuita per la creazione di una Rete Privata Virtuale (VPN: Virtual Private Network), ossia una rete privata che usa un mezzo di trasmissione pubblico come Internet. Tramite una VPN sarà possibile virtualizzare la rete internet in modo tale che i pc appartenenti alla vpn sembrino connessi a una rete lan anche se in realtà i pc si trovano su reti diverse.

Perchè usare una VPN

OpenVPN viene usato per molte applicazioni una di queste è la possibilità di accedere a servizi sparsi in varie reti come se questi stiano all'interno della propria rete e quindi accedere a cartelle condivise con samba, nfs o webserver, servizi ftp semplicemente accedendo tramite ip della stessa classe della rete domestica. E' possibile usare openvpn quando ad esempio abbiamo una rete lan che ha ad esempio 5 pc ma che utilizza 1 solo ip pubblico per la rete internet e quindi si avrebbero un po' di difficoltà per accedere dell'esterno ai servizi di ogni singolo pc!! Problema che può essere risolto anche con openvpn creando appunto una rete virtuale e accedendo ai pc direttamente tramite l'ip impostato dalla vpn. OpenVPN come detto sopra permette la creazione di una lan attraverso un mezzo di trasmissione pubblico e questo comporta dei rischi dal punto di vista della sicurezza poichè i dati transitando per un mezzo pubblico potrebbero essere letti e utilizzati da persone che non hanno buone intenzioni per questo motivo openvpn usa la crittografia in genere con chiave asimmetrica AES ma è possibile anche utilizzare vari tipi di algoritmi per rendere sicura la nostra connessione.

L'uso di VPN nel nostro ambito

Per quanto riguarda i nostri appassionati di satellite, digitale terrestre e oltre, l'uso di openvpn non si allontana da quelli descritti prima infatti sarà possibile creare una rete virtuale fra uno o più ricevitori e la propria rete domestica magari con i pc del proprio ufficio o di un'altro appartamento in modo tale da avere films, mp3 e tanto altro sempre a portata di mano direttamente usando la vpn e accedendo ai ricevitori o pc tramite ip della rete vpn e questo in totale sicurezza.

Premessa installazione/configurazione OpenVPN

Per semplicità e per descrivere il meglio possibile l'uso di openvpn nell'ambito "satellitare" spiegherò come configurare e installare openvpn in una rete di soli ricevitori in modo tale da esporre sia la configurazione con ricevitore satellitare che fa da server e ricevitore satellitare che fa da client poichè la procedura da seguire per l'installazione e configurazione sui pc e ampiamente documentata in rete.

Come installare OpenVPN sull'immagine SIF TeAm

Per installare openvpn nelle immagini SIF TeAm basate su Enigma2 è molto semplice, basta usare il Packages Manager dal Menu della SIF TeAm oppure entrare da telnet/ssh sul ricevitore e lanciare il comando ipkg install openvpn dalla shell . A questo punto dobbiamo configurare il server openvpn e i client che si connetteranno e per fare questo bisognerà generare i vari certificati per il server e i clients.

Il sistema dei certificati

Per funzionare il sistema ha bisogno di vari certificati:
I certificati relativi alla CA (Certification Autority) con cui firmeremo tutti gli altri;
I certificati relativi al server (chiave privata e certificato);
I certificati relativi al client o ai clients (chiave privata e certificato);
I certificati servono per effettuare l'autenticazione nel sistema e le chiavi private dovranno essere custodite solo ed esclusivamente nel sistema per il quale sono state fatte(client o server) altrimenti altri utenti non autorizzati potrebbero accedere alla vpn e quindi queste chiavi dovranno essere custodite con cura.
Per creare i certificati abbiamo bisogno di utilizzare un pc con linux o windows (io userò linux in particolare la distribuzione ubuntu).

Usare Linux per Generare le chiavi e certificati

Sui ricevitori non esistono i tools per generare le chiavi poichè in genere si tende a risparmiare lo spazio della memoria non volatile inserendo solo le applicazioni indispensabili, per questo motivo usiamo una distribuzione linux per generare le chiavi! Adesso iniziamo con la nostra configurazione aprendo una shell di linux e cominciando ad inserire un po' di comandi...
Per generare le chiavi occorre installare i tools che lo permettono, nella distribuzione ubuntu basterà installarli con il solito comando apt-get install, in particolare installeremo openvpn con apt-get install openvpn.
Fatto questo copiare in /tmp la cartella /usr/share/doc/openvpn/examples/easy-rsa/2.0/ (comando cp -a [path]) che contiene tutti i tools che fanno al caso nostro.
A questo punto entrare nella cartella /tmp/2.0 (cd [path]) ed editiamo il file vars con uno dei tanti editor come nano o vi e posizioniamoci verso la fine del file dove troveremo queste informazioni:

export KEY_COUNTRY="IT"
export KEY_PROVINCE="Italy"
export KEY_CITY="Rome"
export KEY_ORG="SIFTeAm"
export KEY_EMAIL="mail@mailprovider.ext"
Editare le informazioni inserendo i dati più consoni alla vostra persona dopo di che uscire dall'editor e salvando le informazioni (nano Ctrl+X -> Yes, vi ESC -> :x).
Adesso bisognerà dare permessi di esecuzione al file vars che setterà le variabili di ambiente utili per generare il certificato CA:
chmod 777 vars
fatto questo eseguiamo il file vars con il comando ./vars (bisogna trovarsi all'interno della cartella /tmp/2.0/ dove è posizionato il file vars), adesso lanciamo il comando ./clean-all se l'esecuzione di quest'ultimo comando vi crea problemi create la cartella keys all'interno della cartella /tmp/2.0 e poi rieseguite il comando ./clean-all.
Adesso possiamo generare il nostro certificato e la chiave privata per la Certification Autority eseguendo il comando ./build-ca a questo punto dentro la cartella keys avremo i nostri file ca: ca.key e ca.crt, se vedete anche altri file lasciateli li e ignorateli perchè non serviranno al nostro scopo ma sono utili allo script che genera le chiavi.

Adesso bisognerà generare i certificati relativi al server firmandoli con il certificato appena creato per farlo posizionarsi sempre dalla shell andare sulla cartella /tmp/2.0/ ed eseguire il comando ./build-key-server server (server è un nome che ho dato io ma voi potete anche mettere pluto o qualsiasi altro nome), dopo aver eseguito questo comando a video verrà visualizzata una procedura per l'inserimento dei dati

Organization Name (eg, company) [SIF TeAm]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [server]:server
Email Address [mail@mailprovider.ext]:
potete premere sempre invio in modo tale che il certificato venga generato con le informazioni default inserite nel file vars fatta eccezione per il Common Name che in questo caso sarà il nome server che dovrebbe già essere l'informazione default che corrisponde al nome di fantasia dato come parametro al comando build-key-server.
Inserite queste informazioni lo script continuerà con altro testo che ci chiederà se firmare il certificato con il certificato dell'autority precedentemente creato:
Certificate is to be certified until Mar 25 18:10:53 2018 GMT (3650 days)
Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Alla richiesta dello script digitare le lettera y e premere invio, fatto questo il certificato del server sarà stato creato e nella cartella keys avremo altri file chiamati server.crt e server.key (rispettivamente certificato e chiave privata del server). A questo punto non rimane che generare le chiavi per i clients che si connetteranno al server e per farlo dovremo utilizzare un'altro comando

Generiamo i certificati e le chiavi per i Clients

Generate le chiavi per il server dobbiamo generare una coppia di chiavi per ogni clients connesso alla vpn e per farlo basterà eseguire un comando sempre dalla cartella /tmp/2.0 precedentemente creata: il comando è ./build-key [nome client] dove per nome client va specificato il nome del client ad esempio possiamo mettere per semplicità client1 e quindi il comando sarà ./build-key client1.
Lanciando il comando sopra descritto verrà eseguita una procedura simile a quella descritta sopra per il server, seguirla e lanciarla n volte in base ai client che vorrete connettere ( Ogni client dovrà avere un suo nome, volendo potete usare client1, client2, clientN, ...)

Parametri Diffie Hellman e la chiave statica

Adesso manca l'ultima cosa per terminare la procedura di generazione chiavi, bisogna generare i parametri Diffie-Hellman, usati per costruire la chiave di sessione. Per farlo sempre dalla cartella /tmp/2.0 basterà lanciare il comando ./build-dh
Eseguendo il comando passeranno un paio di secondo a qualche minuto e verrà generato un file che sarà utile per la chiave di sessione.
La procedura per la generazione delle chiavi è terminata.

Punto della situazione sui certificati e chiavi

A questo punto avremo nella cartella /tmp/2.0/keys molte chiavi relative al server e ai clients:
Crediamo all'interno delle cartelle, 1 per il server (server) e 1 per ogni client di cui abbiamo generato le chiavi client1, client2, ecc...
Nella cartella Server copiamo i file (copiateli solamente non spostateli):
ca.crt
ca.key
dh1024.pem
server.crt
server.key

Copiamo poi i file relativi ai clients nelle rispettive cartelle ed anche il file ca.crt che è il certificato dell'autority
ca.crt
client1.crt
client1.key
nella cartella client1
ca.crt
client2.crt
client2.key
E così per ogni client che abbiamo creato.
Fatto questo spostate ogni cartella all'interno del rispettivo ricevitore: Nel ricevitore che farà da server spostate il contenuto della cartella server dentro /etc/openvpn/keys ( Se la cartella non c'è dentro il ricevitore createla ).
Per i clients fare la stessa cosa copiare il contenuto della cartella client1, client2 ecc.. nel rispettivo ricevitore che farà da client:
Il contenuto della cartella client1 dentro uno dei ricevitori nella cartella /etc/openvpn/keys
Il contenuto della cartella client2 dentro un'altro ricevitore nella cartella /etc/openvpn/keys, ecc.. ecc..

Configurare OpenVPN Server: server.conf

A questo punto che abbiamo copiato la cartella server dentro /etc/openvpn/keys dobbiamo creare il file di configurazione per il nostro server!!
Un esempio di file di configurazione lo trovate sempre nel sistema ubuntu nella cartella /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz decomprimerla e avrete il vostro file server.conf che dovrete copiare nella cartella /etc/openvpn del ricevitore che farà da server.
Il file dovrà essere modificato mettendo le informazioni più conformi alla vostra lan, in linea di massima dovrebbe andare bene ma dovete modificare le seguenti righe:
Cercate

ca ca.crt
cert server.crt
key server.key

E sostituiteli con

ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key

Poi cercate
dh dh1024.pem

e sostituitelo con questo
dh /etc/openvpn/keys/dh1024.pem

In pratica non abbiamo fatto altro che aggiungere una path assoluta per i file delle chiavi e certificati del server.
Un'altro parametro che dovremmo far attenzione e questo:
server 10.8.0.0 255.255.255.0
Questa è la configurazione della classe di ip che dovrà utilizzare la VPN, che in generale dovrebbe andare bene se la lan che usate già per l'accesso alla rete ha una classe diversa da questa, es:
Se la vostra lan di casa ha un ip del tipo 192.168.x.x allora potete mantenere la classe della vpn così com'è 10.8.0.x ma se la vostra lan ha ip del tipo 10.8.0.x allora dovrete cambiarla anche mettendo server 10.3.0.0 255.255.255.0 questo in modo tale da evitare problemi con il routing e collisioni con client della vostra rete locale.

Altre info sul server: IP Statici per i clients

Se vogliamo che i nostri client abbiano sempre lo stesso ip bisogna modificare un'altro aspetto nel file di configurazione: Cercare ifconfig-pool-persist ipp.txt e modificarlo con ifconfig-pool-persist /etc/openvpn/ipp.txt Adesso creare dentro la cartella del server /etc/openvpn un file ipp.txt e dentro inserire il nome del client e l'ip, come nell'esempio:

client1,10.8.0.4
client2,10.8.0.8

Su questo aspetto bisogna fare molta attenzione perchè openvpn non da al client1 ad esempio l'ip 10.8.0.4 come scritto nel file ipp.txt ma l'ip 10.8.0.6 poichè l'ip specificato è l'indirizzo della rete 10.8.0.4 con netmask 255.255.55.252 l'ip seguente 10.8.0.5 è il "server dhcp" che da l'ip 10.8.0.6 al client. Quindi vi consiglio per l'assegnazione degli ip di usare multipli di 4 come nell'esempio seguente: client1,10.8.0.4
client2,10.8.0.8
client3,10.8.0.12
client4,10.8.0.16
client5,10.8.0.20
client6,10.8.0.24
client7,10.8.0.28
client8,10.8.0.32
client9,10.8.0.36
ecc....
Spero di essere stato chiaro, nel caso di dubbi usate sempre il nostro forum di supporto.

Configurare OpenVPN Client: client.conf

Nella stessa cartella dove abbiamo trovato il file di configurazione di esempio per il server troveremo anche un file client.conf /usr/share/doc/openvpn/examples/sample-config-files/client.conf come per il server dobbiamo modificare parti di questo file per renderlo funzionante per le nostre esigenza.
La cosa più importante è impostare l'ip/hostname del server che è specificato nel file di config da remote my-server-1 1194: nel caso il server si trovi nella rete locale e anche i client connessi alla vpn si trovano nella stessa potrete mettere direttamente l'ip del server nella rete lan, esempio se il server ha come ip della vostra rete locale 192.168.1.50 allora quella riga dovrete modificarla in
remote 192.168.1.50 1194.
Se il server si trova all'esterno della rete e su una linea con ip dinamico allora dovrete utilizzare un servizio di Dynamic DNS sulla rete dove si trova il server come no-ip poichè se l'ip della vostra adsl cambia i client non riuscirebbero a connettersi al server direttamente con l'ip e per questo motivo hanno bisogno di utilizzare un servizio di dynamic dns per sapere sempre l'ip del server.
Inoltre se il servizio di no-ip è impostato come giusto che sia sul router ad esempio di alice dovrete impostare il virtual server (NAT) in modo tale che i pacchetti diretti alla porta 1194 siano indirizzati al server.
Questo problema non verrà approfondito in questo howto perchè ha varie problematiche, in caso di problemi potrete usare il nostro forum.

Fatto questo dobbiamo anche modificare le path dei nostri certificati come abbiamo fatto per il server....cercate:
ca ca.crt
cert client.crt
key client.key

e sostituiteli con
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/client.crt
key /etc/openvpn/keys/client.key

Fine della configurazione

Terminato tutto questo abbiamo finito la configurazione dei clients e del server e non bisogna fare altro che avviare i servizi dal firmware: Menu->Configurazione->Daemons->OpenVPN Start Avviato il server e poi i client, tutti i client e server saranno raggiungibili dagli ip della rete vpn.
Spero che questa guida serva a chiarire molti dubbi e rendere più familiare argomenti di questo tipo, rimango sempre a disposizioni per chiarimenti o per modifiche al mio how-to.

Ti potrebbe interessare anche:

Flashare DM 500 HD dal Browser, Aggiornamento firmware ClarkeTech ET9000, Metodi per Flashare Ipbox, SIF Box su Raspberry PI, Aggiornare il Firmware del Qbox HD mini, IPBox 99xx Upgrade Firmware tramite PenDrive, Aggiungere porta USB al Dreambox DM 500 HD, Aggiornamento Firmware Duolabs Qbox One, IPBox 900 Upgrade Firmware tramite PenDrive, Il nuovo portale è ONLINE, Trasferimento Server, Tanti Auguri di Buon Natale

Commenti

Cerca

Condividi Post

Ultimi Tweets

SIF TeAm Nuova versione del Sito: risolti problemi downloads con FireFox oltre 2 anni
SIF TeAm Nuova versione del Sito con bugfix e nuovo LOGO! http://t.co/yVDBI4a2Qa oltre 2 anni
SIF TeAm E' arrivato il nuovo logo! a breve anche sul sito! http://t.co/ixeBlrZavg oltre 2 anni
SIF TeAm Area dedicata alla SIFBox sul Forum: http://t.co/Yd61JW6ZFK http://t.co/VVmsDfTKgu oltre 2 anni
SIF TeAm Nuva area dedicata alle SIFBox: immagine per il vostro media center targata SIF TeAm. http://t.co/QOARMk6rRt http://t.co/ggWdQEc7Yc oltre 2 anni
SIF TeAm Il nuovo sito del SIF TeAm è ONLINE: http://t.co/EAUh9kG5Qd http://t.co/GFxCBFvqcz circa 3 anni
SIF TeAm Nuovo sito del SIF TeAm in arrivo.... circa 3 anni
SIF TeAm Il nuovo Layout del forum è ONLINE: http://t.co/g7X1EXy1wk circa 3 anni
SIF TeAm Il SIF TeAm è arrivato su Twitter!! circa 3 anni