
Oggi esamineremo le possibilità di configurazione del VPN che ci offre NSX Edge.
In generale, possiamo suddividere le tecnologie VPN in due categorie principali:
- VPN site-to-site. IPSec è spesso utilizzato per creare un tunnel sicuro, ad esempio, tra la rete della sede centrale e una rete in una sede remota o nel cloud.
- VPN di accesso remoto. Utilizzata per collegare singoli utenti a reti private di organizzazioni tramite software client VPN.
NSX Edge ci consente di utilizzare entrambe le opzioni.
Effettueremo la configurazione utilizzando un ambiente di test con due NSX Edge, un server Linux con il demone e un laptop con Windows per testare il VPN di accesso remoto.
IPsec
- Nell'interfaccia di vCloud Director, andiamo alla sezione Amministrazione e selezioniamo vDC. Nella scheda Edge Gateways, selezioniamo l'Edge desiderato, facciamo clic con il tasto destro e scegliamo Servizi Edge Gateway.

- Nell'interfaccia di NSX Edge, andiamo alla scheda VPN-IPsec VPN, poi alla sezione IPsec VPN Sites e clicchiamo su + per aggiungere un nuovo sito.

- Compiliamo i campi necessari:
- Abilitato – attiva il sito remoto.
- PFS – garantisce che ogni nuova chiave crittografica non sia collegata ad alcuna chiave precedente.
- ID locale e Endpoint locale– indirizzo esterno di NSX Edge.
- Sottorete locale– reti locali che utilizzeranno IPsec VPN.
- ID peer e Endpoint peer – indirizzo del sito remoto.
- Sottoreti peer – reti che utilizzeranno IPsec VPN sul lato remoto.
- Algoritmo di crittografia – algoritmo di crittografia del tunnel.

- Autenticazione – come ci autenticheremo con il peer. Possiamo utilizzare una chiave precondivisa o un certificato.
- Chiave precondivisa – indichiamo la chiave da utilizzare per l'autenticazione che deve coincidere da entrambe le parti.
- Gruppo Diffie-Hellman – algoritmo di scambio delle chiavi.
Dopo aver completato i campi necessari, facciamo clic su Keep.

- Fatto.

- Dopo aver aggiunto il sito, andiamo alla scheda Stato di attivazione e attiviamo il Servizio IPsec.

- Dopo che le impostazioni sono state applicate, andiamo alla scheda Statistiche → IPsec VPN e verifichiamo lo stato del tunnel. Vedi che il tunnel è attivo.

- Controlliamo lo stato del tunnel dalla console dell'Edge gateway:
- show service ipsec – verifica dello stato del servizio.

- show service ipsec site – informazioni sullo stato del sito e sui parametri concordati.

- show service ipsec sa – verifica dello stato dell'Association di Sicurezza (SA).

