Argomento precedente: NET2: appliance gateway di output di subnetArgomento successivo: VPN2: appliance di rete privata virtuale


VPN: appliance di rete privata virtuale

Ultima versione: 3.1.3-1

Appliance VPN

In breve

Catalogo

Sistema

Categoria

Gateway

Volumi dell'utente

Num. minimo memoria

96 M

OS

Linux

Vincoli

no

Panoramica funzionale

Il VPN è un'appliance di Rete Privata Virtuale che funziona nelle reti IPv4 e IPv6 ed è progettata per fornire tunnel protetti e affidabili per le comunicazioni inter-griglia e l'accesso remoto alle applicazioni e alle appliance. Il VPN può anche operare senza utilizzare i tunnel VPN, e in questo caso funziona come un gateway di cleartext IN/OUT combinato. Il VPN serve anche per l'interconnessione delle griglie di CA AppLogic® di Ipv4 e IPv6. Si basa su OpenVPN, OpenSSH e sui pacchetti software Open Source di Racoon.

Il VPN ha tre modalità operative di base: server, client o entrambe.

Il VPN supporta IPSec, i file segreti condivisi, i certificati SSL e i file di codice SSH per l'autenticazione e la crittografia. Si può usare un normale client di OpenVPN/OpenSSH su una workstation remota per connettersi al VPN, che a sua volta garantisce un accesso protetto ai componenti interni di un'applicazione eseguita su CA AppLogic®. L'appliance di VPN supporta la generazione di file segreti condivisi, di certificati SSL e di codici SSH.

Per accedere in remoto a un'applicazione di CA AppLogic® su un tunnel VPN protetto usando la rete VPN, si può usare il software lato client di OpenVPN oppure OpenSSH sul computer del client (o su altri software compatibili).

Risorse

Risorsa

Minimo

Massimo

Predefinito

CPU

0.1

16

0.2

Memoria

96 MB

32 GB

96 MB

Larghezza di banda

1 Mbps

2 Gbps

250 Mbps

Terminali

name

dir

protocollo

description

clt

in

Qualsiasi

Input comune per tutto il traffico in entrata che viene diretto attraverso l'interfaccia esterna quando VPN opera come client. Se il VPN è configurato per stabilire un tunnel sull'interfaccia esterna, i pacchetti inviati a clt sono diretti a un tunnel stabilito, o lasciati cadere, se il tunnel non è operativo.

srv

out

Qualsiasi

Output comune per tutto il traffico in uscita che viene diretto attraverso l'interfaccia esterna quando VPN opera come server. Tutto il traffico è filtrato mediante le proprietà tcp_ports, udp_ports, ssh_ports e aux_protocols prima di essere inviato attraverso srv.

fs

out

NFS

Accesso a un file system di rete per l'archiviazione dei file condivisi, consentendo un accesso ai file di scrittura/lettura su NFS. Questo volume è montato come /mnt/fs nello spazio del file system dell'appliance ed è utilizzato per l'archiviazione dei codici e dei certificati di crittografia. Il server connesso deve avere una condivisione di lettura/scrittura denominata /mnt/data. Né il volume di dati, né il volume montato su NFS sono richiesti se VPN funziona in modalità di cleartext. Questo terminale può essere lasciato non connesso se non è utilizzato.

log

out

CIFS

Accesso a un file system di rete basato su CIFS per l'archiviazione dei log IIS. Il server connesso deve permettere accessi anonimi e avere una condivisione di lettura/scrittura denominata shared. Questo terminale può essere lasciato non connesso se non è utilizzato.

mon

out

CCE

Serve per le statistiche di utilizzo delle prestazioni e delle risorse. Può rimanere disconnesso se non è usato.

Proprietà

Proprietà generali

Nome di proprietà

Tipo

Description

ip_addr

ip_owned

Definisce l'indirizzo di IPv4 dell'interfaccia esterna del gateway. Questa proprietà è obbligatoria se il VPN funziona in modalità Solo IPv4.

maschera di rete

Indirizzo IP

Definisce la maschera di rete IPv4 dell'interfaccia esterna. Questa proprietà è obbligatoria se il VPN funziona in modalità Solo IPv4.

gateway

Indirizzo IP

Definisce il gateway di rete di IPv4 predefinito (router) per l'interfaccia esterna. Se lasciati vuoti, solamente gli host sullo stesso subnet di ip_addr/netmask saranno accessibili. Predefinito: vuoto

ipv6_addr

stringa

Definisce l'indirizzo di IPv6 dell'interfaccia esterna del gateway. L'indirizzo di IPv6 è specificato nell'annotazione di indirizzo standard di otto gruppi di quattro cifre esadecimali. Uno o qualsiasi numero di gruppi consecutivi di valore 0 possono essere sostituiti con due punti (::). Il formato è indirizzo/maschera di rete, es. fc00:1234:5678::12/64. Questa proprietà è obbligatoria se il VPN funziona in modalità Solo IPv6.

ipv6_gateway

stringa

Definisce il gateway di rete di IPv6 predefinito (router) per l'interfaccia esterna. Se lasciati vuoti, solamente gli host sullo stesso subnet di ipv6_addr saranno accessibili. Predefinito: vuoto

