VPN

Una VPN (Virtual Private Network) consente di instaurare un collegamento sicuro e cifrato fra due o più sistemi utilizzando una rete pubblica come Internet.

Il sistema supporta due tipi di VPN:

  1. roadwarrior: collegamento di un terminale remoto alla rete interna
  2. net2net o tunnel: collegamento di due reti remote

OpenVPN

OpenVPN consente di creare facilmente collegamenti VPN, porta con sé numerosi vantaggi tra cui:

  • Disponibilità di client per vari sistemi operativi: Windows, Linux, Apple, Android, iOS
  • Attraversamento NAT multipli, ovvero non è necessario un IP statico dedicato al firewall
  • Elevata robustezza
  • Semplicità di configurazione

Roadwarrior

Il server OpenVPN in modalità roadwarrior consente il collegamento di client multipli.

I metodi di autenticazione supportati sono:

  • utente di sistema e password
  • certificato
  • utente di sistema, password e certificato

Il server può operare in due modalità: routed o bridged. Si consiglia di scegliere la modalità bridged solo se il tunnel deve trasportare traffico non-IP.

Per consentire ad un client di stabilire una VPN:

  1. Creare un nuovo account: è consigliato creare un account VPN dedicato che utilizzi un certificato. In questo modo non è necessario creare un utente di sistema per garantire l’accesso VPN.

    È invece obbligatorio scegliere un account di sistema se si desidera utilizzare l’autenticazione basata su nome utente e password.

  2. Scaricare il file che contiene la configurazione e i certificati.

  3. Importare il file all’interno del client ed avviare la VPN.

Tunnel (net2net)

Quando si crea una connessione OpenVPN net2net, un server ricopre il ruolo di master. Tutti gli altri server sono considerati slave (client).

Un client può essere collegato ad un altro NethServer od ad un qualsiasi altro firewall che utilizzi OpenVPN.

Tutti i tunnel utilizzano OpenVPN in modalità routed, ma esistono due tipi di topologie: subnet e p2p (Point to Point)

Topologia: subnet

Questa è la topologia consigliata. Nella topologia subnet, il server accetterà le connessioni e agirà come server DHCP per ogni client connesso.

In questo scenario

  • il server gestisce l’autenticazione dei client utilizzando certificati TLS
  • il server può eseguire il push delle rotte locali verso i client remoti
  • il client si possono autenticare con certificati TLS o tramite nome utente e password

Topologia: P2P

Nella topologia p2p, l’amministratore deve configurare un server per ciascun client.

In questo scenario:

  • l’unico metodo di autenticazione supportato è la PSK (Pre-Shared Key). Si consiglia di utilizzare un canale sicuro (come SSH o HTTPS) per scambiare la PSK
  • l’amministratore deve selezionare un IP per entrambi gli end point
  • le rotte per le reti remote devono essere configurate su ogni end point

Per configurare un tunnel procedere come segue:

  1. Accedere al server del tunnel e aprire la pagina OpenVPN tunnels, spostarsi nella scheda Tunnel servers e cliccare sul bottone Create new
  2. Valorizzare i campi richiesti ponendo attenzione al fatto che:
    • guilabel:Public IPs and/or public FQDN è una lista di IP pubblici o di nomi host che verranno usati dai client per collegarsi al server attraverso Internet
    • Local networks è una lista di reti locali che saranno accessibili dai server remoti. Se la topologia è di tipo p2p, la stessa lista sarà utilizzata per valorizzare il campo Remote networks del client
    • Remote networks è una lista di reti remote che si trovano dietro al server remoto e che saranno accessibili dagli host della rete locale
  3. Dopo aver salvato la configurazione, cliccare sull’azione Download e selezionare Configurazione client
  4. Accedere al client del tunnel, aprire la pagina OpenVPN tunnels, spostarsi sulla scheda Tunnel clients e cliccare sul bottone Upload

Funzionalità avanzate

L’interfaccia web consente di configurare funzionalità avanzate quali:

  • lato client, nel campo Remote hosts possono essere specificati indirizzi multipli per ridondanza; il client OpenVPN tenterà di connettersi a ciascun host rispettando l’ordine di inserimento
  • WAN priority: se il client ha più WAN (interfacce red), l’opzione consente di selezionare l’ordine in cui le WAN saranno utilizzate per connettersi al server remoto.
  • Protocollo: è importante rammentare che OpenVPN è progettata per funzionare in modo ottimale in UDP, ma è possibile utilizzare TCP nelle situazioni in cui non è possibile fare ricorso ad UDP
  • cifratura: l’algoritmo crittografico utilizzato per crittografare tutto il traffico. Se non viene selezionato in modo esplicito, il server e il client cercheranno di negoziare la migliore cifratura disponibile su entrambi i lati
  • compressione LZO: abilitata di default, può essere disabilitata quando si utilizzano server or client legacy
Modalità legacy

I tunnel possono ancora essere creati utilzzando gli account roadwarrior.

I passi da eseguire sul server master sono:

  • Abilitare il server roadwarrior
  • Creare un account solo VPN per ciascun slave che dovrà collegarsi
  • Durante la creazione dell’account ricordarsi di specificare la rete remota configurata dietro allo slave

I passi da eseguire sullo slave sono:

  • Creare un client dalla pagina Client specificando i dati di collegamento al server master
  • Copiare e incollare il contenuto dei certificati scaricati dalla pagina di configurazione del master

IPsec

Il protocollo IPsec (IP Security) è lo standard «de facto» nei tunnel VPN, utilizzato tipicamente per creare tunnel di tipo net to net ed è supportato da tutti i produttori. È possibile utilizzare questo protocollo per creare tunnel VPN tra un NethServer ed un dispositivo di un altro produttore nonché tunnel VPN tra 2 NethServer.

Nota

IPSec non è progettato per collegare singoli host ma per la configurazione net2net, questo implica due gateway su entrambe le estremità (almeno un’interfaccia RED e una GREEN).

Tunnel (net2net)

IPsec è estremamente affidabile e compatibile con molti dispositivi. Infatti, è una scelta ovvia quando è necessario creare collegamenti net2net tra firewall di diversi produttori.

A differenza della configurazione OpenVPN, in un tunnel IPsec, i firewall sono considerati nodi pari livello.

Se si sta creando un tunnel tra due NethServer, dati A e B i firewall:

  1. Configurare il server A e specificare l’indirizzo remoto e la LAN del server B. Se il campo Remote IP è valorizzato con % any, il server rimane in attesa della connessione dell’altro endpoint.
  2. Configurare il secondo firewall B replicando la configurazione da A all’interno della sezione remota. Il valore speciale %any è consentito in un solo lato!

Se un endpoint è dietro un NAT, i valori per Local identifier e Remote identifier devono essere impostati con nomi univoci personalizzati preceduti da @. I nomi comuni sono le posizioni geografiche dei server, ad esempio il nome di stato o città.