Teraz są takie czasy, że człowiek ma więcej elektronicznego złomu niż mógłby to sobie wyobrazić 20 lat temu. Pecety, laptopy, Malinki, NAS-y, smartfony, tablety i czort wie co jeszcze. Można się w tym pogubić.
Jednocześnie nie jest całkiem banalne uzyskanie solidnego połączenia między tymi wszystkimi klamotami. Wyobraźmy sobie taki scenariusz: jestem na wyjeździe i nagle potrzebuję pilnie dostęp do BWP (i nie chodzi o Bojowy Wóz Piechoty tylko o Bardzo Ważny Plik), który zamiast jak pambuk przykazał siedzieć w chmurze OneDrive czy innego Dropboxa, zapisałem omyłkowo na pulpecie, wróć, pulpicie maszyny linuksowej kurzącej się w domowym zaciszu za podwójnym NAT-em. Zipa dumna, cozrobisznicniezrobisz.
Albo muszę się dostać z zewnątrz do jakiegoś dokumentu na domowym NAS-ie, który ze względów bezpieczeństwa ma wyłączony dostęp publiczny.
Naturalnym rozwiązaniem jest tutaj VPN: sieć wirtualna łącząca wszystkie moje ważne urządzenia w osobnej, prywatnej podsieci. Z porządnym szyfrowaniem i bez dodatkowych opóźnień.
Odkryłem niedawno (w sumie całkiem niechcący, na jakimś technicznym blogu) usługę Tailscale, która w bardzo, ale to bardzo prosty, praktycznie bezobsługowy sposób pozwala na utworzenie takiego właśnie VPN-a oraz dodanie do niego wszelakiego elektronicznego złomu. Usługa jest wprawdzie płatna dla firm oraz użytkowników potrzebujących VPN-a na wielką skalę, jednak sto pierwszych urządzeń jest całkiem za darmo.
Sto urządzeń? To o rząd wielkości więcej, niż potrzebuję. Ha.
Tak więc od kilku dni jestem szczęśliwym użytkownikiem darmowej wersji Tailscale i póki co tonę w zachwycie. Dopóki nie stwierdzą, żeby jednak zamknąć drzwi niepłacącym userom, raczej z nimi zostanę. Mają klienta linuksowego, windowsowego, androidowego, dwa jabłeczne i nawet obsługują niektóre smart TV (pełna lista tutaj: Integrations · Tailscale). Interfejs użytkownika jest raczej surowy, ale jednocześnie dobrze przemyślany i przyjazny.
Efekt uboczny jest taki, że mogę sobie teraz pozwolić na wyłączenie portu SSH na moim serwerze z blogiem - po dodaniu go do sieci Tailscale loguję się doń wyłącznie po adresie prywatnym. A to oznacza, że nie muszę już przejmować się setkami prób włamów od script-kiddies, ani utrzymywać listy "złych" adresów w iptables. Jedyna "wada" jest taka, że jeżeli z jakiegoś powodu usługa Tailscale zdechnie, będę musiał ją reanimować przez KVM. Kłopot niewielki, a zysk całkiem spory.
Darmowym odpowiednikiem TS jest headscale.net. Rożnica jest taka, iż zamiast korzystać z komercyjnego serwera DERP TS, stawiasz swój serwer DERP oparty właśnie o headscale na jakimś VPS.
Cloudflare oferuje coś podobnego, tylko nazywa to jakoś dziwnie.
Jeśli chodzi o SSH, to gdy masz serwer WWW, to możesz zrobić skrypt w cronie, który będzie patrzył na logi serwera WWW i na umówiony znak-sygnał, czyli próbę pobrania określonego URLa, wykona zaplanowane polecenia. Np. odblokuje port SSH. Przydatne, gdy nie ma KVM, albo akurat nie mamy dostępu do panelu.