dns1

Indirizzo IP

Definisce il server DNS primario cui VPN inoltrerà le richieste DNS. Se lasciato vuoto, VPN utilizzerà i server DNS principali. Predefinito: vuoto

dns2

Indirizzo IP

Definisce il server di backup DNS cui VPN inoltrerà le richieste DNS se il primario non è disponibile. Se lasciato vuoto, VPN utilizzerà il server DNS di backup. Predefinito: vuoto

Importante: È necessario definire almeno una coppia di indirizzi (IPv4 o IPv6).

Proprietà VPN

Nome di proprietà

Tipo

Description

modalità

Stringa

Modalità di operazione. I valori possibili sono:
server - VPN opera in modalità server, accettando il traffico in entrata da tunnel stabiliti sull'interfaccia esterna e inviandolo al terminale di srv.
client - VPN opera in modalità client, accettando il traffico in entrata sul terminale clt e inviandolo nel tunnel stabilito sull'interfaccia esterna.
entrambi - VPN opera in modalità di client e server.
Predefinito: server.

tunnel

Stringa

Tipo di tunnel da stabilire. I valori possibili sono:
certificato - Un tunnel VPN è stabilito mediante client SSL e i certificati di server per l'autenticazione e la crittografia con OpenVPN. Il certificato di server è generato automaticamente se non è presente; il certificato di client deve essere generato manualmente con lo script appliance/security.sh che si trova sul server VPN e copiato nella sottodirectory /client/ sul volume di dati o sul volume montato su NFS. Questa modalità funziona con IPv4 e IPv6.
segreto condiviso - il tunnel VPN di A è stabilito mediante un file segreto condiviso con OpenVPN. Questo file è generato automaticamente sul server VPN se non è presente, si trova nella sottodirectory del volume di dati o del volume montato su nfs ed è denominato secret.key. È necessario copiare questo file sull'appliance di VPN client nella sottodirectory /client/. Questa modalità funziona con IPv4 e IPv6.
Chiave SSH - un tunnel SSH viene stabilito mediante OpenSSH keyfiles per l'autenticazione. I file di codice sono generati con lo script lato di server di appliance/security.sh. È necessario copiare il file di codice nella sottodirectory /client/ del volume di dati dell'archiviazione montata su NFS. Questa modalità funziona con IPv4 e IPv6.
segreto condiviso di IPsec - il tunnel IPSec viene stabilito tra le istanze di VPN. La prima linea del file specificata dalla proprietà di auth_path è usata come codice condiviso. Questa modalità funziona solamente con IPv4.
certificato di IPsec - è stabilito il tunnel IPSec che usa certificati fra le istanze di VPN. Il certificato di server è generato automaticamente se non è presente o può essere generato con lo script appliance/security.sh; è necessario generare il certificato di client manualmente con lo script appliance/security.sh che si trova sul server VPN ed è copiato nella sottodirectory /client/ sul volume di dati o sul volume montato di NFS. Questa modalità funziona solamente con IPv4. Per le due modalità di operazione, tutti i certificati devono essere generati dalla stessa appliance e distribuiti con il rispettivo certificato di ca.crt.
cleartext - il tunnel non è definito; l'appliance di VPN opera come un gateway di IN/OUT combinato, accettando il traffico sul terminale di clt e inoltrandolo all'interfaccia esterna; e accettando il traffico sull'interfaccia esterna e inoltrandolo al terminale di srv. Questa modalità funziona con IPv4 e IPv6. Per la modalità IPv6, la proprietà remote_host deve contenere l'indirizzo del pari.
Predefinito: cleartext.

auth_path

Stringa

Informazioni di autenticazione per il tunnel. Per la modalità di operazione segreta condivisa, questo è un percorso relativo al file segreto condiviso sul volume di dati (es. "secret.key" per un file "client/secret.key"). Per la modalità di certificato, questo è un percorso relativo che include il nome di file senza estensione, alla coppia di file certificato/codice. Ad esempio, se i file di certificato client1-2009.crt e client1-2009.key si trovano nella sottodirectory /client del volume di dati, è necessario specificare qui client1-2009. Se il tunnel è cleartext, questa proprietà è ignorata. Se il tunnel è il codice SSH, questa proprietà indica il percorso, incluso il nome del file al pubblico SSH (per il server VPN) o al file codice privato (per il client VPN) (ad esempio, /1/ssh.key per un file di codice pubblico /client/1/ssh.key)..
Predefinito: vuoto

log_level

Stringa

Livello di registrazione VPN. I valori possibili sono:
nessuno - nessuna registrazione.
emerg - sono registrati soltanto gli errori rilevati da VPN.
avviso - registra gli avvisi e gli errori.
nota - registra gli avvisi, gli errori e le informative.
debug - registra le informazioni di debug aggiuntive ad avvisi, errori e informative.
Predefinito: nessuno se il terminale di log non è connesso; emerg se il terminale di log è connesso.

Proprietà di server

allowed_hosts

Stringa

Elenco di host e/o subnet che possono connettersi. Separare le voci usando spazi o virgole. Esempio di formato supportato: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0 fc00:1234::12/64.
Predefinito: 0.0.0.0/0 (tutto permesso, sia IPv4 che IPv6)

tcp_ports

Stringa

Numeri di porta o intervalli di porta da autorizzare sul terminale di srv. Accetta una stringa di valori separati da spazio o virgola. È necessario specificare gli intervalli di porta come lower_port:higher_port con due punti o un trattino (ad esempio, 80,81,82:85 86-90). Un valore speciale di 0 significa che tutte le porte TCP sono accettate.
Predefinito: vuoto

udp_ports

Stringa

Uguale a tcp_ports, eccetto per il protocollo di UDP.
Predefinito: vuoto

aux_protocols

Stringa

Una stringa di numeri di protocollo IP separata da spazi o virgole aggiuntive da autorizzare (ad es., 6 per il TCP, 47 per GRE). Specificare protocolli separati con i loro nomi (es. 'gre' invece di '47'). Consultare http://www.iana.org/assignments/protocol-numbers per l'assegnazione.
Predefinito: vuoto (disabilitato)

Proprietà di client

remote_host

Stringa

Definisce l'host remoto per inoltrare il traffico a. Questo può essere il nome DNS dell'host o il suo indirizzo IPv4 o IPv6 in notazione di "punti". Questa proprietà è obbligatoria.
Predefinito: vuoto

dns_poll

Numero intero

L'intervallo di polling, in secondi, che il VPN utilizzerà nella verifica del mapping del nome DNS di remote_host all'indirizzo IP (usato solo se remote_host è specificato come nome DNS). Impostare su 0 per disabilitare il polling e non effettuare la rilevazione delle modifiche.
Predefinito: 3600 secondi (1 ora).

ssh_ports

Stringa

Una proprietà sul lato client per modalità di codice SSH, che specifica le porte TCP da inoltrare al server VPN. Gli intervalli di porta non sono supportati, le porte possono essere divise da spazi o virgole.
Predefinito: vuoto

Volumi

Nome

Description

dati

Un volume di dati di lettura/scrittura (segnaposto) che contiene i file di configurazione e i file di certificato. Questo volume non è richiesto se il terminale di fs è connesso. Se fs è connesso, e viene fornito un volume di dati, il VPN non viene avviato e registra un messaggio di errore. Tutti i file che sono necessari per l'operazione del server VPN sono archiviati nella sottodirectory /server/ dell'archiviazione di dati. Tutti i file che sono necessari per l'operazione del client VPN sono archiviati nella sottodirectory /client/.

Contatori personalizzati

L'appliance di VPN riporta i seguenti contatori personalizzati dal terminale di MON.

Nome di contatore

Description

server_bytes_in

Byte totali ricevuti da VPN.

server_bytes_out

Byte totali inviati da VPN.

client_bytes_in

Byte totali ricevuti dai tunnel client.

client_bytes_out

I byte totali inviati ai tunnel client.

client

Numero di client connessi a VPN.

Prestazioni

Due applicazioni di test risiedevano sulla stessa griglia di CA AppLogic®. Una larghezza di banda di 100 mbit è stata assegnata alle due appliance di VPN (client e server) e alle appliance di server e client. Sono stati recuperati 10 oggetti in parallelo, della dimensione di 1 MB, a oggetto multiplo per 60 secondi.

Modalità

Larghezza di banda, Mbit/secondo

Dimensione di oggetto

Richieste/secondo

Velocità di trasferimento, MByte/secondo

Certificato

100

1 MB

12.5667

12.56

Segreto condiviso

100

1 MB

12.5166

12.51

Codice SSH

100

1 MB

12.7667

12.76

Cleartext

100

1 MB

13.0329

13.03

Messaggi di errore

In caso di errore nell'avvio dell'appliance, è possibile che vengano registrarti i seguenti errori nel log di sistema:

Messaggio di errore

Description

Impossibile montare il volume di dati

VPN non è riuscito a montare il volume di dati. Verificare che il volume sia formattato e disponibile.

Impossibile generare server_key

VPN non è riuscito a generare il file segreto condiviso. Probabilmente il volume di dati è troppo piccolo oppure è montato in sola lettura.

Impossibile avviare il server OpenVPN

VPN non è riuscito ad avviare il server OpenVPN. Contattare il Supporto di CA Technologies.

Impossibile generare i certificati.

VPN non è riuscito a creare l'Autorità di Certificazione e generare il certificato necessario per la modalità di operazione del server di certificato. Probabilmente il volume di dati è troppo piccolo oppure è montato in sola lettura.

Impossibile generare il file DH.

VPN non è riuscito a generare il file di codici Diffie-Hellman. Probabilmente il volume di dati è troppo piccolo oppure è montato in sola lettura.

Il file segreto client_auth non esiste

Il file client_auth, specificato nella proprietà di auth, non esiste. Verificare il percorso e il nome del file.

L'indirizzo di server remoto è vuoto per

L'indirizzo server del VPN remoto è vuoto per tunnel X.

Impossibile avviare OpenVPN per il tunnel di clientX

VPN non è riuscito ad avviare il software OpenVPN per il client tunnel X. Probabilmente alcune proprietà o file di codici non sono valide.

