Temat: [mało znane pakiety] Tailscale - zeroconf vpn, vpn bez konfiguracji
W repozytorium OpenWrt można znaleźć się setki pakietów. Niektóre są mało znane, choć realizują ciekawe funkcje. Jednym z nich jest tailscale.
Tailscale to kolejny VPN, wyróżniający się jedną niesamowitą cechą - nie ma plików konfiguracyjnych i praktycznie nie konfiguruje się go w systemie. Działa ot tak, sam robiąc niezbędne rzeczy. Choć jest podobny do opisywanego zerotier to jest różnica w sposobie zestawienia tunelu - tailscale wykorzystuje wireguarda i bezpośrednie połączenia pomiędzy nodami. Opis różnic można znaleźć na stronie projektu.
UWAGA: Zanim rzucicie się na tworzenie tuneli to należy wspomnieć że bieżące wydanie OpenWrt zawiera starą wersję tailscale (w chwili pisania tego opisu - OpenWrt 21.02 ma wersję 1.12.3, a dostępna jest już 1.16.2), która niezbyt chętne chce współpracować z nowymi wersjami. Wymagana jest więc własnoręczna kompilacja lub oczekiwanie na pojawienie się nowszej wersji w repozytorium.
Zakładanie konta
Generalnie tailscale jest płatne, ale - podobnie jak wspomniany zerotier - posiada darmowy plan pozwalający na jednego użytkownika dołączyć do 20 urządzeń i jeden router z podsiecią. Dla domowych rozwiązań to wystarczy, bo możemy zainstalować to na telefonie, laptopie, tablecie i routerze i tym samym mieć dostęp do swojej sieci z dowolnego miejsca.
Zaczynamy od założenia konta na Tailscale. Wykorzystujemy autoryzacje przez Google, Microsoft lub githuba (jeden z nich zapewne mamy) i na początek nie musimy robić nic więcej. Na ekranie dostępne są informacje jak to zainstalować i skonfigurować na poszczególnych systemach - tego już nie będę opisywał, bo jest to bardzo proste. Wspomnę tylko że tailscale chodzi na Windowsach, MacOS, Linuksie, Androidzie, NASach, routerach a także ma wsparcie np. w HomeAssistancie.
Instalacja na OpenWrt
Po prostu instalujemy odpowiedni pakiet:
opkg update
opkg install tailscale
/etc/init.d/tailscale enable
/etc/init.d/tailscale start
Pamiętajmy o uwadze z początku opisu - w repo jest stara wersja, więc o ile taki pakiet podłączony się do sieci to może nie być transmisji pomiędzy urządzeniami.
Teraz wystarczy uwierzytelnić urządzenie:
tailscale up
Pojawi się link, wpisujemy go do przeglądarki, podajemy dane konta i już mamy gotowego vpna! Coś za prosto, prawda?
Diagnostyka
Kilkoma poleceniami można sprawdzić połączenie:
root@MiFi:~# tailscale status
100.xxx.xxx.xxx mifi cezary.jackiewicz@ linux -
100.xxx.xxx.xxx android cezary.jackiewicz@ android -
100.xxx.xxx.xxx laptop cezary.jackiewicz@ linux idle, tx 1378708 rx 102972
root@MiFi:~# tailscale ping laptop
pong from laptop (100.xxx.xxx.xxx) via 192.168.11.229:41641 in 12ms
Więc działa. Teraz można z dowolnego urządzenia podłączonego do vpn wejść na adres IP danego urządzenia, zrobić ssh itd.
Klucze
Domyślnie klucze autoryzacyjne wygasają po maksymalnie 180 dniach i urządzenia należy ponownie uwierzytelnić w sieci. Jest to dość uciążliwe jeżeli mamy jakieś urządzenie mobilne/zdalne do którego nie mamy bezpośredniego dostępu. Na szczęście jest na to sposób - w panelu tailscale klikamy "trzy poziome kropki" przy danym urządzeniu i wybieramy z menu "Disable key expiry" i mamy problem z głowy.
Jak zwykle polecam zapoznać się z dokumentacją Tailscale.