
Dziś przyjrzymy się możliwościom konfiguracji VPN, które oferuje nam NSX Edge.
Ogólnie możemy podzielić technologie VPN na dwa kluczowe rodzaje:
- VPN typu site-to-site. Najczęściej używa się IPSec do tworzenia zabezpieczonego tunelu, na przykład między siecią głównego biura a siecią w zdalnej lokalizacji lub w chmurze.
- VPN typu Remote Access. Służy do łączenia pojedynczych użytkowników z prywatnymi sieciami organizacji za pomocą oprogramowania klienta VPN.
NSX Edge pozwala nam korzystać z obu opcji.
Konfigurację przeprowadzimy za pomocą testowego stanowiska z dwoma NSX Edge, serwerem Linux z zainstalowanym demonem oraz laptopem z systemem Windows do testowania VPN typu Remote Access.
IPsec
- W interfejsie vCloud Director przechodzimy do sekcji Administracja i wybieramy vDC. Na zakładce Edge Gateways wybieramy odpowiedni Edge, klikamy prawym przyciskiem i wybieramy Usługi bramy Edge.

- W interfejsie NSX Edge przechodzimy do zakładki VPN-IPsec VPN, następnie do sekcji IPsec VPN Sites i naciskamy +, aby dodać nową lokalizację.

- Wypełniamy wymagane pola:
- Enabled – aktywuje zdalną lokalizację.
- PFS – zapewnia, że każdy nowy klucz kryptograficzny nie jest powiązany z żadnym wcześniejszym kluczem.
- Local ID i Local Endpoint– zewnętrzny adres NSX Edge.
- Local Subnets– lokalne sieci, które będą używać IPsec VPN.
- Peer ID i Peer Endpoint – adres zdalnej lokalizacji.
- Peer Subnets – sieci, które będą używać IPsec VPN po stronie zdalnej.
- Algorytm szyfrowania – algorytm szyfrowania tunelu.

- Uwierzytelnianie – jak będziemy uwierzytelniać pary. Można użyć Pre-Shared Key lub certyfikatu.
- Pre-Shared Key – podajemy klucz, który będzie używany do uwierzytelnienia i musi być zgodny po obu stronach.
- Diffie-Hellman Group – algorytm wymiany kluczy.
Po wypełnieniu wymaganych pól klikamy Keep.

- Gotowe.

- Po dodaniu lokalizacji przechodzimy do zakładki Status aktywacji i aktywujemy usługę IPsec.

- Po zastosowaniu ustawień przechodzimy do zakładki Statystyki -> IPsec VPN i sprawdzamy status tunelu. Widzimy, że tunel został nawiązany.

- Sprawdzimy status tunelu z konsoli Edge Gateway:
- show service ipsec – sprawdzenie stanu usługi.

- show service ipsec site – informacje o statusie witryny i uzgodnionych parametrach.

- show service ipsec sa – sprawdzenie statusu Security Association (SA).

- show service ipsec – sprawdzenie stanu usługi.
- Sprawdzanie łączności z zdalną lokalizacją:
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 msPliki konfiguracyjne i dodatkowe komendy do diagnostyki zdalnego serwera Linux:
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 - Wszystko gotowe, VPN IPsec typu site-to-site jest skonfigurowany i działa.
W tym przykładzie użyliśmy klucza PSK do uwierzytelniania partnera, ale możliwe jest również uwierzytelnianie za pomocą certyfikatów. W tym celu należy przejść do zakładki Global Configuration, włączyć uwierzytelnianie oparte na certyfikatach i wybrać odpowiedni certyfikat.
Dodatkowo w ustawieniach witryny należy zmienić metodę uwierzytelnienia.


Zauważam, że liczba tuneli IPsec zależy od rozmiaru wdrożonego Edge Gateway (więcej na ten temat w naszej ).
SSL VPN
SSL VPN-Plus to jedna z opcji Remote Access VPN. Umożliwia ona poszczególnym zdalnym użytkownikom bezpieczne łączenie się z sieciami prywatnymi, znajdującymi się za bramą NSX Edge. Szyfrowany tunel w przypadku SSL VPN-Plus jest ustanawiany między klientem (Windows, Linux, Mac) a NSX Edge.
- Zaczynamy konfigurację. W panelu sterowania usługami Edge Gateway przechodzimy do zakładki SSL VPN-Plus, a następnie do Ustawień serwera. Wybieramy adres i port, na którym serwer będzie nasłuchiwał przychodzące połączenia, włączamy logowanie i wybieramy wymagane algorytmy szyfrowania.