Il file di certificato di client_auth.crt non esiste

VPN non è riuscito a localizzare un file di certificato. Il percorso o il nome file specificato nella proprietà auth non è valido per la modalità di operazione client del certificato.

Il file di codice client_auth.key non esiste

VPN non è riuscito a localizzare un file di codice. Il percorso o il nome file specificato nella proprietà auth non è valido per la modalità di operazione client del certificato.

Il certificato di Autorità ca_cert sta è mancante

VPN non riuscito a localizzare il certificato di Autorità di Certificazione. Questo dovrebbe trovarsi nel file CA/ca.crt nel volume di dati.

Tipi di tunnel

Cleartext

Questa modalità supporta un unico server - diversi scenari di client e permette l'accesso al server VPN da più posizioni. In questa modalità, i tunnel VPN non sono stabiliti e non è richiesto un archivio di dati (né un volume di dati, né l'appliance NAS è connessa al terminale di fs). Questa modalità funziona in IPv4 e IPv6.

Sull'appliance di VPN server, il traffico ricevuto sull'interfaccia esterna è filtrato mediante le proprietà tcp_ports, udp_ports, aux_protocols e inoltrato all'interfaccia di srv.

Sull'appliance di VPN di client, il traffico ricevuto sull'interfaccia di clt è inoltrato al server VPN remoto, specificato nella proprietà di remote_host.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway, modalità, tunnel, allowed_hosts, tcp_ports, udp_ports, aux_protocols.

Proprietà che devono essere configurate sul lato client: ip_addr, maschera di rete, gateway, modalità, tunnel, remote_host.

La proprietà remote_host sul lato server deve essere configurata con l'indirizzo di client se la modalità di IPv6 è in uso.

Certificato

Questa modalità supporta un unico server - diversi scenari di client e permette l'accesso al server VPN da più posizioni. È richiesto un archivio di dati (o un volume di dati o un'appliance NAS connessa al terminale di fs). Questa modalità funziona in IPv4 e IPv6.

All'avvio, l'appliance di server genera i certificati necessari e i file di codice se questi file non sono già presenti. Questi file possono essere ri-generati con lo script security.sh, che si trova nella directory /appliance/. Prima di configurare i client di VPN, occorre generare dei certificati per loro. Un utente può accedere all'appliance del server VPN eseguito e generare una coppia di codici client come segue:

grid> comp login VPN-1:main.VPN
CentOS release 5 (Final)

[VPN-1:main.VPN ~]# /appliance/security.sh generate_client
Certificato SSL client generato e file di codice.
==============================================
Questi file, con il file di certificato di CA, dovrebbero essere copiati al server VPN
nella sottodirectory /client/ del volume di dati o del volume montato di fs.
Il percorso ai file client (client.829de5afcac564b3) dovrebbe essere specificato nella proprietà di auth_path.
Posizione dei file:
certificato di client: /mnt/fs/server/client.829de5afcac564b3.crt
file di codice client: /mnt/fs/server/client.829de5afcac564b3.key
File di certificato di CA localizzato in /mnt/fs/server/ca.crt

È necessario copiare il certificato di client e il file di codice nell'appliance di VPN client nella sottodirectory /client/ dell'archivio dati con auth_path impostato sul valore appropriato, client.829de5afcac564b3, in questo caso. È necessario copiare il certificato di CA dal server VPN (/mnt/fs/server/ca.crt) nella sottodirectory /client/ sull'appliance client e denominarlo ca.crt. Ogni appliance di VPN client dovrebbe avere il proprio certificato.

Sull'appliance di VPN server, il traffico ricevuto sull'interfaccia esterna è cifrato, filtrato mediante le proprietà tcp_ports, udp_ports, aux_protocols e inoltrato all'interfaccia di srv.

Sull'appliance di VPN di client, il traffico ricevuto sull'interfaccia di clt è cifrato e inoltrato al server VPN remoto, specificato nella proprietà di remote_host.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corrispondenti), modalità, tunnel, allowed_hosts, tcp_ports, udp_ports, aux_protocols.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corripondenti), modalità, tunnel, remote_host, auth_path.

File segreto condiviso

Questa modalità supporta soltanto il server singolo - scenario di client singolo, permettendo l'accesso al server di VPN soltanto da un client alla volta. È richiesto un archivio di dati (o un volume di dati o un'appliance NAS connessa al terminale di fs). Questa modalità funziona in IPv4 e IPv6.

All'avvio, l'appliance di server genera i file segreto condiviso /server/secret.key, se non sono già presenti. Questo file può essere ri-generato con lo script di security.sh, localizzava nel /appliance/ directory. Prima di configurare i client VPN, è necessario copiare il file segreto condiviso nell'archivio di dati della sottodirectory /client/. Per generare un nuovo file segreto condiviso, l'utente può accedere nell'appliance di server VPN corrente ed emettere il seguente comando:

[VPN-1:main.VPN server]# /appliance/security.sh generate_secret
File segreto condiviso di OpenVPN generato.
======================================
Questo file dovrebbe essere copiato al server VPN nella sottodirectory /server/ del volume di dati o del volume montato su fs
e al client VPN nella sottodirectory /client/ del volume di dati del volume montato su fs.
Il relativo percorso dovrebbe essere specificato nella proprietà auth_path del client VPN.
Posizione di file: /mnt/fs/server/secret.key

