Wifi

Zmiana adresu MAC (BSSID) routera WiFi w OpenWRT

Pisząc ostatnio artykuł o tym jak uchronić nasz prywatny punkt dostępu do sieci WiFi przed zmapowaniem i umieszczeniem jego fizycznej lokalizacji w serwisach pokroju Wigle.net czy też w usługach Google/Mozilla, poruszony został temat ewentualnego usuwania wpisów z takich baz danych AP za sprawą dopisywania do nazwy sieci (ESSID) sufiksu _nomap . Nie wszystkie organizacje/firmy respektują naszą prywatność i raczej też nie będą tej końcówki w nazwie sieci honorować. Jako, że jednym z dwóch parametrów, na podstawie których takie mapowanie punktów dostępowych się odbywa, jest adres MAC interfejsu bezprzewodowego danego AP (BSSID), to możemy od czasu do czasu pokusić się o zmianę tego adresu. Jest to mniej więcej to samo rozwiązanie, co zastosowane przy klonowaniu adresu MAC dla portu WAN routera, które z reguły użytkownicy wykorzystują do obchodzenia zabezpieczeń tych bardziej wrednych ISP. Jako, że temat zmiany BSSID trochę się różni od zmiany adresu MAC dla portu WAN, to w niniejszym artykule postanowiłem opisać jak w routerze z wgranym firmware OpenWRT podejść do tego zadania.

Jak ukryć nazwę sieci WiFi (ESSID) przed Wigle.net/Google/Mozilla

Parę dni temu napisał do mnie megabajt z forum DUG z wiadomością, że nazwa mojego WiFi figuruje w bazie danych serwisu Wigle.net oraz, że lepiej nie zdradzać nazw swoich WiFi osobom trzecim, bo ktoś w oparciu o te dane może poznać nasze fizyczne położenie. Jak najbardziej istnieje taka możliwość, a sam serwis Wigle.net nie jest jedynym, który zbiera informacje o położeniach geograficznych punktów dostępowych WiFi, bo od lat robi to też Google i Mozilla. Niemniej jednak, podchodziłbym z pewną dozą ostrożności do danych zgromadzonych w serwisie Wigle.net (i tych pozostałych dwóch też), bo nie zawsze muszą one być akuratne. W zasadzie to nie zdziwiłem się zbytnio, że nazwa mojej sieci WiFi figuruje w bazie danych Wigle.net, bo sam ją tam umieściłem świadomie jakiś czas temu w ramach testów wykorzystując do tego celu aplikację WiGLE WiFi Wardriving, którą można wgrać przez F-Droid na każdy telefon z Androidem. Jako, że nadarzyła się okazja, to postanowiłem napisać parę słów na temat unikania bycia zmapowanym, tak by jakiś nieznany nam bliżej osobnik przez przypadek nie wrzucił lokalizacji naszych domowych/firmowych AP do bazy danych Google/Mozilla czy też wspomnianego wyżej serwisu Wigle.net, o ile oczywiście sobie tego nie życzymy.

Wsparcie dla WiFi w initramfs/initrd by odszyfrować LUKS przez SSH bezprzewodowo

W poprzednim artykule, który traktował o odszyfrowaniu kontenera LUKS przez SSH z poziomu initramfs/initrd na Raspberry Pi, została poruszona kwestia adresacji IP, która w opisanym tam rozwiązaniu miała pewne ograniczenia. Chodziło o to, że połączenie SSH do RPI mogło być realizowane jedynie przez przewodowy interfejs sieciowy eth0 . Trzeba było zatem się zastanowić nad rozwiązaniem, które umożliwiłoby korzystanie również z bezprzewodowego interfejsu WiFi, tj. wlan0 . Celem niniejszego wpisu jest pokazanie w jaki sposób można dorobić wsparcie dla połączeń WiFi w naszej malinie, tak by szło odszyfrować kontener LUKS przez SSH, w sytuacji gdy z jakiegoś powodu nie chcemy lub też nie możemy korzystać z przewodowego interfejsu sieciowego tego minikomputera z zainstalowanym system RasPiOS/Raspbian.

Randomizacja adresów MAC WiFi w smartfonie z Androidem

Posiadacze smartfonów z Androidem w wersji 10+ rzadko kiedy orientują się, że w tej wersji został wprowadzony dość ciekawy mechanizm mający na celu poprawnie prywatności osób korzystających z takich urządzeń. Chodzi o randomizację adresów MAC przy połączeniach z sieciami WiFi. Nie zawsze ten mechanizm jest włączony domyślnie, przez co w kwestii prywatności użytkowników telefonów niewiele się zmienia, np. tak jest w przypadku mojego Xiaomi Redmi 9. Samo włączenie randomizacji MAC nie jest niczym skomplikowanym i nie trzeba do tego nawet praw administratora root (stosowna opcja jest do załączenia w oknie konfiguracji połączenia WiFi). Zwykle jednak przy wykorzystaniu standardowej randomizacji MAC mamy generowany unikalny adres MAC dla danej sieci WiFi (w oparciu o jej ESSID). Można jednak pójść o krok dalej i sprawić, że przy każdym połączeniu, nawet do tej samej sieci WiFi, będziemy mieli generowany inny adres MAC, co z kolei powinno nam zapewnić nieco więcej prywatności w publicznych sieciach WiFi oraz też przeciwdziałać śledzeniu nas przy roamingu między takimi sieciami.

Pozorowanie lokalizacji GPS w Androidzie (mock location)

Wiele osób nie pozostawia suchej nitki na mechanizmie geolokalizacji zaszytym w smartfonach z Androidem na pokładzie. No i faktycznie w sporej części przypadków zastrzeżenia jakie są kierowane pod adresem lokalizacji/GPS w kwestii permanentnego śledzenia nas przez Google nie są przesadzone. Niektórzy spierają się, że wystarczy włączyć tryb samolotowy (Airplane Mode) w telefonie i nasza pozycja przestaje być rejestrowana w czasie rzeczywistym ale nie jest to prawdą. Jakiś czas temu świat obiegła informacja, że Android rejestruje dane geolokalizacji nawet, gdy tryb samolotowy jest włączony, a telefon nie ma włożonych kart SIM i to przy jednoczesnym wyłączeniu WiFi i BT. Jak to do końca jest z tą lokalizacją i czy faktycznie nie da się jej wyłączyć w Androidzie? A może powinniśmy pójść w drugą stronę i zamiast starać się wyłączać lokalizację, to spróbować oszukać system przez jej pozorowanie? Taki zabieg jest możliwy ale wymagana jest zewnętrzna aplikacja do pozorowania lokalizacji, np. Fake Traveler, którą trzeba określić w ustawieniach deweloperskich Androida. Czy ten zabieg wpłynie pozytywnie na lokalizację w kontekście naszej prywatności? Czy może lepiej jest jednak zostawić telefon w domu i pójść na niejawne spotkanie bez tego urządzenia?

Jak załadować firmware karty WiFi przed initrd/initramfs

Każdy kto ma laptopa wyposażonego w kartę WiFi, czy też ogólnie komputer posiadający bezprzewodową sieciówkę, ten prawdopodobnie spotkał się z błędem podobnym do tego: Direct firmware load for iwlwifi-6000g2a-6.ucode failed with error -2 . W tym przypadku sprawa dotyczyła karty Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] działającej w oparciu o moduł kernela iwlwifi . W takich przypadkach zwykle wystarczy zainstalować firmware od określonego modułu i po kłopocie. No i faktycznie w Debianie jest dostępny pakiet firmware-iwlwifi , który zawiera ten potrzebny plik iwlwifi-6000g2a-6.ucode . Problem jednak w tym, że instalacja paczki z firmware niekoniecznie może nam pomóc. Ten powyższy przykład nie jest odosobniony i czasami pliki z firmware muszą być dostępne w chwili ładowania kernela do pamięci RAM czy też na etapie initramfs/initrd. W takim przypadku zainstalowanie paczki z firmware w naszym linux'ie nic nam nie da, bo pliki rezydują na niezamontowanym jeszcze dysku. Jak zatem wybrnąć z tej wydawać by się było patowej sytuacji?

Jak zmienić hostname w telefonie z Androidem

Przeglądając ostatnio listę sprzętów podłączonych do mojego routera WiFi, zauważyłem, że niektóre pozycje na niej w polu z hostname mają coś na wzór android-4c52c33baae0b4fa . Pierwsza część nazwy tego hosta wskazuje na system operacyjny, a drugi kawałek to unikalny numerek ID. Nie jestem zbytnio fanem rozgłaszania takich informacji publicznie, bo mogą one ułatwić ewentualne ataki, oraz też identyfikują jednoznacznie dane urządzenie (osobną kwestią jest adres MAC karty sieciowej). Ponadto, mając w sieci wiele mobilnych urządzeń, ciężko jest czasem połapać się który telefon ma przypisany konkretny adres IP (bez patrzenia w ustawienia telefonu). Z reguły na linux'owym desktopie czy laptopie zmiana hostname jest stosunkowo łatwym zadaniem ale w przypadku smartfona z Androidem ten zabieg okazał się niezmiernie trudnym procesem. Jak zatem zmienić hostname telefonu, by można było mu przypisać jakaś w miarę ludzką nazwę?

Wifi Roaming Fix i SWIFI, czyli roaming w smartfonie

Ostatnimi czasy coraz więcej sieci domowych zaczyna być wyposażanych w sprzęt umożliwiający połączenie bezprzewodowe. Router WiFi ma już chyba znaczna większość z nas ale nie są to jedyne urządzenia, które są w stanie świadczyć bezprzewodowe usługi sieciowe. Im większy dystans dzieli odbiornik od nadajnika lub też im więcej przeszkód stoi na bezpośredniej drodze komunikacji, tym sygnał ulega większej degradacji. Zwykle w takiej sytuacji dokupujemy drugi router WiFi, ewentualnie prosty AP, wzmacniacz sygnału WiFi czy też ekstendery powerline (PLC). Wszystko po to, by jakoś przyzwoicie pokryć sygnałem całą przestrzeń użytkową naszego domu czy też miejsc, w których spędzamy wolny czas. Każde takie urządzenie realizuje połączenie WiFi mniej więcej w ten sam sposób, tj. zestawia punkt dostępu, do którego podłączamy komputer albo smartfona. O ile w przypadku desktopów czy laptopów przełączanie się między tymi AP w zależności od siły sygnału nie stanowi większego problemu, o tyle w przypadku smartfonów z Androidem nie jest już tak różowo, bo przełączenie następuje jedynie przy całkowitej utracie sygnału z AP. Takiej sytuacji można zaradzić ale trzeba posiłkować się dodatkowymi aplikacjami. W poniższym artykule zostaną opisane dwa takie programiki: SWIFI i Wifi Roaming Fix.

Udostępnianie LTE/3G ze smartfona przez router OpenWRT (tethering)

Przeglądając forum eko.one.pl natrafiłem ciekawy problem, nad którym też się zastanawiałem jakiś czas temu. Chodzi o udostępnienie internetu komórkowego (LTE/3G) komputerom w domowej sieci za pomocą smartfona (tzw. tethering). W takiej sytuacji, w przypadku problemów z lokalnym dostawcą internetu moglibyśmy przepiąć wszystkie komputery na internet świadczony przez operatora GSM, z którego korzystamy. Z reguły standardowy firmware routerów WiFi nie pozwala na tego typu rozwiązania. Niemniej jednak, mając do dyspozycji router z OpenWRT można spróbować połączyć go z naszym smartfonem udostępniając sieci lokalnej internet LTE/3G. W tym artykule zostanie przedstawione tego typu rozwiązanie przy wykorzystaniu routera Archer C7 v2 od TP-LINK oraz smartfona Neffos C5, również od TP-LINK. Na routerze zaś jest wgrana najnowsza stabilna wersja OpenWRT (Chaos Calmer). Sprawdzimy sobie jak takie rozwiązanie wygląda oraz sprawuje się w praktyce i czy jest ono w ogóle godne jakiegoś większego zainteresowania.

Mostek eth0 + wlan0 z bridge-utils i wpa_supplicant

Posiadając w komputerze kilka interfejsów sieciowych, prędzej czy później dostrzeżemy wady jakie niesie ze sobą konfiguracja wszystkich posiadanych kart sieciowych. Skonfigurowanie szeregu interfejsów przewodowych nie stanowi raczej większego wyzwania. Można je spiąć w jeden za pomocą bonding'u czy też konfigurując wirtualny interfejs mostka (bridge). A co w przypadku bezprzewodowych interfejsów? Tu również możemy skonfigurować interfejs bond0 lub też podpiąć interfejs wlan0 pod mostek. Jako, że bonding już opisywałem, to w tym artykule zajmiemy się mostkowaniem interfejsu przewodowego i bezprzewodowego, które zwykle dostępne są w naszych laptopach. Ten proces zostanie opisany w oparciu o dystrybucję linux'a Debian i skontrastujemy go sobie z w/w bonding'iem.