Tutaj możemy również zmienić certyfikat, który będzie używany przez serwer.
- Po zakończeniu wszystkich przygotowań włączamy serwer i nie zapominamy zapisać ustawień.

- Następnie musimy skonfigurować pulę adresów, które będziemy przydzielać klientom podczas łączenia. Ta sieć jest oddzielona od wszelkich istniejących podsieci w Twoim środowisku NSX, nie trzeba jej konfigurować na innych urządzeniach w fizycznych sieciach, z wyjątkiem tras, które do niej wskazują.
Przechodzimy do zakładki Puli IP i klikamy +.

- Wybieramy adresy, maskę podsieci i bramę. Tutaj możemy również zmienić ustawienia dla serwerów DNS i WINS.

- Uzyskana pula.

- Teraz dodamy sieci, do których będą mieli dostęp użytkownicy łączący się z VPN. Przechodzimy do zakładki Prywatne Sieci i klikamy +.

- Wypełniamy:
- Sieć — lokalna sieć, do której będą mieli dostęp zdalni użytkownicy.
- Wyślij ruch, są dwie opcje:
— przez tunel – wysyłać ruch do sieci przez tunel,
— omijaj tunel – wysyłać ruch do sieci bezpośrednio, omijając tunel. - Włącz optymalizację TCP – zaznaczamy, jeśli wybraliśmy opcję przez tunel. Gdy optymalizacja jest włączona, można określić numery portów, dla których należy zoptymalizować ruch. Ruch dla pozostałych portów tej konkretnej sieci nie będzie optymalizowany. Jeśli numery portów nie są podane, ruch dla wszystkich portów zostanie zoptymalizowany. Więcej na ten temat przeczytasz .

- Następnie przechodzimy do zakładki Uwierzytelnianie i klikamy +. Do uwierzytelniania będziemy używać lokalnego serwera na samym NSX Edge.

- Tutaj możemy wybrać polityki do generowania nowych haseł oraz skonfigurować opcje dotyczące blokowania kont użytkowników (na przykład liczba prób przy nieprawidłowym wprowadzeniu hasła).


- Ponieważ używamy lokalnej autoryzacji, musimy utworzyć użytkowników.

- Oprócz podstawowych rzeczy, takich jak imię i hasło, można tutaj na przykład zabronić użytkownikowi zmiany hasła lub, przeciwnie, wymusić na nim wymianę hasła przy następnym logowaniu.

- Po dodaniu wszystkich niezbędnych użytkowników przechodzimy do zakładki Pakiety instalacyjne, klikamy + i tworzymy instalator, który pobierze na komputer zdalny.

- Klikamy +. Wybieramy adres i port serwera, do którego będzie łączyć się klient, oraz platformy, dla których należy wygenerować pakiet instalacyjny.

Poniżej w tym oknie można określić parametry klienta dla systemu Windows. Wybieramy:- start client on logon – klient VPN zostanie dodany do autostartu na zdalnej maszynie;
- create desktop icon – utworzy ikonę klienta VPN na pulpicie;
- server security certificate validation – będzie weryfikować certyfikat serwera podczas łączenia.
Konfiguracja serwera zakończona.

- Teraz pobierzemy utworzony przez nas w ostatnim kroku pakiet instalacyjny na zdalny komputer. Podczas konfiguracji serwera wskazaliśmy jego zewnętrzny adres (185.148.83.16) i port (445). Musimy przejść do tego adresu w przeglądarce internetowej. W moim przypadku jest to :445.
W oknie logowania należy wprowadzić dane uwierzytelniające użytkownika, którego utworzyliśmy wcześniej.

- Po zalogowaniu pojawi się lista utworzonych pakietów instalacyjnych dostępnych do pobrania. Utworzyliśmy tylko jeden – ten pobierzemy.

- Klikamy link, rozpoczyna się pobieranie klienta.

- Rozpakowujemy pobrany archiwum i uruchamiamy instalator.

- Po zainstalowaniu uruchamiamy klienta, w oknie logowania klikamy Zaloguj.

- W oknie weryfikacji certyfikatu wybieramy Tak.

- Wprowadzamy dane uwierzytelniające dla wcześniej utworzonego użytkownika i widzimy, że połączenie zakończyło się powodzeniem.


- Sprawdzamy statystyki klienta VPN na lokalnym komputerze.


- W wierszu poleceń Windows (ipconfig /all) widzimy, że pojawił się dodatkowy wirtualny adapter i jest łączność z zdalną siecią, wszystko działa:


- I na koniec – weryfikacja z konsoli Edge Gateway.

L2 VPN
L2VPN będzie potrzebny w przypadku, gdy trzeba połączyć kilka geograficznie
rozproszonych sieci w jedną domenę rozgłoszeniową.
Może to być przydatne, na przykład podczas migracji maszyny wirtualnej: przenosząc VM na inną lokalizację geograficzną, maszyna zachowa ustawienia adresowania IP i nie straci łączności z innymi maszynami znajdującymi się w tej samej domenie L2.
W naszej środowisku testowym połączymy ze sobą dwa podmioty, nazwijmy je odpowiednio A i B. Mamy dwa NSX i dwie identycznie skonfigurowane sieci routowalne, przypisane do różnych Edge. Maszyna A ma adres 10.10.10.250/24, maszyna B – 10.10.10.2/24.
- W vCloud Director przechodzimy do zakładki Administracja, wchodzimy w odpowiedni VDC, przechodzimy do zakładki Sieci Org VDC i dodajemy dwie nowe sieci.

- Wybieramy typ sieci routowaną i przypisujemy tę sieć do naszego NSX. Zaznaczamy pole Create as subinterface.

- W efekcie powinny powstać dwie sieci. W naszym przykładzie nazywają się network-a i network-b z identycznymi ustawieniami bramy i taką samą maską.


- Teraz przejdziemy do ustawień pierwszego NSX. To będzie NSX, do którego przypisana jest sieć A. Będzie pełnić rolę serwera.
Wracamy do interfejsu NSX Edge / Przechodzimy do zakładki VPN → L2VPN. Włączamy L2VPN, wybieramy tryb pracy Serwer, w ustawieniach Global Server podajemy zewnętrzny adres IP NSX, na którym będzie nasłuchiwać port dla tunelu. Domyślnie gniazdo otworzy się na porcie 443, ale można to zmienić. Nie zapominamy wybrać ustawienia szyfrowania dla przyszłego tunelu.

- Przechodzimy do zakładki Server Sites i dodajemy peer.

- Włączamy peer, nadajemy mu nazwę, opis, jeśli trzeba, oraz podajemy nazwisko użytkownika i hasło. Będą one potrzebne później przy konfiguracji strony klienta.
W polu Egress Optimization Gateway Address podajemy adres bramy. Jest to potrzebne, aby uniknąć konfliktów adresów IP, ponieważ brama naszych sieci ma ten sam adres. Następnie naciskamy przycisk SELECT SUB-INTERFACES.

- Tutaj wybieramy odpowiedni subinterfejs. Zapisujemy ustawienia.

- Widzimy, że w ustawieniach pojawiła się właśnie stworzona strona klienta.

- Teraz przejdźmy do konfiguracji NSX po stronie klienta.
Logujemy się do NSX po stronie B, przechodzimy do VPN → L2VPN, włączamy L2VPN, ustawiamy tryb L2VPN na tryb klienta. W zakładce Client Global podajemy adres i port NSX A, który wcześniej wskazaliśmy jako Listening IP i Port po stronie serwera. Należy również ustawić identyczne ustawienia szyfrowania, aby były zgodne podczas nawiązywania tunelu.

Przewiń w dół, wybierz subinterfejs, przez który zostanie zbudowany tunel dla L2VPN.
W Egress Optimization Gateway Address wprowadź adres bramy. Ustaw user-id i hasło. Wybierz subinterfejs i nie zapomnij zapisać ustawień.
- To właściwie wszystko. Ustawienia po stronie klienta i serwera są praktycznie identyczne, z wyjątkiem kilku szczegółów.
- Teraz możemy sprawdzić, że nasz tunel działa, przechodząc do Statistics —> L2VPN na dowolnym NSX.

- Jeśli teraz wejdziemy do konsoli dowolnego Edge Gateway, zobaczymy na każdym z nich w tabeli arp adresy obu VM.

Na tym kończymy temat VPN na NSX Edge. Pytaj, jeśli coś pozostało niejasne. To także ostatnia część z serii artykułów o NSX Edge. Mamy nadzieję, że były przydatne 🙂
Źródło: habr.com























































