Rewolucja w bezpiecznych połączeniach VPN z WireGuard

Rewolucja w bezpiecznych połączeniach VPN z WireGuard jest możliwa! WireGuard jest nowym rozwiązaniem VPN, które dąży do bycia lepszym i szybszym niż aktualne rozwiązania w postaci IPsec czy OpenVPN. Można rozwodzić się nad szczegółami, w jaki sposób WireGuard realizuje swoje założenia, jednakże ostatecznie i tak o jego popularności zdecyduje wydajność, dostępność i łatwość konfiguracji. Postanowiliśmy sami sprawdzić, jak na dzień dzisiejszy prezentuje się to nowe rozwiązanie VPN.

W dobie troski o bezpieczeństwo systemów i wszechobecnych danych wrażliwych, trudno już rozgraniczyć, jakie połączenia ograniczać i szyfrować, a jakie nie. Najlepiej wdrażać wysokie standardy bezpieczeństwa od razu, a jednym z nich jest dostęp do zasobów z użyciem szyfrowanego połączenia VPN. Połączenie to stanowi dodatkową przeszkodę do pokonania oraz utrudnia śledzenie elementów systemu niewidocznych bezpośrednio publicznie. Niestety, obecne mechanizmy zestawiania połączeń VPN (nawet OpenVPN), wymagają nieco zachodu. I podobnie, jak uproszczenie instalacji certyfikatów dla połączeń https jest kluczowe dla ich upowszechnienia, tak i uproszczenie w zakresie konfiguracji połączeń VPN wpłynie pozytywnie na popularność tego standardu.

WireGuard lepszy, ale czy na pewno?

Twórcy WireGuard umieścili na swojej stronie wyniki testu, z którego wynika, że ich rozwiązanie sprawuje się lepiej niż obecnie istniejące i często stosowane w postaci IPsec czy OpenVPN. Hostersi powszechnie używają w swoich projektach rozwiązań VPN dla dostępów klienckich oraz dla bezpiecznych połączeń pomiędzy różnymi infrastrukturami. Z tego powodu przykładamy szczególną wagę do śledzenia nowo pojawiających się rozwiązań tego typu.

Ufamy, ale sprawdzamy, bo zapowiada się obiecująco. Oto, jak to wygląda w praktyce.

 

Metodologia testów rozwiązań VPN

Podobnie jak twórcy WireGuard spróbujemy wykonać zbliżone testy. Poniżej kilka technicznych aspektów naszych testów:

  • Dwie instancje t3.small AWS EC2 w regionie Irlandia (ta sama strefa dostępności – AZ, tryb „Unlimited”)
  • Obraz AMI Ubuntu 18.04 LTS (oficjalny od Canonical – ami-00035f41c82244dab)
  • Wersje oprogramowania:
    • WireGuard – v0.0.20181018 (najnowszy dostępny snapshot na dzień wykonywania testów)
    • strongSwan – 5.6.2-1ubuntu2.3 (realizuje połączenie poprzez IPsec)
    • OpenVPN – 2.4.4-2ubuntu1.1
    • iperf3 – 3.1.3-1 (na potrzeby testów przepustowości)
  • Ustawienia:
    • WireGuard – 256bit ChaCha20 z Poly1305
      (standard dla tego protokołu)
    • IPsec – 256bit ChaCha20 z Poly1305
      (IKE proposal: CHACHA20_POLY1305_256/PRF_HMAC_SHA2_256/NTRU_256)
    • OpenVPN – AES-256-GCM, SHA256, tryb UDP
      (niestety OpenVPN nie wspiera jeszcze ChaCha20 z Poly1305 dla kanału transmisji danych)

Testy iperf3 były prowadzone na praktycznie domyślnych ustawieniach (czyli za pomocą TCP i jednego połączenia).

 

Wyniki testów

Nasze wyniki są nieco odmienne w stosunku do testów przeprowadzonych przez twórców WireGuard.

Prezentują się one następująco:

  • bez VPN – 5,11 Gbit/s
  • IPsec – 3,52 Gbit/s
  • WireGuard – 2,95 Gbit/s
  • OpenVPN – 0,6 Gbit/s

Instancje t3.small mają teoretyczną maksymalną przepustowość sieci na poziomie 5 Gbit/s, co testy bez wykorzystania VPN potwierdzają.
Podczas testów, zarówno użycie IPsec jak i WireGuard, spowodowało wysycenie CPU w instancjach (OpenVPN w tym konkretnym przypadku działał w jednym wątku, więc używał tylko połowy mocy instancji).

https://i.imgur.com/MXBVrWi.jpg

 

Rewolucja w bezpiecznych połączeniach VPN z WireGuard. Podsumowanie

Twórcy WireGuard sami przyznają, iż jest on na ten moment kompletnie niezoptymalizowany i ma jeszcze daleką drogę przed sobą pod względem wydajności. Póki co, w realnym teście przegrywa z IPsec, jednakże będziemy bacznie przyglądać się rozwojowi tego projektu i zmianach w jego działaniu. Szczególnie, że wyniki testu nie różnią się aż tak bardzo. W takim momencie o wyborze zdecyduje dużo łatwiejsza i zdecydowanie uproszczona konfiguracja WireGuarda w stosunku do często bardzo skomplikowanej konfiguracji IPseca.

WireGuard nie przeszedł jeszcze żadnych audytów bezpieczeństwa, więc póki co możemy go traktować jako „eksperyment”. Jednakże nie zmienia to faktu, że konfiguracja (czyt. zestawienie tunelu) za pomocą WireGuard jest zasadniczo prostsze niż w przypadku IPsec czy OpenVPN – praktycznie ogranicza nas do wymaganego minimum.

Na dzień dzisiejszy WireGuard nie jest jeszcze bezpośrednio dodany do kernela Linux, aczkolwiek prędzej czy później na pewno się to stanie – Hostersi czekają z niecierpliwością 🙂

Może pojawienie się nowej technologii sprawi, że twórcy obecnych standardów popracują nad wydajnością i łatwością konfiguracji?

 

Remigiusz Szczepanik
Cloud Architect w Hostersi

 

 

 

 

Zobacz również:

Bezpieczeństwo w WordPress – bezpieczna konfiguracja WordPressa

W jaki sposób zabezpieczyć WordPressa przed atakami i włamaniami?

Techniczne aspekty RODO w pytaniach i odpowiedziach

Bezpieczeństwo w chmurze Amazon Web Services

Cyberbezpieczeństwo dla firm? Najwyższy czas!