wersja mobilna | kontakt z nami

Raspberry TOR Router

Numer: Czerwiec/2017

Korzystanie z sieci TOR nie jest specjalnie trudne, ale wymaga nieco zachodu. W praktyce każde urządzenie, na którym chcemy puścić ruch sieciowy poprzez szereg anonimowych routerów musi mieć zainstalowane odpowiednie oprogramowanie. Da się to jednak obejść w całkiem łatwy sposób - wystarczy tylko posiadać taki komputerek, jak Raspberry Pi.

Pobierz PDFMateriały dodatkowe

rys1Coraz częściej słyszy się o problemie prywatności w sieci. Temat ten nabiera na znaczeniu, gdyż już bardzo istotna część naszego życia wiąże się bezpośrednio z korzystaniem z Internetu, a nowoczesne algorytmy pozwalają korporacjom sprawnie analizować i przewidywać nasze zachowania. Jednym ze sposobów na ukrycie przed osobami postronnymi tego, co robimy w sieci jest wykorzystanie protokołu TOR (The Onion Router). Nazwa nie jest przypadkowa i dobrze obrazuje sposób działania tego protokołu. Bazuje on na tzw. trasowaniu cebulowym, a więc na wielokrotnym szyfrowaniu ruchu w taki sposób, by zmylić ewentualnych „podsłuchujących”. Na sieć TOR składa się szereg routerów – najczęściej komputerów, które altruistycznie nastawieni użytkownicy udostępniają, by inni mogli swobodnie korzystać z protokołu. Poszczególne routery szyfrują i deszyfrują przenoszone przez siebie pakiety w taki sposób, że osobie postronnej bardzo trudno odgadnąć, skąd i dokąd przesyłane są dane. I o ile TOR nie jest nie do rozgryzienia, to aby prześledzić trasę pakietów trzeba poświęcić dosyć duże środki, w związku z czym w większości przypadków staje się to zwyczajnie nieopłacalne dla ewentualnego „szpiega”.

rys2Pudełko z TORem

Skoro zastosowanie protokołu TOR praktycznie nic nie kosztuje, a próba jego pokonania jest dosyć droga, to dlaczego nie wszyscy z niego korzystają? Są dwa podstawowe problemy. Po pierwsze TOR znacznie spowalnia działanie sieci – szczególnie tych szybkich. Przesyłanie pakietów przez wiele routerów wydłuża ich trasę, znacząco zwiększając pingi i istotnie zmniejszając przepustowość. Drugą trudnością jest instalacja TORa. O ile na komputerze PC nie jest to bardzo skomplikowane, to jednak nie każdy będzie skłonny modyfikować ustawienia systemowe, aby przekierowywać ruch przez TORa. Dotyczy to szczególnie użytkowników mało zaawansowanych, dla których przestawianie się pomiędzy normalną, szybką siecią, a TORem będzie po prostu zbyt skomplikowane. W końcu nie na każdym urządzeniu da się zainstalować odpowiednie oprogramowanie. Czasem użytkownik chcący skorzystać z TORa nie ma uprawnień administratora do komputera, którego używa, a czasem na daną platformę nie ma gotowych aplikacji, które w prosty sposób mogłyby wymusić komunikację „cebulową”. Warto przy okazji wspomnieć, że dotyczy to m.in. zdecydowanej większości urządzeń IoT, które mają jedynie proste interfejsy komunikacyjne i zbyt małą moc obliczeniową (oraz pamięć) by zajmować się złożonym szyfrowaniem.