Un file segreto appena generato sovrascrive il precedente, se esistente. È necessario copiare il file segreto condiviso /mnt/fs/server/secret.key nell'appliance di VPN client della sottodirectory /client/ dell'archivio di dati con la proprietà auth_path impostata sul valore corretto, secret.key in questo caso. Possono essere configurate più appliance di VPN client, ma soltanto una può essere connessa alla volta.

Sull'appliance di VPN server, il traffico ricevuto sull'interfaccia esterna è cifrato, filtrato mediante le proprietà tcp_ports, udp_ports, aux_protocols e inoltrato all'interfaccia di srv.

Sull'appliance di VPN di client, il traffico ricevuto sull'interfaccia di clt è cifrato e inoltrato al server VPN remoto, specificato nella proprietà di remote_host.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corrispondenti), modalità, tunnel, allowed_hosts, tcp_ports, udp_ports, aux_protocols.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corripondenti), modalità, tunnel, remote_host, auth_path.

Codice SSH

Questa modalità supporta un unico server - diversi scenari di client e permette l'accesso al server VPN da più posizioni. È richiesto un archivio di dati (o un volume di dati o un'appliance NAS connessa al terminale di fs). Solamente il traffico TCP può essere inoltrato nel tunnel SSH, quindi soltanto la proprietà tcp_ports è usata sul lato server. Gli intervalli di porta non sono supportati - specificare esplicitamente ogni porta da inoltrare nella proprietà sul lato client di ssh_ports. Questa modalità funziona in IPv4 e IPv6.

Il server VPN genera la coppia di codici SSH predefinita all'avvio; i codici predefiniti si trovano in: codice di server (codice pubblico): codice client server/ssh-server.pub (codice privato): server/ssh-client.key. I codici aggiuntivi possono essere generati manualmente usando lo script security.sh:

[VPN-1:main.VPN ~]# /appliance/security.sh generate_ssh
Coppia di codici SSH generato.
======================
Il codice pubblico dovrebbe essere copiato al server VPN nella sottodirectory /server/ del volume di dati o del volume montato su fs.
Il codice pubblico dovrebbe essere copiato al server VPN nella sottodirectory /client/ del volume di dati o del volume montato su fs.
Il percorso ai file di codice dovrebbe essere specificato nella proprietà auth_path sul cliente e sul server VPN.
Posizione dei file:
Codice pubblico: /mnt/fs/server/ssh.11179ebbfa3f6852.pub
Codice privato: /mnt/fs/server/ssh.11179ebbfa3f6852.key

Il codice pubblico dovrebbe essere copiato sul server VPN nella sottodirectory /server/; il codice privata dovrebbe essere copiato al client nella sottodirectory /client/. La proprietà auth_path dovrebbe essere impostata sul client e sul server. Se auth_path è vuoto sul server, viene usato il codice SSH predefinito.

Sull'appliance di VPN server, il traffico ricevuto sull'interfaccia esterna è decifrato, filtrato mediante la proprietà ssh_ports e inoltrato all'interfaccia di srv. Soltanto l'inoltro della porta TCP è supportato. La proprietà auth_path definisce il codice SSH pubblico da utilizzare. Quando l'appliance opera nella modalità client e server, il codice pubblico e il codice privato devono avere lo stesso nome e devono trovarsi nelle sottodirectory /server/ e /client/. La proprietà ssh_ports dovrebbe essere configurata sul server e sul client allo stesso modo.

Sull'appliance di VPN di client, il traffico ricevuto sull'interfaccia di clt è cifrato e inoltrato al server VPN remoto, specificato nella proprietà di remote_host.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corripondenti), modalità, tunnel, allowed_hosts, auth_path, tcp_ports.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corripondenti), modalità, tunnel, remote_host, auth_path, ssh_ports.

Importante: Modalità server-server di SSH. Due appliance di VPN possono entrambe essere configurate nei due modi e connettersi l'una all'altra. Per utilizzare questa modalità, occorre configurare le appliance in modo speciale:

Supponiamo di avere 2 appliance chiamate VPN1 e VPN2: 1. creare 2 set di file di codice pubblico/privato (1.key/1.pub, 2.key/2.pub usando "/appliance/security.sh generate_ssh" script) 2. configurare proprietà auth_path sulle due appliance in "ssh.key" 3. copiare 2.pub su VPN1:/mnt/data/server/ssh.key (o sul file ssh.key nella sottodirectory /server/ dell'unità di NAS) (il codice pubblico nella sottodirectory /server/) 4. copiare 2.key su VPN2:/mnt/data/client/ssh.key (il codice privato nella sottodirectory /client/) 5. copiare 1.pub su VPN2:/mnt/data/server/ssh.key (il codice pubblico nella sottodirectory /server/) 6. copiare 1.key su VPN1:/mnt/data/client/ssh.key (il codice privato nella sottodirectory /client/).

Certificato di IPSec

Questa modalità supporta un unico server - diversi scenari di client e permette l'accesso al server VPN da più posizioni. È richiesto un archivio di dati (o un volume di dati o un'appliance NAS connessa al terminale di fs). Questa modalità funziona solamente in IPv4.

