
Oggi esamineremo le opzioni di configurazione VPN offerte da NSX Edge.
In generale, possiamo suddividere le tecnologie VPN in due categorie principali:
- VPN site-to-site. Di solito si utilizza IPSec per creare un tunnel sicuro, ad esempio, tra la rete della sede centrale e una rete remota o nel cloud.
- VPN di accesso remoto. Utilizzato per connettere singoli utenti a reti private aziendali tramite software client VPN.
NSX Edge ci consente di utilizzare entrambe le opzioni.
Effettueremo la configurazione utilizzando un banco di prova con due NSX Edge, un server Linux con il demone e un laptop con Windows per testare la VPN di accesso remoto.
IPsec
- Nell'interfaccia di vCloud Director, passiamo alla sezione Amministrazione e selezioniamo vDC. Nella scheda Edge Gateways, scegliamo l'Edge desiderato, facciamo clic con il tasto destro e selezioniamo Servizi Edge Gateway.

- Nell'interfaccia di NSX Edge, andiamo alla scheda VPN-IPsec VPN, quindi nella 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 a nessuna chiave precedente.
- ID locale e Endpoint locale– indirizzo esterno di NSX Edge.
- Subnet locali– le reti locali che utilizzeranno IPsec VPN.
- ID peer e Endpoint peer – indirizzo del sito remoto.
- Subnet peer – reti che utilizzeranno IPsec VPN sul lato remoto.
- Algoritmo di crittografia – algoritmo di crittografia del tunnel.

- Autenticazione – come autenticheremo il peer. Possiamo utilizzare una chiave condivisa o un certificato.
- Chiave condivisa – indichiamo la chiave che verrà utilizzata per l'autenticazione e deve coincidere su entrambi i lati.
- Gruppo Diffie-Hellman – algoritmo di scambio delle chiavi.
Dopo aver compilato i campi necessari, clicchiamo su Keep.

- Fatto.

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

- Una volta applicate le impostazioni, andiamo alla scheda Statistiche -> IPsec VPN e controlliamo lo stato del tunnel. Possiamo vedere che il tunnel è attivo.

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

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

- show service ipsec sa – verifica dello stato della Security Association (SA).

- show service ipsec – controllo dello stato del servizio.
- Controllo 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) da 10.255.255.1 : 56(84) byte di dati. 64 byte da 192.168.0.10: icmp_seq=1 ttl=63 time=59.9 ms --- statistiche di ping per 192.168.0.10 --- 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 diagnostica dal 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 Destination Cookies Created 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 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 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 state=mature created: May 22 13:46:13 2019 current: May 22 14:07:43 2019 diff: 1290(s) hard: 3600(s) soft: 2880(s) last: May 22 13:46:13 2019 hard: 0(s) soft: 0(s) current: 72240(bytes) hard: 0(bytes) soft: 0(bytes) allocated: 860 hard: 0 soft: 0 sadb_seq=0 pid=7739 refcnt=0 - Tutto è pronto, VPN IPsec site-to-site è configurata e funzionante.
In questo esempio abbiamo utilizzato PSK per l'autenticazione del peer, ma è possibile anche l'autenticazione tramite certificati. Per farlo, è necessario andare alla scheda Configurazione globale, attivare l'autenticazione tramite certificati e selezionare il certificato stesso.
Inoltre, nelle impostazioni del sito sarà necessario cambiare il metodo di autenticazione.


È importante notare che il numero di tunnel IPsec dipende dalle dimensioni del Edge Gateway distribuito (per approfondire, leggi il nostro ).
SSL VPN
SSL VPN-Plus è una delle opzioni di Remote Access VPN. Consente a singoli utenti remoti di connettersi in modo sicuro a reti private dietro il gateway NSX Edge. Il tunnel crittografato, nel caso di SSL VPN-Plus, viene stabilito tra il client (Windows, Linux, Mac) e NSX Edge.
- Iniziamo la configurazione. Nella dashboard dei servizi Edge Gateway andiamo alla scheda SSL VPN-Plus e poi su Impostazioni server. Scegliamo l'indirizzo e la porta su cui il server ascolterà le connessioni in entrata, attiviamo la registrazione e scegliamo gli algoritmi di crittografia necessari.

Qui è possibile cambiare anche il certificato che utilizzerà il server.
- Una volta che tutto è pronto, accendiamo il server e non dimentichiamo di salvare le impostazioni.

- Ora dobbiamo configurare il pool di indirizzi che forniremo ai clienti durante la connessione. Questa rete è separata da qualsiasi sottorete esistente nel vostro ambiente NSX e non deve essere configurata su altri dispositivi nelle reti fisiche, ad eccezione delle route che puntano ad essa.
Passiamo alla scheda IP Pools e clicchiamo su +.

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

- Il pool risultante.

- Ora aggiungiamo le reti a cui avranno accesso gli utenti connessi tramite VPN. Passiamo alla scheda Private Networks e clicchiamo su +.

- Compiliamo:
- Network — rete locale a cui avranno accesso gli utenti remoti.
- Send traffic, ha due opzioni:
— over tunnel – inviare il traffico alla rete attraverso il tunnel,
— bypass tunnel – inviare il traffico alla rete direttamente bypassando il tunnel. - Abilita l'ottimizzazione TCP – seleziona questa opzione se hai scelto il metodo over tunnel. Quando l'ottimizzazione è attiva, puoi specificare i numeri delle porte per cui è necessario ottimizzare il traffico. Il traffico per le altre porte di questa specifica rete non sarà ottimizzato. Se non vengono specificati numeri di porta, il traffico per tutte le porte sarà ottimizzato. Per ulteriori informazioni su questa funzione, consulta .

- Successivamente, vai alla scheda Authentication e fai clic su +. Per l'autenticazione, utilizzeremo un server locale direttamente sul NSX Edge.

- Qui possiamo selezionare 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 inserimento errato della password).


- Poiché stiamo utilizzando l'autenticazione locale, è necessario creare utenti.

- Oltre agli elementi di base come nome e password, qui puoi, ad esempio, vietare all'utente di modificare la password o, al contrario, costringerlo a cambiarla al prossimo accesso.

- Dopo aver aggiunto tutti gli utenti necessari, andiamo alla scheda Installation Packages, clicchiamo su + e creiamo l'installer che scaricherà per l'installazione l'utente remoto.

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

Di seguito, in questa finestra, possiamo specificare le impostazioni del client per Windows. Selezioniamo:- avviare il client all'accesso – il client VPN verrà aggiunto all'avvio automatico della macchina remota;
- crea icona sul desktop – creerà un'icona del client VPN sul desktop;
- validazione del certificato di sicurezza del server – convaliderà il certificato del server durante la connessione.
Configurazione del server completata.

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

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

- Clicchiamo sul link, inizia il download del client.

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

- Dopo l'installazione, avviamo il client e nella finestra di login clicchiamo su Login.

- Nella finestra di verifica del certificato selezioniamo Yes.

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


- Controlliamo le statistiche del client VPN sul computer locale.


- Nel prompt dei comandi di Windows (ipconfig /all) vediamo che è apparso un adattatore virtuale aggiuntivo e che c'è connettività con la rete remota, tutto funziona:


- E infine, una verifica dalla console Edge Gateway.

L2 VPN
L2VPN sarà necessario quando si deve unire più reti geograficamente
distribuite in un unico dominio broadcast.
Questo può essere utile, ad esempio, quando si migra una macchina virtuale: trasferendo la VM in un'altra sede geografica, la macchina manterrà le impostazioni di indirizzamento 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, chiamandole rispettivamente A e B. Abbiamo due NSX e due reti instradabili create allo stesso modo, 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, entriamo nel nostro VDC preferito, andiamo alla scheda Org VDC Networks e aggiungiamo due nuove reti.

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

- Dobbiamo ottenere due reti. Nel nostro esempio si chiamano network-a e network-b con le stesse impostazioni di gateway e la stessa maschera.


- Ora procediamo alle impostazioni del primo NSX. Sarà l’NSX a cui è collegata la rete A. Questo fungerà da server.
Torniamo all'interfaccia NSX Edge. Passiamo alla scheda VPN → L2VPN. Abilitiamo L2VPN, selezioniamo la modalità Server, nelle impostazioni Server Global inseriamo l'indirizzo IP esterno di NSX, su cui il port per il tunnel sarà in ascolto. Per impostazione predefinita, il socket si aprirà sulla porta 443, ma può essere cambiato. Non dimentichiamo di scegliere le impostazioni di crittografia per il tunnel futuro.

- Andiamo alla scheda Server Sites e aggiungiamo un peer.

- Abilitiamo il peer, diamo un nome, una descrizione, se necessario, e impostiamo un nome utente e una password. Queste informazioni ci serviranno più tardi durante la configurazione del sito client.
In Egress Optimization Gateway Address, we specify the gateway address. This is necessary to avoid IP address conflicts, as the gateway for our networks shares the same address. After that, we click the SELECT SUB-INTERFACES button.

- Here, we select the desired sub-interface. We save the settings.

- We can see that the newly created client site has appeared in the settings.

- Now let's move on to configuring NSX from the client side.
We access the NSX side B, navigate to VPN → L2VPN, enable L2VPN, and set the L2VPN mode to client mode. In the Client Global tab, we specify the address and port of NSX A, which we indicated earlier as Listening IP and Port on the server side. It's also necessary to set identical encryption settings so that they match when the tunnel is established.

Scroll down, select the sub-interface through which the tunnel for L2VPN will be built.
In Egress Optimization Gateway Address, we specify the gateway address. We set the user-id and password. We choose the sub-interface and remember to save the settings.
- That's it. The configurations on the client and server sides are practically identical, with a few exceptions.
- Ora possiamo vedere che il nostro tunnel funziona, accedendo a Statistiche → L2VPN in qualsiasi NSX.

- Se ora accediamo alla console di qualsiasi Edge Gateway, vedremo gli indirizzi di entrambe le VM nella tabella ARP di ognuno di essi.

Per quanto riguarda il VPN su NSX Edge, ho concluso qui. Fate domande se c'è qualcosa che non è chiaro. Questa è anche l'ultima parte della serie di articoli su NSX Edge. Speriamo che siano stati utili 🙂
Fonte: habr.com























































