Creare una VPN site-to-site con OpenVPN

Realizzare collegamenti VPN è pratica molto diffusa per quelle realtà, piccole o grandi aziende, distanti geograficamente ad esempio in città o paesi diversi, che però devono essere collegate.

Una VPN è praticamente un Tunnel che collega due reti LAN attraverso la rete pubblica, Internet. Tutto il traffico che attraversa la VPN è cifrato da un’estremità all’altra.

OpenVpn è un software opensource con cui è possibile realizzare delle robuste VPN site-to-site per collegare due LAN. In questa guida vedremo passo passo come configurare il tunnel.

Download e Installazione di OpenVPN

Per realizzare la VPN utilizzerermo due macchine (anche virtuali) con sistema operativo Ubuntu, una attestata nella prima rete, l’altra nella rete di destinazione.

Su entrambi i sistemi deve essere installato openvpn:

apt-get install openvpn

Configurazione dei nodi

Nella configurazione dei nodi dovrai specificare al server il protocollo, l’indirizzo, la porta da utilizzare e altre poche impostazioni per indicargli come funzionare.

Ecco il file di configurazione:

/etc/openvpn/server.conf

dev tun
local xx.xx.xx.xx
#questo campo deve contenere l’ip locale del sistema
lport 1194
proto udp
secret /etc/openvpn/zmo.key
#questa chiave deve essere generata come indicato sotto
ifconfig 10.0.0.1 10.0.0.2
route 192.168.1.0 255.255.255.0 10.0.0.2
#questo campo imposta automaticamente le rotte sul sistema all’attivazione dell’interfaccia virtuale
comp-lzo
keepalive 10 60
daemon

D’altro canto alla macchina client deve essere indicato come raggiungere il server della VPN.

/etc/openvpn/client.conf

dev tun
remote xx.xx.xx.xx
#questo campo deve contenere l’ip pubblico del server
rport 1194
proto udp
secret /etc/openvpn/zmo.key
#questa chiave deve la stessa generata prima sul server
ifconfig 10.0.0.2 10.0.0.1
route 192.168.2.0 255.255.255.0 10.0.0.1
comp-lzo
daemon
keepalive 10 60

Per la generazione della chiave zmo.key indicata all’interno dei file di configurazione lancia sul server il comando:
openvpn --genkey --secret zmo.key

Attivare la VPN

Abbiamo volutamente nominato entrambi files di configurazione sulle due macchine con estensione .conf. In questo modo, al boot del sistema, il servizio openvpn riconosce automaticamente le configurazioni e attiva il trunk.

Per avviare manualmente openvpn lanciare il seguente comando su entrambi gli host:

service openvpn start

A questo punto verrà attivata un’interfaccia virtuale tun0 e i due host diverranno raggiungibili.

Verifica che il trunk sia attivo con un ping:

ping 10.0.0.2 #dal server

Ultime Considerazioni

E’ necessario ricordare che per permettere al client della VPN di raggiungere correttamente il server tramite la rete pubblica sarà necessario attivare sul modem/router un reindirizzamento della porta 1194 verso l’indirizzo locale del server VPN.


Articoli Molto Simili:

  • Nessun Articolo Correlato
  • DPY

    Articolo poco accurato: innanzitutto suggerisce un modo per configurare Openvpn tipico delle versioni 1.x, che può essere ancora usato in Openvpn 2, ma solo per compatibilità con le vecchie installazioni. Secondariamente, i file di configurazione non sono assolutamente spiegati, e suggeriscono l’impiego della subnet 13.1.1.0 come rete interna, ma gli IP 13.1.1.0/24 sono ip pubblici, utilizzati da Xerox. La diretta conseguenza è che le macchine che si connettono via VPN crederanno che 13.1.1.0/24 sia un subnet di indirizzi locali, e qualora volessero accedere un server pubblico posto su IP di quella classe non potrebbero farlo. E’ vero che la probabilità di dover accedere a un server proprio su quella classe è bassissima, ma per queste cosè c’è tutta la classe 10.0.0.0/8 disponibile, è inutile andare a cercare noie con scelte ‘creative’ come questa.

    P.S.: il reindirizzamento sul router deve venire effettuato sulla porta UDP 1194, la maggior parte dei router prevedono come default il redirect delle porte TCP, che in questo caso non funzionerebbe. Occorre spedificare espressamente redirect UDP.

  • andreaz

    Grazie per il commento. Ho modificato alcune informazioni indicate in base ai suggerimenti espressi anche se il problema indicato si avrebbe solo nel caso in cui i nodi della VPN fungessero anche da gateway delle LAN. Altrimenti il problema non persiste.
    Per quanto riguarda l’accuratezza o il dettaglio della spiegazione delle configurazioni, vorrei dire che questo articolo è stato realizzato con l’intezione esplicita di fornire all’utente una soluzione immediata per realizzare una vpn site-to-site senza troppe pretese.
    L’articolo non ha l’arroganza di definirsi una guida esauriente dell’argomento. Online ci sono senz’altro veri e propri fiumi di documentazione, soprattutto in inglese, a cui riferirsi.
    Queste invece sono solo poche righe di codice che funzionano.

  • DPY

    Ok, senza troppe pretese va bene, e vanno benissimo anche le correzioni. Comunque il problema sugli ip 13.* si applica anche ai due nodi della vpn, non solo ai pc delle eventuali reti interne, basta che tu guardi la tabella delle route delle due macchine per notare che ci sono delle regole che ruotano ip della rete 13.0.0.0/24 verso la tun, il che equivale a rendere questi ip pubblici irraggiungibili da entrambi i nodi della vpn.

  • andreaz

    I due nodi della VPN servono infatti solo a fare da tunnel per le due lan, non ho mai detto che sono i default gateway delle lan per questo motivo è del tutto ininfluente quale rete viene usata per fare il tunnel.
    Comunque se hai da suggerire configurazioni più adatte, o più “OpenVPN 2″, per ottenere lo scopo dell’articolo ti prego di postarle a beneficio di tutti i lettori.