All'avvio, l'appliance di server genera i certificati necessari e i file di codice se questi file non sono già presenti. Questi file possono essere ri-generati con lo script security.sh, che si trova nella directory /appliance/. Prima di configurare i client di VPN, occorre generare dei certificati per loro. Un utente può accedere all'appliance di VPN server corrente e generare una coppia di codici come segue:

grid> comp login VPN-1:main.VPN
CentOS release 5 (Final)

[VPN-1:main.VPN ~]# /appliance/security.sh generate_client
Certificato di SSL client generato e file di codice.
==============================================
Questi file, con il file di certificato di CA, dovrebbero essere copiati al server VPN
nella sottodirectory /client/ del volume di dati o del volume montato di fs.
Il percorso ai file client (client.829de5afcac564b3) dovrebbe essere specificato nella proprietà di auth_path.
Posizione dei file:
certificato di client: /mnt/fs/server/client.829de5afcac564b3.crt
file di codice client: /mnt/fs/server/client.829de5afcac564b3.key
File di certificato di CA localizzato in /mnt/fs/server/ca.crt

È necessario copiare il certificato di client e il file di codice nell'appliance di VPN client nella sottodirectory /client/ dell'archivio dati con auth_path impostato sul valore appropriato, client.829de5afcac564b3, in questo caso. È necessario copiare il certificato di CA dal server VPN (/mnt/fs/server/ca.crt) nella sottodirectory /client/ sull'appliance client e denominarlo ca.crt. Ogni appliance di VPN client dovrebbe avere il proprio certificato.

Importante: Si verifica un'eccezione quando il VPN è usato nelle due modalità. In questo caso tutti i certificati, client e server, devono essere generati dalla stessa istanza di VPN, e distribuiti insieme al certificato di ca.crt alle altre istanze.

Sull'appliance di VPN server, il traffico ricevuto sull'interfaccia esterna è cifrato, filtrato mediante le proprietà tcp_ports, udp_ports, aux_protocols e inoltrato all'interfaccia di srv.

Sull'appliance di VPN di client, il traffico ricevuto sull'interfaccia di clt è cifrato e inoltrato al server VPN remoto, specificato nella proprietà di remote_host.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corrispondenti), modalità, tunnel, allowed_hosts, tcp_ports, udp_ports, aux_protocols.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corripondenti), modalità, tunnel, remote_host, auth_path.

Segreto condiviso di IPSec

Questa modalità supporta un unico server - diversi scenari di client e permette l'accesso al server VPN da più posizioni. È richiesto un archivio di dati (o un volume di dati o un'appliance NAS connessa al terminale di fs). Questa modalità funziona solamente in IPv4.

Sull'inizio, l'appliance server estrae la prima linea del file specificato in proprietà di auth_path e la usa come tasto condiviso. Questo file deve essere presente sulle due parti. Prima di configurare un client di VPN, è necessario copiare questo file segreto condiviso nel suo archivio dati nella sottodirectory /client/.

Sull'appliance di VPN server, il traffico ricevuto sull'interfaccia esterna è cifrato, filtrato mediante le proprietà tcp_ports, udp_ports, aux_protocols e inoltrato all'interfaccia di srv.

Sull'appliance di VPN di client, il traffico ricevuto sull'interfaccia di clt è cifrato e inoltrato al server VPN remoto, specificato nella proprietà di remote_host.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corrispondenti), modalità, tunnel, allowed_hosts, tcp_ports, udp_ports, aux_protocols.

Proprietà che devono essere configurate sul lato server: ip_addr, maschera di rete, gateway (o proprietà IPv6 corripondenti), modalità, tunnel, remote_host, auth_path.

accesso remoto a un servizio esterno

Il seguente diagramma illustra un esempio di come si configura l'accesso remoto a un servizio esterno:

in questo esempio, un'appliance Web, eseguita su una Griglia A, accede a un database MySQL remoto eseguito su una Griglia B mediante un tunnel VPN sicuro.

vpn1 sulla Griglia A è configurato per connettersi all'indirizzo IP assegnato a vpn2 sulla Griglia B. Il terminale srv di vpn1 e il terminale clt di vpn2 rimangono disconnessi. Le interfacce esterne di vpn1 e vpn2 sono configurate con indirizzi IP indirizzabili e adeguati.

Esempio di configurazione della proprietà:

vpn1:

Nome di proprietà

Valore

note

ip_addr

25.74.63.87

IP esterno utilizzato per vpn1

maschera di rete

255.255.255.0

maschera di rete

gateway

25.74.63.1

gateway

modalità

client

Modalità di client di operazione

tunnel

certificato di IPsec

Il traffico viene codificato usando IPSec

auth_path

client-7575

Nome della coppia certificato/file dei codici

remote_host

12.12.12.12

IP esterno assegnato all'interfaccia esterna di vpn2

vpn2:

Nome di proprietà

Valore

note

ip_addr

12.12.12.12

