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.
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.
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
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.
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.
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