
Astăzi vom analiza posibilitățile de configurare a VPN-ului pe care ni le oferă NSX Edge.
În general, putem împărți tehnologiile VPN în două tipuri cheie:
- VPN site-to-site. Cel mai adesea se folosește IPSec pentru a crea un tunel securizat, de exemplu, între rețeaua sediului și rețeaua de la o locație îndepărtată sau în cloud.
- VPN de acces la distanță. Este utilizat pentru a conecta utilizatori individuali la rețelele private ale organizațiilor prin intermediul software-ului client VPN.
NSX Edge ne permite să utilizăm ambele variante.
Configurarea se va face folosind un mediu de testare cu două NSX Edge, un server Linux cu demonul și un laptop cu Windows pentru testarea VPN-ului de acces la distanță.
IPsec
- În interfața vCloud Director, mergem la secțiunea Administrare și selectăm vDC. În tab-ul Edge Gateways, alegem Edge-ul dorit, facem clic dreapta și selectăm Servicii Edge Gateway.

- În interfața NSX Edge, mergem la tab-ul VPN-IPsec VPN, apoi la secțiunea IPsec VPN Sites și apăsăm + pentru a adăuga o nouă locație.

- Completăm câmpurile necesare:
- Enabled – activează locația la distanță.
- PFS – garantează că fiecare nouă cheie criptografică nu este legată de nicio cheie anterioară.
- Local ID și Local Endpoint– adresa externă a NSX Edge.
- Local Subnets– rețelele locale care vor folosi IPsec VPN.
- Peer ID și Peer Endpoint – adresa locației la distanță.
- Peer Subnets – rețelele care vor folosi IPsec VPN de partea cealaltă.
- Algoritm de criptare – algoritmul de criptare al tunelului.

- Autentificare – cum ne vom autentifica peer-ul. Putem folosi Pre-Shared Key sau certificat.
- Pre-Shared Key – introducem cheia care va fi folosită pentru autentificare și care trebuie să corespundă de ambele părți.
- Grupul Diffie-Hellman – algoritmul de schimb al cheilor.
După completarea câmpurilor necesare, apăsăm Keep.

- Gata.

- După adăugarea locației, mergem la tab-ul Activation Status și activăm serviciul IPsec.

- După ce setările sunt aplicate, ne mutăm la tab-ul Statistics -> IPsec VPN și verificăm starea tunelului. Vedem că tunelul a fost stabilit.

- Verificăm starea tunelului din consola Edge gateway:
- show service ipsec – verificarea stării serviciului.

- show service ipsec site – informații despre starea site-ului și parametrii conveniți.

- show service ipsec sa – verificarea stării Asocierii de Securitate (SA).

- show service ipsec – verificarea stării serviciului.
- Verificare conectivitate cu locația la distanță:
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 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 59.941/59.941/59.941/0.000 msFișierele de configurare și comenzile suplimentare pentru diagnosticul de pe serverul Linux la distanță:
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 - Totul este pregătit, VPN IPsec site-to-site este configurat și funcționează.
În acest exemplu, am folosit PSK pentru autentificarea peer-ului, dar este posibil și un mod de autentificare prin certificate. Pentru aceasta, trebuie să accesați tab-ul Configurare globală, să activați autentificarea prin certificate și să selectați certificatul dorit.
În plus, va fi necesar să schimbați metoda de autentificare în setările site-ului.


Voi menționa că numărul de tuneluri IPsec depinde de dimensiunea Edge Gateway-ului desfășurat (citiți despre aceasta în ).
SSL VPN
SSL VPN-Plus este o variantă a Remote Access VPN. Permite utilizatorilor îndepărtați să se conecteze în siguranță la rețele private aflate în spatele NSX Edge. Tunelul criptat, în cazul SSL VPN-Plus, este stabilit între client (Windows, Linux, Mac) și NSX Edge.
- Să începem cu configurarea. În panoul de control al serviciilor Edge Gateway, navigăm la tab-ul SSL VPN-Plus, apoi la Server Settings. Alegem adresa și portul pe care serverul va asculta conexiunile de intrare, activăm logarea și selectăm algoritmii de criptare necesari.

De asemenea, aici putem schimba certificatul care va fi utilizat de server.
- După ce totul este pregătit, activăm serverul și nu uităm să salvăm configurațiile.

- Apoi, trebuie să configurăm un pool de adrese pe care le vom aloca clienților la conectare. Această rețea este separată de orice subnet existent în mediu NSX și nu trebuie configurată pe alte dispozitive din rețelele fizice, cu excepția rutelor care indică către aceasta.
Navigăm la tab-ul IP Pools și apăsăm +.

- Alegem adresele, masca de subrețea și gateway-ul. Aici putem, de asemenea, să schimbăm configurațiile pentru serverele DNS și WINS.

- Pool-ul rezultat.

- Acum, să adăugăm rețelele la care utilizatorii conectați la VPN vor avea acces. Vom trece la tab-ul Private Networks și vom apăsa +.

- Completați:
- Rețeaua — rețeaua locală la care utilizatorii îndepărtați vor avea acces.
- Send traffic, are două opțiuni:
— over tunnel – trimiteți traficul către rețea prin tunel,
— bypass tunnel – trimiteți traficul către rețea direct, ocolind tunelul. - Enable TCP Optimization – bifați dacă ați ales opțiunea over tunnel. Când optimizarea este activată, puteți specifica numerele de porturi pentru care trebuie optimizat traficul. Traficul pentru celelalte porturi ale acestei rețele în special nu va fi optimizat. Dacă numerele de porturi nu sunt specificate, traficul pentru toate porturile va fi optimizat. Pentru mai multe detalii despre această funcție, citiți .

- Apoi, trecem la tab-ul Authentication și apăsăm +. Pentru autentificare, vom folosi un server local pe NSX Edge.

- Aici putem alege politicile pentru generarea de parole noi și configura opțiunile de blocare a conturilor utilizatorilor (de exemplu, numărul de încercări repetate în cazul introducerii greșite a parolei).


- Deoarece folosim autentificarea locală, este necesar să creăm utilizatori.

- Pe lângă lucrurile de bază precum numele și parola, putem, de exemplu, să interzicem utilizatorului să își schimbe parola sau, dimpotrivă, să impunem să schimbe parola la următoarea autentificare.

- După ce toți utilizatorii necesari au fost adăugați, trecem la tabul Pachete de Instalare, apăsăm + și creăm installer-ul care va descărca pentru instalare angajatul remote.

- Apăsăm +. Alegem adresa și portul serverului la care se va conecta clientul și platformele pentru care trebuie să generăm pachetul de instalare.

Mai jos în această fereastră putem specifica parametrii clientului pentru Windows. Alegem:- start client on logon – clientul VPN va fi adăugat la pornirea automată pe mașina remote;
- create desktop icon – va crea o icoană pentru clientul VPN pe birou;
- server security certificate validation – va valida certificatul serverului la conectare.
Configurarea serverului a fost finalizată.

- Acum să descărcăm pachetul de instalare creat de noi în ultimul pas pe PC-ul remote. La configurarea serverului, am specificat adresa sa externă (185.148.83.16) și portul (445). La această adresă trebuie să accedem în browser. În cazul meu, este :445.
În fereastra de autentificare, trebuie să introducem acreditivele pentru utilizatorul pe care l-am creat anterior.

- După autentificare, ni se va prezenta o listă cu pachetele de instalare create disponibile pentru descărcare. Am creat doar unul – pe acesta îl vom descărca.

- Facem clic pe link, iar descărcarea clientului începe.

- Dezarhivăm arhiva descărcată și lansăm installer-ul.

- După instalare, lansăm clientul, iar în fereastra de autentificare apăsăm Login.

- În fereastra de verificare a certificatului, alegem Yes.

- Introducem acreditivele pentru utilizatorul creat anterior și vedem că conexiunea s-a finalizat cu succes.


- Verificăm statistica clientului VPN pe computerul local.


