1

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.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.