Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Wireguard: stabilny, bezpieczny i bardzo szybki VPN dostępny jest wreszcie oficjalnie w jądrze Linuksa
Jeśli konfigurował ktoś IPseca czy nawet OpenVPN, to wie że parametrów konfiguracyjnych jest cała masa. Które ustawienia są bezpieczne, a które nie? A może dodatkowo chciałbyś w prosty sposób zwiększyć wydajność Twojego VPNa? I właśnie tutaj z pomocą przychodzi mocno już wygrzany Wireguard:
WireGuard® is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN.
W skrócie mamy tutaj tylko bezpieczne ustawienia i dodatkowo bardzo dużą wydajność (zarówno jeśli chodzi o zestawianie połączeń jak i samo późniejsze działanie).
Niedawno z kolei Wireguard (wersja 1.0.0) został włączony do jądra Linuksa (kernel 5.6), a niewiele wcześniej przeszedł jeszcze (zapewne kolejny) audyt bezpieczeństwa, który nie wykazał żadnych podatności. Dostępne są też klienty Wireguarda na Windowsa, Linuksa (różne dystrybucje), Androida, iOSa, czy nawet OpenWRT.
I switched over to Wireguard right after Jim wrote about it the first time (I’m an IVPN user). I’ve been impressed not only with the great speeds, but also the near-instantaneous connections and fantastic stability.On mobile, I saw an enormous difference in battery usage as well. OpenVPN would frequently be 20-30% of my battery usage on Android (…) WireGuard, by contrast, is less than 2% of my battery usage, and frequently less than 1%
Z bezpieczeństwem konfiguracji openvpn sobie radzę w 100 procentach bez problemu, ale żeby użytkownik pod windą mógł to używać, to już musi trochę myśleć przy instalacji. Z tym ostatnim bywa różnie, więc chętnie przetestuję tą nowinkę, licząc na mniej problemów z użyszkodnikami. Dodatkowo dlatego, że obiecuje się rewelacyjną szybkość. Cóż, sprawdzimy i się przekonamy.
A gdzie OpenVPN pod Windows jest skomplikowany. Instaluejsz jak kazda inna aplikacje, kopiujesz klucze i tyle.
Prostota w porównaniu z IPSec to jego największa zaleta. IPSec jest trudny w konfiguracji jednak nie tylko przez jego skomplikowanie ale przez to, że przez lata jego istnienia (od 1995!) kryptografia ewoluowała – pojawiły się nowe agorytmy, pojawił się tryb GCM, pojawił się NAT. Kompatybilnośc wsteczna jest potrzebna, między innymi stąd tyle opcji.
Wireguard jest „state-of-the-art” wg aktualnej wiedzy ale zobaczymy co będzie za 25 lat :)
Pamiętajcie, że SSL (aktualnie TLS) też ma już kilka wersji i jest już dużo opcji – cipher, algorytm skrótu certyfikatu (MD5, SHA1, SHA2), klucze RSA czy ECDSA itd.
Sądzę więc, że każdy powszechny mechanizm bezpiecznej kryptografii musi ewoluować i z czasem jego konfiguracja stanie się coraz trudniejsza.
IPsec to niestety standard korporacyjny i pewnie to się latami nie zmieni, chyba że wireguard pojawi się w Cisco i Juniper. Z IPsecem najgorsze jest to, że możesz znać teorie perfekcyjnie, a kontakt z pierwszym vendorem spowoduje że zwątpisz we wszystko co wiesz :). Ćwiczyłem różne fikołki i naprawdę czasem mam wrażenie, że producenci zakładają, że będziesz zestawiał tylko między ich własnymi modelami :).
Największa zaleta w stosunku do OpenVPN to szybkość nawiązywania „połączenia”, gdzie nie trzeba robić co chwilę całego TLS-owego handshake-a. OpenVPN potrafi robić to kilkanaście sekund. W Wireguardzie jest to chwila.
W OpenVPN sama konfiguracja serwera i klienta (https://github.com/BetterCrypto/Applied-Crypto-Hardening/tree/master/src/configuration/VPNs/OpenVPN) została nieźle opisana rozdziale 9.3.1 „Applied Crypto Hardening” (https://bettercrypto.org/#_tls_based_applications). Natomiast prawdziwą trudnością było zarządzanie dedykowaną infrastrukturą PKI dla OpenVPN. Najłatwiej było użyć do tego skryptu Easy-RSA.
Natomiast dla Wireguarda generowanie konfiguracji jest bardzo proste. OpenWRT po wygenerowaniu kluczy i ustawieniu adresów wyświetla kod QR, który wystarczy zeskanować telefonem.Pakiet nazywa się luci-app-wireguard (https://github.com/openwrt/luci/tree/master/applications/luci-app-wireguard).
Na Linuksie i FreeBSD można zrobić to samo za pomocą skryptu easy-wg-quick (https://github.com/burghardt/easy-wg-quick).
Że swojej strony polecam dot pn na chrome oraz vpn opera znanym dawniej pod nazwą opera turbo