- În linia de comandă Windows (ipconfig /all) vedem că a apărut un adaptor virtual suplimentar și că există conectivitate cu rețeaua remote, totul funcționează:


- Și, în încheiere – verificare din consola Edge Gateway.

L2 VPN
L2VPN va fi necesar atunci când trebuie să unim mai multe rețele geografic distribuite într-un singur domeniu de broadcast.
rețelele distribuite într-un singur domeniu de broadcast.
Acest lucru poate fi util, de exemplu, în timpul migrației unei mașini virtuale: atunci când o VM este mutată într-o altă locație geografică, aceasta va păstra setările adresării IP și nu va pierde conectivitatea cu alte mașini aflate în același domeniu L2 cu ea.
În mediu nostru de testare, vom conecta două locații între ele, numindu-le, respectiv, A și B. Avem două NSX și două rețele rutabile create în mod identic, legate la diferite Edge. Mașina A are adresa 10.10.10.250/24, iar mașina B – 10.10.10.2/24.
- În vCloud Director, mergem la fila Administrare, accesăm VDC-ul necesar, mergem la fila Rețele Org VDC și adăugăm două rețele noi.

- Selectăm tipul de rețea routed și legăm această rețea la NSX-ul nostru. Bifăm checkbox-ul Create as subinterface.

- În rezultatul final, ar trebui să avem două rețele. În exemplul nostru, acestea se numesc network-a și network-b, având setări identice pentru gateway și aceeași mască.


- Acum vom trece la setările primului NSX. Acesta va fi NSX-ul la care este legată rețeaua A. El va acționa ca server.
Ne întoarcem în interfața NSx Edge / Mergem la fila VPN –> L2VPN. Activăm L2VPN, alegem modul de operare Server, iar în setările Server Global indicăm adresa IP externă a NSX-ului, pe care va asculta portul pentru tunel. Implicit, socketul se va deschide pe portul 443, dar acesta poate fi schimbat. Nu uitați să alegeți setările de criptare pentru viitorul tunel.

- Mergem la fila Server Sites și adăugăm un peer.

- Activăm peer-ul, setăm un nume, o descriere, dacă este necesar, setăm numele de utilizator și parola. Aceste date ne vor fi utile mai târziu la configurarea site-ului clientului.
În Egress Optimization Gateway Address setăm adresa gateway-ului. Acest lucru este necesar pentru a preveni conflictul adreselor IP, deoarece gateway-ul rețelelor noastre are aceeași adresă. După aceea, facem clic pe butonul SELECT SUB-INTERFACES.

- Aici alegem subinterfața dorită. Salvați setările.

- Observăm că în setări a apărut site-ul clientului creat recent.

- Acum vom trece la configurarea NSX din partea clientului.
Accesăm NSX-ul de partea B, mergem la VPN –> L2VPN, activăm L2VPN, setăm modul L2VPN în mod client. În fila Client Global setăm adresa și portul NSX A, pe care l-am menționat anterior ca Listening IP și Port pe partea serverului. De asemenea, trebuie să stabilim setările de criptare identice, pentru a se potrivi la stabilirea tunelului.

Derulăm în jos, alegem subinterfața prin care va fi construit tunelul pentru L2VPN.
În Egress Optimization Gateway Address introducem adresa gateway-ului. Introducem user-id și parola. Alegem subinterfața și nu uităm să salvăm setările.
- Aceasta este tot. Setările părții client și cele ale serverului sunt practic identice, cu câteva nuanțe.
- Acum putem verifica dacă tunelul nostru a funcționat, navigând la Statistics —> L2VPN pe orice NSX.

- Dacă acum accesăm consola oricărui Edge Gateway, vom vedea pe fiecare dintre ele în tabela arp adresele ambelor VM.

Asta a fost tot despre VPN pe NSX Edge de partea mea. Întrebați dacă mai aveți nelămuriri. De asemenea, aceasta este ultima parte a seriei de articole despre utilizarea NSX Edge. Sperăm că au fost utile 🙂
Sursa: habr.com























