IP esterno utilizzato per vpn2

maschera di rete

255.255.255.0

maschera di rete

gateway

12.12.12.1

gateway

modalità

server

Modalità server di operazione

tunnel

certificato di IPsec

Il traffico viene codificato usando IPSec

allowed_hosts

25.74.63.87

permettere soltanto le connessioni da vpn1

tcp_ports

3306

Porta predefinita per il server MySQL

Accesso remoto alle appliance di CA AppLogic® interne

Il seguente diagramma illustra un esempio di come configurare l'accesso remoto alle appliance di CA AppLogic® interne:

In questo esempio, un utente deve accedere dal suo PC a diverse appliance attraverso una connessione VPN sicura usando il client OpenVPN OpenVPN viene utilizzato per connettersi all'indirizzo IP assegnato a vpn. VPN stabilisce un tunnel VPN con il PC dell'utente e inoltra il traffico in entrata allo switch della porta sw, che viene configurata per distribuire il traffico a quattro diverse appliance nell'applicazione.

È necessario installare OpenVPN sul PC dell'utente prima di accedere a un'applicazione di CA AppLogic® che usa l'appliance di VPN come descritta in questo esempio. Le seguenti fasi descrivono la configurazione di questa applicazione e come accedere all'applicazione su un tunnel VPN sicuro:

  1. l'utente deve installare OpenVPN sul PC. OpenVPN può essere ottenuto o da qui o da qui (ci sono stati rapporti di OpenVPN che non lavora su Vista di Windows). Dopo l'installazione, creare un file di configurazione distinto che definisce le proprietà del tunnel di OpenVPN che l'utente utilizzerà per accedere all'applicazione di CA AppLogic®. Le seguenti fasi descrivono la procedura.
  2. Si raccomanda di utilizzare la modalità segreta condivisa di operazione dell'appliance VPN. Configurare vpn come segue:

vpn:

Nome di proprietà

Valore

note

ip_addr

28.36.85.21

Indirizzo IP assegnato all'appliance VPN

modalità

server

Modalità server di operazione

tunnel

segreto condiviso

Mediante file segreto condiviso

allowed_hosts

26.42.56.72

Indirizzo IP del client PC

tcp_ports

0

Tutte le porte sono autorizzate

udp_ports

0

Tutte le porte sono autorizzate

3. Assegnare i protocolli e le porte desiderati che devono essere inoltrate attraverso l'appliance di sw. In questo caso, 4 porte (122.422.522.822) sono inoltrate alle porte SSH delle appliance connesse a sw:

Nome di proprietà

Valore

note

out1_protocol

tcp

Protocollo TCP

out1_in_port

122

Porta in entrata 122

out1_out_port

22

Porta in uscita 22

out4_protocol

tcp

Protocollo TCP

out4_in_port

422

Porta in entrata 422

out4_out_port

22

Porta in uscita 22

out5_protocol

tcp

Protocollo TCP

out5_in_port

522

Porta in entrata 522

out5_out_port

22

Porta in uscita 22

out8_protocol

tcp

Protocollo TCP

out8_in_port

822

Porta in entrata 822

out8_out_port

22

Porta in uscita 22

4. Avviare l'applicazione. Una volta avviata l'applicazione, estrarre il file segreto condiviso dall'appliance di VPN:

grid> comp ssh APPLICATION:main.VPN
vpn> cat /mnt/data/server/secret.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
431e845f2ca67f2a31649b20e3ba3291
...
fe991cdbfe82525a9367b9afbfd0f922
-----END OpenVPN Static key V1-----

5. Incollare il contenuto di secret.key di cui sopra in un file nuovo sul PC dell'utente e salvare il file. Questo è un file segreto condiviso che viene utilizzato per l'autenticazione.

6. Preparare un file di configurazione di OpenVPN client. Copiare le seguenti righe in un nuovo file sul PC dell'utente (un file diverso dalla fase 5):

dev tun
proto udp
resolv-retry infinite
persist-key
persist-tun
cipher AES-128-CBC
comp-lzo
keepalive 10 120
remote 11.22.33.44 1194
secret "C:\\Program Files\\OpenVPN\\sample-config\\secret.key"
nobind
ifconfig 169.254.215.101 169.254.215.102

Gli indirizzi IP nella linea di ifconfig possono essere di qualsiasi tipo, a condizione che siano: a) dal blocco di rete 169.254.0.0/16) b) nello stesso subnet di /30 c) non sono il primo o l'ultimo indirizzo nel subnet di /30. B e C sono i limiti del client di OpenVPN che viene eseguito sulla piattaforma Windows.

7. Sostituire l'indirizzo IP remoto dall'indirizzo IP che è assegnato all'appliance di VPN. Sostituire il percorso al file segreto condiviso nella linea segreta con il percorso del file di codici creato nella fase 5. Se si usa il sistema operativo Microsoft Windows sul PC in cui è stato installato OpenVPN, chiudere tutte le linee nelle citazioni e sostituire ogni slash con un doppio slash.

8. Avviare il client di OpenVPN:

c:\program files\OpenVPN\bin\openvpn.exe --config "c:\client.ovpn"

Nota: sostituire "c:\client.ovpn" con il percorso al file di configurazione creato nella fase 6.

9. Dopo pochi secondi, viene visualizzato il seguente messaggio da OpenVPN:

Wed Jul 01 09:41:12 2009 Peer Connection Initiated with XX.XX.XX.XX:1194
Wed Jul 01 09:41:12 2009 Initialization Sequence Completed

Ora è possibile accedere alle appliance dell'applicazione di CA AppLogic® usando l'indirizzo IP definito nei file di configurazione (169.254.215.102 in questo caso). La porta 169.254.215.102:122 è inoltrata da sw alla porta 22 dell'appliance di srv1, mentre la porta 169.254.215.102:422 è inoltrata all'appliance di srv4, ecc. Per esempio, eseguire

ssh -p 122 root@169.254.215.102

per accedere alla prima appliance.

Fornire un tunnel VPN sicuro per la replica MySQL

Il seguente diagramma illustra un esempio di come è possibile fornire tunnel VPN sicuri per la replica di MySQL:

In questo esempio due applicazioni eseguite su griglie differenti, Griglia A e Griglia B, in cui entrambe usano lo stesso database MySQL che è replicato attraverso un tunnel VPN sicuro.

vpn1 e vpn2 sono configurati con indirizzo IP instradabile sulle loro interfacce esterne. vpn1 è configurato per stabilire un tunnel a vpn2, e viceversa.

db1 da Griglia A invia traffico a vpn1 per la replica, dove è codificato ed è trasmesso a vpn2 che decifra il traffico e lo invia al terminale rin di db2 sulla Griglia B. Analogamente, la replica da db2 sulla Griglia B a db1 sulla Griglia A si comporta allo stesso modo.

vpn1:

Nome di proprietà

Valore

note

ip_addr

82.56.42.25

Indirizzo assegnato all'interfaccia esterna.

modalità

entrambi

Modalità server di operazione

tunnel

codice ssh

Utilizzo dei file di codice SSH.

auth_path

"/keys/vpn21.ssh.key"

Percorso al file di codice SSH.

remote_host

92.72.57.95

Indirizzo assegnato all'interfaccia esterna di vpn2.

tcp_ports

3306,22

Porta predefinita per il server MySQL e SSH.

ssh_ports

3306,22

Porta predefinita per il server MySQL e SSH.

vpn2:

Nome di proprietà

Valore

note

ip_addr

92.72.57.95

Indirizzo assegnato all'interfaccia esterna.

modalità

entrambi

Modalità server di operazione

tunnel

codice ssh

Utilizzo dei file di codice SSH.

auth_path

"/keys/vpn21.ssh.key"

Percorso al file di codice SSH.

remote_host

82.56.42.25

Indirizzo assegnato all'interfaccia esterna di vpn1.

tcp_ports

3306,22

Porta predefinita per il server MySQL e SSH.

ssh_ports

3306,22

Porta predefinita per il server MySQL e SSH.

vpn1:

Nome di proprietà

Valore

note

ip_addr

82.56.42.25

Indirizzo assegnato all'interfaccia esterna.

modalità

entrambi

Agisce come server e client, permettendo la replica a doppio senso.

tunnel

segreto condiviso di IPsec

Codifica del traffico con IPSec.

auth_path

"/keys/ipsec.key"

Percorso al file segreto condiviso di IPsec.

remote_host

92.72.57.95

Indirizzo assegnato all'interfaccia esterna di vpn2.

tcp_ports

3306,22

Porta predefinita per il server MySQL e SSH.

vpn2:

Nome di proprietà

Valore

note

ip_addr

92.72.57.95

Indirizzo assegnato all'interfaccia esterna.

modalità

entrambi

Agisce come server e client, permettendo la replica a doppio senso.

tunnel

segreto condiviso di IPsec

Codifica del traffico con IPSec.

auth_path

"/keys/server/ipsec.key"

Percorso al file segreto condiviso di IPsec

remote_host

82.56.42.25

Indirizzo assegnato all'interfaccia esterna di vpn1.

tcp_ports

3306,22

Porta predefinita per il server MySQL e SSH.

note

OpenVPN deve essere usato sul computer del client per poter accedere a un tunnel VPN sicuro esposto dall'appliance VPN.

Questa appliance usa software Open Source di terze parti

VPN usa i seguenti pacchetti Open Source di terze parti oltre ai pacchetti Open Source di terze parti usati dalla loro classe di base LUX6.

Software

Versione

Modificato

License

note

IPsec-Tools

0.6.5-13.el5_3.1

No

BSD

pagina iniziale

iptables

1.3.5-5.3.el5_4.1

No

GPLv2

N/A

iptables-ipv6

1.3.5-5.3.el5_4.1

No

GPLv2

N/A

LZO

2.03

No

GPLv2

pagina iniziale

OpenVPN

2.1.4

No

GPLv2

pagina iniziale

samba-client

3.0.33-3.15.el5_4

No

GPLv2

N/A

samba-common

3.0.33-3.15.el5_4

No

GPLv2

N/A

iproute2

2.6.29-1

No

GPLv2

pagina iniziale

autossh

1.4b

No

BSD

pagina iniziale