Sieć Tor znana jest głównie z tego, że zapewnia anonimowość. Może ona jednak przydać się też fanom RPi, którzy chcieliby mieć stały kontakt ze swoją malinką i to niezależnie od używanej sieci.
Wykorzystamy Tora do połączenia się przez SSH z Raspberry Pi. Całość będzie działała bez stałego IP i bez konieczności przekierowania portów.
Podczas wykonywania tego ćwiczenia dowiesz się jak nawiązać zdalne połączenie SSH z Raspberry Pi, gdy nasze środowisko sieciowe jest znacznie ograniczone. Mowa tutaj np. o zmiennym IP, firewallu, który blokuje zdalne połączenia SSH lub sytuacji, w której nie mamy dostępu do routera i nie możemy skorzystać ze standardowych metod udostępniania zdalnego połączenia.
Rozwiązanie to sprawdzi się świetnie, gdy standardowe metody typu przekierowanie portów na routerze nie są możliwe do wykonania lub nie działają poprawnie. Trudności takie można napotkać np. w miejscu pracy, na uczelni lub w akademiku.
Użycie anonimowej sieci Tor pozwoli na dostęp do Raspberry Pi "z drugiego końca świata". Ta metoda zadziała nawet, jeśli korzystamy ze standardowego łącza LTE/4G, które nie pozwala na przekierowanie portów. Wykorzystując adres wygenerowany przez Tor nie będziemy nawet musieli znać IP malinki.
Czym jest sieć Tor?
Tor to skrót od (ang. The Onion Router), a w nazwie i logo projektu nie bez przyczyny widnieje cebula. Mechanizm ten wykorzystuje trasowanie cebulowe, które pozwala na uzyskanie anonimowego ruch sieciowego dzięki użyciu kolejnych warstw szyfrowania (analogicznie do warstwowej budowy cebuli).
Logo projektu Tor
Tor to zdecentralizowana, wirtualna sieć komputerów wewnątrz sieci internet. Sieć działa w oparciu o mechanizmy, które mają zapobiegać analizie ruchu sieciowego. Dzięki temu korzystając z sieci Tor stajemy się praktycznie anonimowi. Wokół tej sieci krąży wiele legend i plotek, ponieważ anonimowość przyciągnęła tam osoby zajmujące się niezbyt legalnymi rzeczami.
Nie oznacza to jednak, że sieci tej nie można wykorzystać również do realizacji zupełnie legalnych rzeczy - właśnie taki przykład zostanie tutaj pokazany w praktyce.
Dla nas anonimowość będzie "skutkiem ubocznym". Głównym celem tego ćwiczenia jest wystawienie sobie serwera SSH jako ukrytej usługi sieci Tor. Nic nie stoi na przeszkodzie, aby za pomocą Tora móc udostępniać inne usługi. SSH będzie tutaj po prostu uniwersalnym przykładem.
Trzeba jednak pamiętać, że specyfika sieci Tor wprowadza spore opóźnienia w komunikacji. Kiepskim pomysłem byłoby stawianie w taki sposób np. serwera głosowego typu Team Speak.
W skrócie: jak działa sieć Tor?
Zacznijmy od skrótowego omówienia zasad działania tej sieci. Na wstępie należy zaznaczyć, że samo korzystanie z tej sieci jest całkowicie legalne, a jedną z zalet Tora jest to, że pozwala obchodzić zapory sieciowe. W sieci Tor nie ma czegoś takiego jak adres IP, połączenia nawiązuje się za pomocą adresów w typowej dla Tora domenie .onion.
Ulubione warzywo każdego poszukiwacza anonimowości w Internecie
Jedną z wad (i zarazem zalet) Tora jest to, że nasze pakiety są szyfrowane wielokrotnie i przekazywane przez komputery innych osób znajdujących się w tej sieci (nazywanych przekaźnikami), co wydłuża czas przesyłania pakietów i zarazem odpowiedzi serwera. W zamian otrzymujemy jednak anonimowość...
Warto pamiętać, że przesyłanie dużych ilości danych przez tą sieć może zbędnie obciążać komputery innych użytkowników Tora, którzy dobrowolnie zostali przekaźnikami sieci. Dlatego, m.in. istnieje zasada, aby nie używać tam np. klientów torrent.
Do wykonania tego ćwiczenia potrzebny jest komputer PC z systemem Windows, dostęp do Internetu, Raspberry Pi, karta pamięci oraz zasilacz. Wszystkie te elementy są częścią zestawów do naszego kursu RPi od podstaw, więc zachęcam do eksperymentowania w praktyce.
W ciągu kilku ostatnich lat w świecie elektroniki ogromną popularność zyskały dwie platformy. Dzięki Arduino i Raspberry Pi każdy... Czytaj dalej »
Instalacja Tora na Raspberry Pi
Zaczynamy od połączenia się po SSH z malinką w sieci lokalnej (tak jak robimy to przy normalnej pracy z Raspberry Pi). Następnie instalujemy Tora poniższym poleceniem:
Shell
1
sudo apt-getinstall tor
Cała operacja zajmuje 2-3 minuty i przebiega w standardowy sposób:
Instalacja Tora na Raspberry Pi
Konfiguracja Tor na Raspberry Pi
Po krótkiej instalacji przechodzimy do pliku z ustawieniami:
Shell
1
sudo nano/etc/tor/torrc
W otwartym pliku szukamy linijek podobny do poniższych:
Shell
1
2
#HiddenServiceDir /var/lib/tor/hidden_service/
#HiddenServicePort 80 127.0.0.1:80
Pod nimi wklejamy kolejne dwie linijki, które pozwolą na uruchomienie usługi SSH na porcie numer 22. Fragment sshd to wymyślona przez nas nazwa, która nawiązuje do nazwy usługi (SSH):
Shell
1
2
HiddenServiceDir/var/lib/tor/sshd/
HiddenServicePort22127.0.0.1:22
Plik po zmianach powinien wyglądać następująco:
Po wprowadzeniu zmian zapisujemy plik i wychodzimy z edytora. Jeśli podczas zapisu pliku pojawi się błąd to zapewne nie został on uruchomiony z uprawnieniami administratora (zabrakło sudo).
Podczas kursu Raspberry Pi wiele razy musieliśmy edytować różne skrypty i programy. W tym celu wykorzystywaliśmy edytor nano lub po... Czytaj dalej »
W kolejnym kroku musimy utworzyć katalog, który wpisaliśmy w pliku konfiguracyjnym:
Shell
1
sudo mkdir/var/lib/tor/sshd
Następnie zmieniamy uprawnienia do pliku oraz jego właściciela:
Shell
1
2
sudo chmod700/var/lib/tor/sshd/
sudo chowndebian-tor.debian-tor/var/lib/tor/sshd
Bez wykonania tych poleceń nie uda nam się uzyskać później adresu oraz klucza prywatnego, czyli nie uda nam się nawiązać odpowiedniego połączenia.
Uruchomienie usługi Tor na Raspberry Pi
Po tych stosunkowo prostych ustawieniach możemy przejść do uruchomienia usługi w sieci Tor. Tutaj potrzebne będzie polecenie, które załaduje wszystkie informacje z pliku konfiguracyjnego:
Shell
1
sudo systemctl enable tor
Następnie koniecznie restartujemy Raspberry Pi.
Kolejny krok, po restarcie malinki, to ręczne uruchomienie Tora:
Shell
1
sudo systemctl start tor
Jeśli chcemy, aby Tor startował automatycznie przy uruchomieniu Raspberry Pi to musimy dodać powyższą linijkę na końcu pliku: /etc/rc.local/. W przeciwnym wypadku za każdym razem będzie trzeba uruchamiać Tora ręcznie. Nie trzeba jednak tego robić podczas tego testu.
Jeśli Tor wystartuje poprawnie to zobaczymy odpowiednią informację np. w programie htop. Należy szukać procesu uruchomionego przez użytkownika debian-tor. Może to wyglądać następująco:
Podgląd działającego procesu Tora
Następnie sprawdzamy czy w utworzonym wcześniej katalogu pojawiły się dwa nowe pliki. Jeśli tak będzie, to z pliku hostname możemy od razu odczytać wygenerowany dla nas adres w sieci Tor.
Shell
1
2
sudo ls/var/lib/tor/sshd
sudo cat/var/lib/tor/sshd/hostname
Przykład wywołania powyższych komend:
W katalogu pojawił się również klucz prywatny, którego nie należy nikomu udostępniać. Przykładowa zawartość tego pliku może wyglądać następująco:
W tej chwili najważniejszy jest wygenerowany dla nas "dziwny" adres. Dlaczego adres tak wygląda? Jak już było wcześniej wspomniane, sieć Tor opiera się na kryptografii, czyli między innymi na certyfikatach, kluczach publicznych i prywatnych. Temat ten jest dość obszerny i nie będziemy się nim teraz mocniej zajmować. Najważniejsze, aby zapamiętać, że adres w domenie onion to 16 znakowy skrót naszego klucza publicznego. W związku z tym tylko pozornie otrzymaliśmy losową wartość.
Przed przejściem dalej skopiuj swój adres w domenie onion i zamknij PuTTy.
Jeśli taki adres bardzo nam przeszkadza to możemy skorzystać ze specjalnych programów, które generują wiele kluczy i sprawdzają ich skróty. Operację generowania można powtarzać do momentu uzyskania klucza, którego skrót będzie dla nas "ciekawy". Przykładem takiego programu jest Scallion.
Dzięki temu można uzyskać adres typu: forbotu6v7xncze4.onion
Połączenie z Raspberry Pi przez Tor
Raspberry Pi zostało już przygotowane do korzystania z dobrodziejstw sieci Tor. Pora przystosować nasz komputer, który ma się zdalnie połączyć z malinką. Proces ten jest znacznie prostszy, wystarczy pobrać, zainstalować i uruchomić przeglądarkę Tor. Odpowiedni plik pobieramy ze strony projektu.
Przeglądarkę uruchamiamy od razu po instalacji. Prawdopodobnie zobaczymy wtedy poniższe okno ustawień, jeśli nie korzystamy z proxy to klikamy przycisk Connect i czekamy.
Ekran powitalny
Nawiązywanie połączenia
Po nawiązaniu połączenia z siecią Tor (co może potrwać ~30 sekund) uruchomi się przeglądarka, która wygląda jak Firefox "na sterydach". Więcej nie musimy przejmować się tym programem - wystarczy, że będzie włączony i zminimalizowany.
Przeglądarka projektu Tor
Jak skongiruować PuTTy do połączenia przez Tor?
Gdy przeglądarka jest aktywna w tle, to uruchomiamy PuTTy. Tym razem, nie będziemy jednak łączyć się z użyciem adresu IP - użyjemy adres w domenie onion. Zanim połączymy się z Raspberry Pi konieczne będzie jednak wpisanie kilku dodatkowych ustawień.
Najpierw przechodzimy do zakładki Connection>Proxy. Tam w ustawieniach wybieramy typ proxy na SOCKS 5, ustawiamy adres (127.0.0.1) i port (9150). Dzięki temu ruch z PuTTy będzie przechodził przez włączonego w tle Tora.
Ustawienie Proxy
Następnie przechodzimy do znanej nam dobrze zakładki Session i w miejsce adresu IP wpisujemy nasz "dziwny" losowy adres z sieci Tor, numer portu pozostaje bez zmian:
Łącznie na podstawie adresu w domenie onion.
Jeśli wszystko zostało poprawnie skonfigurowane to po kliknięciu Open powinniśmy połączyć się z RPi. Połączenie powinno zostać nawiązane po ~15 sekundach opóźnienia, które wynikają z omawianego wcześniej sposobu działania sieci Tor. Warto zauważyć, że podczas logowania do Raspberry Pi zamiast adresu IP zobaczymy wygenerowany adres w domenie onion.
Logowanie na podstawie adresu w domenie onion.
Nasze połączenie z Raspberry Pi powinno teraz działać tak samo, jakbyśmy byli połączeni w normalny sposób (po sieci lokalnej). Jedyną wadą będą widoczne opóźnienia. Aby upewnić się, że łączymy się przez "cebulową sieć" wystarczy zamknąć przeglądarkę pracującą w tle. Nasze połączenie z RPi zostanie natychmiast przerwane.
Przerwanie połączenia z RPi po zamknięciu Tora.
Jak sprawdzić połączenie w praktyce?
Opisane połączenia zadziała, gdy będziemy w tej samej sieci lokalnej co RPi, ale jest to mało ciekawy test. Warto sprawdzić połączenie w bardziej realnym scenariuszu. Wystarczy, aby malinka łączyła się z Internetem przez inną sieć niż nasz komputer.
Ja zdecydowałem się zostawić Raspberry Pi podłączone do normalnego WiFi, ale laptopa połączyłem z Internetem za pomocą hotspotu uruchomionego na telefonie. Normalnie ciężko byłoby uzyskać takie połączenie. Jednak korzystając z Tora obyło się bez najmniejszych problemów. Nie musiałem znać IP Raspberry Pi, obeszło się bez przekierowania portów i dynamicznych DNSów - wystarczył adres onion.
Pozdrowienia od anonimowej krowy
Powyższa "krowa" została wywołana na Raspberry Pi, do którego podłączyłem się z innej sieci przez SSH, dzięki pomocy Tora. Jeśli nie pamiętacie o co chodzi z tą krową(?) to koniecznie sprawdźcie kurs podstaw Raspberry Pi w praktyce:
Wykonując ćwiczenia z poprzedniej części kursu można przekonać się, że praca z poziomu konsoli nie jest trudna. Pora na kolejną…... Czytaj dalej »
Podsumowanie
Za nami krótka przygoda z Torem, która może znacznie ułatwić sytuacje, w których macie utrudniony dostęp do Internetu (np. w pracy lub na uczelni). Oczywiście metod zdalnego łączenia się z RPi bez przekierowywania portów na routerze jest więcej, ale ta wersja jest bardzo ciekawa i wygodna, a do tego potrafi pokonać naprawdę mocne zabezpieczenia jak np. cenzura Internetu, którą narzuca odgórnie dostawca Internetu (np. w Chinach).
Czy wpis był pomocny? Oceń go:
Średnia ocena 4.8 / 5. Głosów łącznie: 48
Nikt jeszcze nie głosował, bądź pierwszy!
Artykuł nie był pomocny? Jak możemy go poprawić? Wpisz swoje sugestie poniżej. Jeśli masz pytanie to zadaj je w komentarzu - ten formularz jest anonimowy, nie będziemy mogli Ci odpowiedzieć!
Autor: Krzysztof (pokrzyw) Redakcja: Damian (Treker)
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY na bazie Arduino i Raspberry Pi.
To nie koniec, sprawdź również
Przeczytaj powiązane artykuły oraz aktualnie popularne wpisy lub losuj inny artykuł »
Dołącz do 20 tysięcy osób, które otrzymują powiadomienia o nowych artykułach! Zapisz się, a otrzymasz PDF-y ze ściągami (m.in. na temat mocy, tranzystorów, diod i schematów) oraz listę inspirujących DIY z Arduino i RPi.
Trwa ładowanie komentarzy...