rys3Rozwiązaniem drugiego z tych problemów jest wykorzystanie routera sieci TOR, który automatycznie kieruje cały ruch poprzez serwery rozmieszczone w różnych miejscach świata. Na rynku znaleźć można gotowe routery tego typu w cenie od ok. 60 do 120 USD, różniące się między sobą szczegółami. Jednakże praktycznie taki sam, a ponadto wyposażony w Wi-Fi, możemy samodzielnie wykonać w kilkanaście minut, wykorzystując do tego, choćby stary Raspberry Pi. Kompletny projekt tego typu został opublikowany w serwisie Hackaday.io przez użytkownika o loginie Thomas (https://goo.gl/VZs1fF), który wykorzystał narzędzia opracowane przez firmę Adafruit. My publikujemy spolszczoną i zaktualizowaną wersję tego projektu, odtworzoną na Raspberry PI 1 Model B+, ale z najnowszym oprogramowaniem Raspbian Jessie Lite.

Podzespoły

Do wykonania własnego Raspberry TOR Routera nie trzeba wiele. Wystarczy stary Raspberry Pi, 4-gigabajtowa karta pamięci SD, zasilacz USB z kablem microUSB i bezprzewodowa karta sieciowa. W naszym przypadku wykorzystaliśmy niedrogą (wartą ok. 4 USD) kartę 802.11n 150 Mb/s z interfejsem USB 2.0, opartą na chipsecie Realtek RTL8188. Potrzebny jest też przewód do podłączenia Raspberry Pi do sieci przewodowej. Karty Wi-Fi nie należy początkowo podłączać do urządzenia.

rys3Instalacja

Przygotowanie Raspberry TOR Routera można podzielić na trzy etapy. Pierwszy to zapisanie obrazu Raspbiana na kartę pamięci i konfiguracja systemu. Konieczne jest rozszerzenie partycji do maksimum, choć aktualna wersja Raspbiana, którą pobraliśmy (Jessie Lite 2017-04-10) sama wykonała tę operację po pierwszym uruchomieniu systemu. Sensowne będzie też zmienienie hasła (w końcu chcemy uzyskać bezpieczny router sieciowy). Można również ustawić komputer, by automatycznie logował się na konto użytkownika po uruchomieniu (Boot Options –> Console Autologin) i skonfigurować dane związane z lokalizacją: strefę czasową, rodzaj klawiatury, język i sposób prezentacji niektórych informacji. Dzięki temu będzie wygodniej wprowadzało się wszelkie kolejne polecenia. Można też zmniejszyć ilość pamięci przydzielonej na kartę graficzną, gdyż ta w ogóle nie będzie wykorzystywana, poza prezentacją treści w trybie tekstowym. Wystarczy ustawić „Memory Split” w dziale „Advanced Options” na 16 MB.

Na koniec dobrze będzie zaktualizować oprogramowanie. W tym celu należy wykonać kolejno polecenia:

sudo apt-get update
sudo apt-get upgrade

Router Wi-Fi

Drugim krokiem będzie instalacja sterowników do karty sieciowej Wi-Fi i przełączenie jej w tryb pracy punktu dostępowego. Można w tym celu skorzystać z gotowego skryptu, który automatyzuje bardzo wiele ustawień. Można go pobrać poleceniem wget https://cdn.hackaday.io/files/4223180676832/pifi.sh. My przygotowaliśmy jego spolszczoną, zaktualizowaną wersję pod adresem <XXXXXXXXXXXX>. Po pobraniu pliku należy nadać mu uprawnienia do wykonywania chmod +x pifi.sh i można go uruchomić sudo ./pifi.sh. Skrypt zapyta kolejno o kilka parametrów i przygotuje pliki konfiguracyjne. Gdy zakończy pracę komputer się sam zrestartuje, po czym należy go bezpiecznie wyłączyć. W tym celu warto użyć polecenia sudo shutdown –a now

rys4Dopiero wtedy należy podpiąć kartę Wi-Fi do złącza USB i włączyć zasilanie. Po ponownym uruchomieniu, w okolicy pojawi się widoczna nowa sieć bezprzewodowa o nazwie SSID takiej, jaka została podana w trakcie konfiguracji.

Co robi skrypt pifi.sh? Główna część przygotowanej przez nas polskiej wersji została umieszczona na listingu 1. Skrypt kolejno aktualizuje informacje o dostępnych pakietach, po czym instaluje dwa programy. Hostapd, który odpowiada właśnie za pracę karty sieciowej jako bezprzewodowego punktu dostępowego oraz isc-dhcp-server, który po prostu jest serwerem DHCP. Dzięki temu punkt dostępowy może automatycznie przydzielać adresy IP poszczególnym podłączanym urządzeniom.

Kolejne linijki odpowiadają za konfigurację serwera DHCP. Będzie on rozdawał IP w zakresie od 192.168.42.10 do 192.168.42.50. Sam punkt dostępowy przyjmuje adres 192.168.42.1 i będzie podawać się za bramkę sieci bezprzewodowej. Serwery DNS zostały ustawione na googlowe 8.8.8.8 i 8.8.4.4, dzięki czemu całość będzie działać w prawie dowolnym miejscu na świecie (pewnie za wyjątkiem Chin). Po tych operacjach rekonfigurowane są interfejsy sieciowe, aż w końcu serwer pyta o nazwę i hasło tworzonego hot spotu.

rys6Kolejny krok to konfiguracja programu hostapd. Jak widać, wykorzystywany sterownik nie odpowiada bezpośrednio temu, który mamy w naszej karcie sieciowej, ale to nie szkodzi gdyż w praktyce ustawienia te działały z kilkoma kartami, jakie podłączyliśmy. Następne kilka liniej odpowiada za wymuszenie uruchamiania programu hotspotu zaraz po włączeniu systemu oraz za konfigurację firewalla, tak by odpowiednio kierował ruchem. Wykorzystywany jest do tego popularny program iptables. Gdy ta operacja się zakończy, skrypt pobiera spakowane dane zaktualizowanego programu hostapd z serwera Adafruit, dzięki czemu mamy pewność, że będzie on poprawnie działał z Raspberry Pi. Po instalacji skrypt restartuje usługi i sprawdza, czy się uruchomiły. Jeśli wszystko jest ok, włącza ich uruchamianie przy starcie i restartuje komputer.

rys7Router TOR

Po pomyślnym restarcie należy uruchomić drugi skrypt. Można go pobrać za pomocą komendy wget https://cdn.hackaday.io/files/4223180676832/tor.sh, a uruchomić nadając odpowiednie uprawnienia chmod +x tor.sh i wykonując sudo ./tor.sh.

Skrócona, polska wersja drugiego skryptu została zamieszczona na listingu 2. Skrypt kolejno pobiera i instaluje oprogramowanie TOR, po czym je konfiguruje. Wprowadza przy tym ustawienia zgodne z określonymi w trakcie pracy pierwszego ze skryptów. Następne kroki dotyczą ustawień firewalla. Warto zauważyć, że wyjątkowo traktowany jest port 22, który pozwoli zdalnie rekonfigurować Raspberry Pi przez SSH. Konfigurowane jest też rejestrowanie zdarzeń w logach i automatyczne uruchamianie TORa, po czym system jest restartowany.

rys8Podsumowanie

Z naszego doświadczenia wynika, że potrzeba kilku minut od uruchomienia routera do momentu, aż zacznie on w sprawnie przekazywać ruch przez sieć TOR. Niemniej wszelkie podłączone komputery były widziane, jakby przeglądały Internet zza TORa. Można to sprawdzić na kilka sposobów. Pierwszy to wejście na stronę https://check.torproject.org. Rezultat podczas korzystania z przygotowanego przez nas hotspotu widać na rysunku. Można też pokusić się o przetestowanie szybkości łącza. W naszym przypadku serwis Speedtest.net uznał, że łączymy się z Wielkiej Brytanii (rysunek 7), a uzyskane wyniki pomiarów (rysunek 8) zaprezentowano nam z francuskojęzycznymi reklamami.

Marcin Karbowniczek, EP

Pozostałe artykuły

Emulacja Raspberry Pi

Numer: Wrzesień/2016

...

Podwieszany ploter z Raspberry PI

Numer: Lipiec/2016

Wydruk dużych schematów i grafik wektorowych nierzadko stanowi problem. Zazwyczaj stosuje się w tym celu plotery, których koszt zakupu wcale nie jest mały. Ploter można też zbudować samodzielnie, względnie niedużym kosztem, np. w oparciu o Raspberry PI. Co prawda nie będzie on miał precyzji urządzeń profesjonalnych, a tempo pracy będzie raczej powolne, ale po udoskonaleniu może okazać się przydatnym narzędziem. W artykule prezentujemy ...

Restarter do routera sterowany za pomocą SMS

Numer: Czerwiec/2016

Nikogo nie trzeba przekonywać o tym, jak bardzo jesteśmy uzależnieni od Internetu. Nie trzeba też przekonywać, jak irytujące mogą być niespodziewane przerwy w dostępie. Wiele z takich awarii można łatwo usunąć poprzez zrestartowanie routera lub modemu. Oczywiście, o ile mamy do niego łatwy dostęp. Jeśli nie, to idealnym rozwiązaniem będzie prezentowane urządzenie. Może służyć do zdalnego włączania, wyłączania lub restartowania ...

Automat do gier z Raspberry Pi

Numer: Czerwiec/2016

Miniaturowe komputery mają obecnie moce obliczeniowe znacznie przewyższające możliwości pełnowymiarowych komputerów z przed kilku-kilkunastu lat. Dotyczy to także specjalizowanych komputerów do gier wideo. Z całą pewnością wielu starszych czytelników EP miło wspomina czas spędzony w salonach gier, gdy królowały Pacman i Galaxians. Takie zamiłowanie do starych gier sprawiło, że na świecie opracowano bardzo wiele projektów, ...

Kot z dostępem do Internetu

Numer: Maj/2017

Choć prima aprilis już minął, publikujemy opis projektu, który na pierwszy rzut oka będzie wydawał się żartem. I fakt ? opisywany w nim projekt powstał jako żart, ale mamy wrażenie, że sama idea jest godna zastanowienia i może być podstawą do opracowania bardziej sensownych i przydanych rozwiązań. Dlatego prezentujemy "Kota IoT", na którego pomysł wpadł Jeremy Wall z Kalifornii.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Październik 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym