COMPUTING > Wirtualny Private Cloud > VMware vCloud Director > Jak skonfigurować połączenie VPN za pomocą OpenVPN

3.4.1 Jak skonfigurować połączenie VPN za pomocą OpenVPN

Sprawdź oficjalną dokumentację VMware, aby dowiedzieć się jak skonfigurować VPN z OpenVPN.

OpenVPN to rozwiązanie SSL VPN, które rozszerza bezpieczną sieć na poziomie OSI 2 i OSI 3 przy użyciu standardowego protokołu SSL/TLS i obejmuje szeroki zakres konfiguracji. OpenVPN obsługuje klientów z systemami operacyjnymi Windows, Linux, FreeBSD, OpenBSD, macOS, iOS i Android.

Obsługuje metody uwierzytelniania klientów w oparciu o certyfikaty, karty inteligentne i/lub poświadczenia nazwy użytkownika i hasła oraz umożliwia użytkownikom lub grupom wdrażanie zasad kontroli dostępu przy użyciu reguł zapory sieciowej stosowanych do wirtualnej sieci VPN.

Poniżej znajdują się ogólne zasady i wymagane kroki do utworzenia połączenia VPN przy użyciu OpenVPN. Odnośniki do przykładowych przewodników dotyczących konfiguracji/wdrożenia dla Windows Server 2019 i Ubuntu 20.04 znajdują się na końcu artykułu.
 
Konfiguracja VPN często wiąże się z łączeniem prywatnych podsieci z różnych lokalizacji. Internet Assigned Numbers Authority (IANA) zarezerwowała następujące trzy zakresy adresów IP dla sieci prywatnych (zdefiniowane w RFC 1918):
  • 10.0.0.0 – 10.255.255.255 (prefix 10/8)
  • 172.16.0.0 – 172.31.255.255 (prefix 172.16/12)
  • 192.168.0.0 – 192.168.255.255 (prefix 192.168/16)
Ważne jest, aby wybierać adresy, które zmniejszają prawdopodobieństwo konfliktu adresów IP lub podsieci. Niektóre aspekty konfiguracji sieciowej serwera muszą zostać zoptymalizowane, aby poprawnie kierować ruch przez VPN:
  • przekazywanie adresów IP - zdolność systemu operacyjnego do akceptowania przychodzących pakietów sieciowych na interfejsie, rozpoznawania, że nie są one przeznaczone dla tego systemu, ale powinny zostać przekazane do innej sieci, a następnie odpowiednio przekazane;
  • konfiguracja firewalla - musi zostać wykonana na maszynie wirtualnej działającej jako serwer VPN dostępu zdalnego:
    • port SSH;
    • porty używane przez rozwiązanie VPN (na przykład port UDP 1194 jest predefiniowanym portem dla OpenVPN);
Ważne jest, aby maszyny wirtualne w sieci vDC (virtual Data Center) były połączone za pomocą VPN, aby ruch sieciowy był kierowany do serwera VPN. Jednym z rozwiązań jest implementacja NAT (jeden-do-wielu) dla podłączonych klientów.
Pierwszym krokiem jest stworzenie konfiguracji OpenVPN w celu ustanowienia PKI (infrastruktura klucza publicznego). PKI składa się z:
  • oddzielnego certyfikatu (nazywanego również kluczem publicznym) oraz klucza prywatnego dla serwera i każdego klienta;
  • certyfikatu i klucza wygenerowanego przez główny urząd certyfikacji (CA), wykorzystywanego do podpisania każdego certyfikatu serwera i klienta;
OpenVPN wspiera obukierunkowe uwierzytelnienie bazujące na certyfikatach, co oznacza, iż klient musi autoryzować certyfikat serwera, a serwer autoryzuje certyfikat klienta. OpenVPN zaleca zarządzanie PKI za pomocą easy-rsa, CLI (Command-Line Interface) do tworzenia i zarządzania CA PKI. Instrukcję konfiguracji własnego urzędu certyfikacji i generowania certyfikatów oraz kluczy można znaleźć w dokumentacji OpenVPN.

Implementacja po stronie serwera

Serwer OpenVPN wykorzystuje port 1194 i protokół UDP jako domyślne ustawienia akceptowane przy połączeniu przez klienta. Jeśli klient korzysta z ograniczonego środowiska sieciowego i wykorzystany musi być inny port, istnieje możliwość zmiany ustawień. 1194 jest oficjalnym portem przypisanym przez IANA dla OpenVPN, lecz dowolny port z zakresu od 1 do 65535 może zostać użyty, o ile nie jest już wykorzystywany przez serwer. Najczęściej wybieranym jest port 443, gdyż jest on zazwyczaj dopuszczany przez regulacje firewall.

Szczegóły konfiguracji są archiwizowane w pliku server.conf, który zawiera informacje o adresie IP oraz porcie, na których nasłuchuje serwer, liście szyfrowania oraz certyfikacie usługi, itp.

Sugerujemy wykorzystanie przykładowych plików konfiguracyjnych OpenVPN, które znajdują się w:
  • lokalizacji sample-config-files, dystrybuowanej przez OpenVPN
  • lokalizacji sample-config-files, znajdującej się w /usr/share/doc/packages/openvpn lub /usr/share/doc/openvpn, jeśli instalacja była przeprowadzona z pakietów RPM lub DEB
  • Start Menu > All Programs > OpenVPN > OpenVPN Sample Configuration Files na Windows
W przypadku wykorzystania przykładowych plików konfiguracyjnych OpenVPN, VPN zostanie utworzony za pomocą interfejsu sieci wirtualnej TUN (routed mode), który nasłuchuje połączeń Klienta na porcie UDP 1194 i nadaje adresy wirtualne do połączenia Klientów z podsieci 10.8.0.0/24. Zmian można dokonać poprzez edycję parametrów w plikach wskazanych powyżej.
 
Przed skorzystaniem z przykładowych plików konfiguracyjnych należy zmienić parametry ca, cert, key i dh (Diffie hellman), aby kierowały one na pliki wygenerowane w sekcji PKI. Pliki konfiguracyjne serwera będą gotowe do użycia po wykonaniu tych operacji.

Implementacja po stronie klienta

Następujące kroki należy wykonać w celu konfiguracji klienta: wygenerowanie certyfikatu i klucza oraz stworzenie pliku konfiguracyjnego klienta.

Ostatnim krokiem jest wygenerowanie pliku konfiguracyjnego, który zastąpi domyślne dyrektywy ustawione w pliku konfiguracyjnym serwera:
  • Tak jak w przypadku pliku konfiguracyjnego serwera, w pierwszej kolejności należy zmienić parametry ca, cert, key i dh, aby kierowały one na wcześniej wygenerowane pliki. Należy pamiętać, iż każdy klient powinien posiadać własny certyfikat i klucz. Plik ca jest jedynym, który jest uniwersalny dla serwera OpenVPN oraz dla wszystkich klientów.
  • Edytuj zdalną dyrektywę, aby wskazywała na nazwę hosta/adres IP oraz numer portu serwera OpenVPN: skorzystaj z publicznego adresu IP, który jest NAT dla serwera VPN.

Przykłady ustanowienia połączenia VPN za pomocą OpenVPN: