Dostępny OpenVPN 2.6.0

Po dwóch i pół roku od publikacji gałęzi 2.5 przygotowano wydanie OpenVPN 2.6.0, pakietu do tworzenia wirtualnych sieci prywatnych, który pozwala zorganizować szyfrowane połączenie pomiędzy dwoma maszynami klienckimi lub udostępnić scentralizowany serwer VPN do jednoczesnej obsługi kilku klientów. Kod OpenVPN jest dystrybuowany na licencji GPLv2, generowane są gotowe pakiety binarne dla Debiana, Ubuntu, CentOS, RHEL i Windows.

Główne innowacje:

  • Zapewnia obsługę nieograniczonej liczby połączeń.
  • Dołączony jest moduł jądra ovpn-dco, który pozwala znacznie przyspieszyć działanie VPN. Przyspieszenie osiąga się poprzez przeniesienie wszystkich operacji szyfrowania, przetwarzania pakietów i zarządzania kanałami komunikacyjnymi na stronę jądra Linuksa, co eliminuje obciążenie związane z przełączaniem kontekstu, umożliwia optymalizację pracy poprzez bezpośredni dostęp do wewnętrznych API jądra oraz eliminuje powolny transfer danych pomiędzy jądrem i przestrzeni użytkownika (szyfrowanie, deszyfrowanie i routing są wykonywane przez moduł bez wysyłania ruchu do procedury obsługi w przestrzeni użytkownika).

    W przeprowadzonych testach, w porównaniu z konfiguracją opartą o interfejs tun, zastosowanie po stronie klienta i serwera modułu wykorzystującego szyfr AES-256-GCM pozwoliło uzyskać 8-krotny wzrost przepustowości (z 370 Mbit/s do 2950 Mbit/s). Przy zastosowaniu modułu wyłącznie po stronie klienta przepustowość wzrosła trzykrotnie dla ruchu wychodzącego i nie uległa zmianie dla ruchu przychodzącego. Przy zastosowaniu modułu wyłącznie po stronie serwera przepustowość wzrosła 4-krotnie dla ruchu przychodzącego i o 35% dla ruchu wychodzącego.

  • Istnieje możliwość wykorzystania trybu TLS w przypadku certyfikatów z podpisem własnym (w przypadku korzystania z opcji „-peer-fingerprint” można pominąć parametry „-ca” i „-capath” i uniknąć uruchamiania serwera PKI opartego na Easy-RSA lub podobne oprogramowanie).
  • Serwer UDP implementuje tryb negocjacji połączenia oparty na plikach cookie, który wykorzystuje plik cookie oparty na HMAC jako identyfikator sesji, umożliwiając serwerowi przeprowadzenie weryfikacji bezstanowej.
  • Dodano obsługę budowania przy użyciu biblioteki OpenSSL 3.0. Dodano opcję „--tls-cert-profile niezabezpieczony”, aby wybrać minimalny poziom bezpieczeństwa OpenSSL.
  • Dodano nowe polecenia sterujące Remote-entry-count i Remote-entry-get umożliwiające zliczanie liczby połączeń zewnętrznych i wyświetlanie ich listy.
  • Podczas procesu uzgadniania klucza preferowaną metodą uzyskiwania materiału do generowania klucza jest obecnie mechanizm EKM (Exported Keying Material, RFC 5705) zamiast mechanizmu PRF specyficznego dla OpenVPN. Aby korzystać z EKM, wymagana jest biblioteka OpenSSL lub mbed TLS 2.18+.
  • Zapewniona jest kompatybilność z OpenSSL w trybie FIPS, co pozwala na korzystanie z OpenVPN na systemach spełniających wymagania bezpieczeństwa FIPS 140-2.
  • mlock implementuje kontrolę, aby upewnić się, że zarezerwowana jest wystarczająca ilość pamięci. Gdy dostępne jest mniej niż 100 MB pamięci RAM, wywoływana jest funkcja setrlimit() w celu zwiększenia limitu.
  • Dodano opcję „--peer-fingerprint” umożliwiającą sprawdzenie ważności lub powiązania certyfikatu za pomocą odcisku palca opartego na hashu SHA256, bez użycia tls-verify.
  • Skrypty posiadają opcję odroczonego uwierzytelniania, realizowaną przy pomocy opcji „-auth-user-pass-verify”. Do skryptów i wtyczek dodano obsługę informowania klienta o oczekującym uwierzytelnieniu podczas korzystania z odroczonego uwierzytelniania.
  • Dodano tryb zgodności (-compat-mode), aby umożliwić połączenia ze starszymi serwerami z systemem OpenVPN 2.3.x lub starszymi wersjami.
  • Na liście przekazanej przez parametr „--data-ciphers” dozwolony jest przedrostek „?”. aby zdefiniować opcjonalne szyfry, które będą używane tylko wtedy, gdy są obsługiwane w bibliotece SSL.
  • Dodano opcję „-session-timeout”, za pomocą której można ograniczyć maksymalny czas sesji.
  • Plik konfiguracyjny umożliwia określenie nazwy i hasła za pomocą tagu .
  • Zapewniona jest możliwość dynamicznej konfiguracji MTU klienta na podstawie danych MTU przesyłanych przez serwer. Aby zmienić maksymalny rozmiar MTU, dodano opcję „—tun-mtu-max” (domyślnie jest to 1600).
  • Dodano parametr „--max-packet-size” w celu zdefiniowania maksymalnego rozmiaru pakietów kontrolnych.
  • Usunięto obsługę trybu uruchamiania OpenVPN przez inetd. Opcja ncp-disable została usunięta. Opcja weryfikacji-hash i tryb klucza statycznego zostały uznane za przestarzałe (zachowano jedynie protokół TLS). Protokoły TLS 1.0 i 1.1 zostały uznane za przestarzałe (parametr tls-version-min jest domyślnie ustawiony na 1.2). Wbudowana implementacja generatora liczb pseudolosowych (-prng) została usunięta; należy zastosować implementację PRNG z bibliotek kryptograficznych mbed TLS lub OpenSSL. Zakończono obsługę PF (filtrowania pakietów). Domyślnie kompresja jest wyłączona (--allow-compression=no).
  • Dodano CHACHA20-POLY1305 do domyślnej listy szyfrów.

Źródło: opennet.ru

Dodaj komentarz