- show service ipsec – verifica dello stato del servizio.
- Verifica della connettività con il sito remoto:
root@racoon:~# ifconfig eth0:1 | grep inet inet 10.255.255.1 netmask 255.255.255.0 broadcast 0.0.0.0 root@racoon:~# ping -c1 -I 10.255.255.1 192.168.0.10 PING 192.168.0.10 (192.168.0.10) from 10.255.255.1 : 56(84) bytes of data. 64 bytes from 192.168.0.10: icmp_seq=1 ttl=63 time=59.9 ms --- 192.168.0.10 statistiche sul ping --- 1 pacchetti trasmessi, 1 ricevuto, 0% perdita di pacchetti, tempo 0ms rtt min/avg/max/mdev = 59.941/59.941/59.941/0.000 msFile di configurazione e comandi aggiuntivi per la diagnosi dal lato del server Linux remoto:
root@racoon:~# cat /etc/racoon/racoon.conf log debug; path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; listen { isakmp 80.211.43.73 [500]; strict_address; } remote 185.148.83.16 { exchange_mode main,aggressive; proposal { encryption_algorithm aes256; hash_algorithm sha1; authentication_method pre_shared_key; dh_group modp1536; } generate_policy on; } sainfo address 10.255.255.0/24 any address 192.168.0.0/24 any { encryption_algorithm aes256; authentication_algorithm hmac_sha1; compression_algorithm deflate; } === root@racoon:~# cat /etc/racoon/psk.txt 185.148.83.16 testkey === root@racoon:~# cat /etc/ipsec-tools.conf #! /usr/sbin/setkey -f flush; spdflush; spdadd 192.168.0.0/24 10.255.255.0/24 any -P in ipsec esp/tunnel/185.148.83.16-80.211.43.73/require; spdadd 10.255.255.0/24 192.168.0.0/24 any -P out ipsec esp/tunnel/80.211.43.73-185.148.83.16/require; === root@racoon:~# racoonctl show-sa isakmp Destinazione Cookies Creata 185.148.83.16.500 2088977aceb1b512:a4c470cb8f9d57e9 2019-05-22 13:46:13 === root@racoon:~# racoonctl show-sa esp 80.211.43.73 185.148.83.16 esp mode=tunnel spi=1646662778(0x6226147a) reqid=0(0x00000000) E: aes-cbc 00064df4 454d14bc 9444b428 00e2296e c7bb1e03 06937597 1e522ce0 641e704d A: hmac-sha1 aa9e7cd7 51653621 67b3b2e9 64818de5 df848792 seq=0x00000000 replay=4 flags=0x00000000 stato=mature creata: 22 Maggio 13:46:13 2019 attuale: 22 Maggio 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: 22 Maggio 13:46:13 2019 hard: 0(s) soft: 0(s) attuale: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocato: 860 hard: 0 soft: 0 sadb_seq=1 pid=7739 refcnt=0 185.148.83.16 80.211.43.73 esp mode=tunnel spi=88535449(0x0546f199) reqid=0(0x00000000) E: aes-cbc c812505a 9c30515e 9edc8c4a b3393125 ade4c320 9bde04f0 94e7ba9d 28e61044 A: hmac-sha1 cd9d6f6e 06dbcd6d da4d14f8 6d1a6239 38589878 seq=0x00000000 replay=4 flags=0x00000000 stato=mature creata: 22 Maggio 13:46:13 2019 attuale: 22 Maggio 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: 22 Maggio 13:46:13 2019 hard: 0(s) soft: 0(s) attuale: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocato: 860 hard: 0 soft: 0 sadb_seq=0 pid=7739 refcnt=0 - Tutto pronto, VPN IPsec da sito a sito è configurata e funzionante.
In questo esempio abbiamo utilizzato PSK per l'autenticazione del peer, ma è possibile anche un'opzione di autenticazione tramite certificati. Per farlo, è necessario accedere alla scheda Configurazione Globale, abilitare l'autenticazione tramite certificati e selezionare il certificato stesso.
Inoltre, nelle impostazioni del sito sarà necessario modificare il metodo di autenticazione.


Vorrei sottolineare che il numero di tunnel IPsec dipende dalle dimensioni dell'Edge Gateway distribuito (a riguardo, leggi nel nostro ).
SSL VPN
SSL VPN-Plus è una delle varianti di Remote Access VPN. Consente a singoli utenti remoti di connettersi in modo sicuro a reti private situate dietro il gateway NSX Edge. Il tunnel crittografato in caso di SSL VPN-plus viene stabilito tra il client (Windows, Linux, Mac) e NSX Edge.
- Iniziamo a configurare. Nel pannello di controllo dei servizi Edge Gateway, passiamo alla scheda SSL VPN-Plus, poi a Server Settings. Selezioniamo l'indirizzo e la porta su cui il server ascolterà le connessioni in ingresso, attiviamo la registrazione e scegliamo gli algoritmi di crittografia necessari.

Qui è possibile anche modificare il certificato che utilizzerà il server.
- Dopo che tutto è pronto, attiviamo il server e non dimentichiamo di salvare le impostazioni.

- Dopo, è necessario configurare un pool di indirizzi che verranno assegnati ai client durante la connessione. Questa rete è separata da qualsiasi sottorete esistente nel tuo ambiente NSX e non deve essere configurata su altri dispositivi nelle reti fisiche, ad eccezione delle rotte che la puntano.
Passiamo alla scheda Pool IP e facciamo clic su +.

- Selezioniamo indirizzi, maschera di sottorete e gateway. Qui è possibile modificare le impostazioni per i server DNS e WINS.

- Il pool risultante.

- Ora aggiungiamo le reti a cui avranno accesso gli utenti che si connettono tramite VPN. Passiamo alla scheda Reti Private e facciamo clic su +.

- Compiliamo:
- Network — rete locale a cui avranno accesso gli utenti remoti.
- Invia traffico, ha due opzioni:
— over tunnel – inviare traffico alla rete tramite tunnel,
— bypass tunnel – inviare traffico alla rete direttamente bypassando il tunnel. - Abilita Ottimizzazione TCP – seleziona se hai scelto l'opzione over tunnel. Quando l'ottimizzazione è attiva, puoi specificare i numeri di porta per cui ottimizzare il traffico. Il traffico per le rimanenti porte di questa rete specifica non sarà ottimizzato. Se i numeri di porta non sono specificati, il traffico per tutte le porte sarà ottimizzato. Maggiori dettagli su questa funzione sono disponibili qui. .

- Andiamo alla scheda Authentication e facciamo clic su +. Per l'autenticazione utilizzeremo un server locale sul NSX Edge.

- Qui possiamo selezionare le politiche per generare nuove password e configurare le opzioni per il blocco degli account utente (ad esempio, il numero di tentativi consentiti in caso di password errata).


- Poiché utilizziamo l'autenticazione locale, è necessario creare gli utenti.

- Oltre alle informazioni di base come nome e password, qui possiamo, ad esempio, vietare all'utente di modificare la password oppure, al contrario, obbligarlo a cambiarla al prossimo accesso.

- Dopo aver aggiunto tutti gli utenti necessari, passiamo alla scheda Installation Packages, facciamo clic su + e creiamo l'installer che scaricherà per l'installazione il dipendente remoto.

- Facciamo clic su +. Selezioniamo l'indirizzo e la porta del server a cui si connetterà il client, e le piattaforme per le quali è necessario generare il pacchetto di installazione.

Sotto questa finestra possiamo specificare i parametri del client per Windows. Selezioniamo:- start client on logon – il client VPN sarà aggiunto all'avvio automatico sulla macchina remota;
- create desktop icon – creerà un'icona del client VPN sul desktop;
- server security certificate validation – convaliderà il certificato del server al momento della connessione.
La configurazione del server è completata.

- Ora scarichiamo il pacchetto di installazione che abbiamo creato nell'ultimo passaggio sul PC remoto. Durante la configurazione del server, abbiamo specificato il suo indirizzo esterno (185.148.83.16) e la porta (445). Dobbiamo accedere a questo indirizzo tramite il browser web. Nel mio caso è :445.
Nella finestra di accesso è necessario inserire le credenziali dell'utente che abbiamo creato in precedenza.

- Dopo l'autenticazione, ci appare un elenco dei pacchetti di installazione creati, disponibili per il download. Ne abbiamo creato solo uno e lo scaricheremo.

- Clicchiamo sul link e inizia il download del client.

- Estraiamo l'archivio scaricato e avviamo l'installer.

- Dopo l'installazione, avviamo il client e nella finestra di accesso facciamo clic su Login.

- Nella finestra di verifica del certificato scegliamo Sì.

- Inseriamo le credenziali per l'utente creato in precedenza e vediamo che la connessione è completata con successo.


- Controlliamo le statistiche del client VPN sul computer locale.


- Nella riga di comando di Windows (ipconfig /all) vediamo che è apparso un ulteriore adattatore virtuale e la connessione con la rete remota è attiva, tutto funziona:


- E infine – verifica dalla console Edge Gateway.

L2 VPN
L2VPN sarà necessario quando bisogna unire più reti geograficamente
distribuite in un unico dominio di broadcast.
Questo può essere utile, ad esempio, durante la migrazione di una macchina virtuale: quando si sposta la VM su un'altra sede geografica, la macchina manterrà le impostazioni dell'indirizzo IP e non perderà la connettività con altre macchine che si trovano nello stesso dominio L2.
Nella nostra ambiente di test collegheremo tra loro due sedi, chiameremo rispettivamente A e B. Abbiamo due NSX e due reti instradabili create in modo identico, collegate a diverse Edge. La macchina A ha l'indirizzo 10.10.10.250/24, la macchina B – 10.10.10.2/24.
- In vCloud Director andiamo alla scheda Amministrazione, accediamo al VDC di nostro interesse, andiamo alla scheda Reti Org VDC e aggiungiamo due nuove reti.

- Selezioniamo il tipo di rete instradata e colleghiamo questa rete al nostro NSX. Selezioniamo la casella di controllo Crea come subinterfaccia.

- In definitiva, dovremmo avere due reti. Nel nostro esempio si chiamano network-a e network-b con le stesse impostazioni del gateway e la stessa maschera.


- Ora passiamo alle impostazioni del primo NSX. Questo sarà l’NSX a cui è collegata la rete A. Funzionerà come server.
Torniamo all'interfaccia NSX Edge / Passiamo alla scheda VPN → L2VPN. Attiviamo L2VPN, selezioniamo la modalità Server, nelle impostazioni Server Global indichiamo l'indirizzo IP esterno dell’NSX, sul quale ascolterà la porta per il tunnel. Per impostazione predefinita, il socket verrà aperto sulla porta 443, ma è possibile cambiarlo. Non dimentichiamo di selezionare le impostazioni di crittografia per il futuro tunnel.

- Andiamo alla scheda Siti Server e aggiungiamo un peer.

- Abilitiamo il peer, impostiamo un nome, una descrizione, se necessario, e impostiamo un nome utente e una password. Questi dati ci serviranno in seguito per configurare il sito cliente.
Nell’indirizzo del Gateway di ottimizzazione Egress indichiamo l'indirizzo del gateway. Questo è necessario per evitare conflitti di indirizzi IP, poiché il gateway delle nostre reti ha lo stesso indirizzo. Dopodiché clicchiamo sul pulsante SELEZIONA SUB-INTERFACES.

- Qui selezioniamo la subinterfaccia desiderata. Salviamo le impostazioni.

- Vediamo che nelle impostazioni è apparso il sito cliente appena creato.

- Ora passiamo alla configurazione dell’NSX dal lato cliente.
Accediamo al lato B di NSX, andiamo su VPN -> L2VPN, attiviamo L2VPN e impostiamo la modalità L2VPN in modalità client. Nella scheda Client Global inseriamo l'indirizzo e la porta di NSX A, che abbiamo precedentemente specificato come Listening IP e Port sul lato server. È necessario inoltre impostare le stesse configurazioni di crittografia affinché siano allineate durante l'instaurazione del tunnel.

Scorriamo verso il basso, selezioniamo il sott'interfaccia tramite cui verrà creato il tunnel per L2VPN.
Nell'indirizzo Egress Optimization Gateway impostiamo l'indirizzo del gateway. Inseriamo user-id e password. Selezioniamo il sott'interfaccia e non dimentichiamo di salvare le impostazioni.
- Fondamentalmente, questo è tutto. Le impostazioni del lato client e del lato server sono praticamente identiche, ad eccezione di alcuni dettagli.
- Ora possiamo controllare se il nostro tunnel è attivo, andando su Statistics -> L2VPN in qualsiasi NSX.

- Se ora accediamo alla console di qualsiasi Edge Gateway, vedremo in ciascuno di essi negli arp-table gli indirizzi di entrambe le VM.

Questo è tutto per quanto riguarda il VPN su NSX Edge. Chiedete pure se c'è qualcosa che non è chiaro. Questo è anche l'ultimo articolo di una serie riguardante il funzionamento di NSX Edge. Speriamo che siano stati utili 🙂
Fonte: habr.com























































