Mac

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.

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.

OpenWRT: Dwa różne adresy MAC na porcie WAN

Na forum eko.one.pl pojawił się ciekawy temat dotyczący problemów z adresami MAC w OpenWRT. Chodzi o to, że by uzyskać połączenie u pewnych ISP, trzeba im podać adres MAC tego urządzenia, które będzie wpięte bezpośrednio w strukturę sieci ISP. Niby normalna sprawa ale w pewnych przypadkach, ISP potrafi uwalić połączenie, gdy inne urządzenie zostanie podpięte do sieci w miejscu starego. Zwykle wystarczy telefon do ISP z prośbą o aktualizację adresu MAC ale w przypadku firmware OpenWRT może to być ździebko problematyczna kwestia. Wychodzi na to, że OpenWRT identyfikuje się dwoma adresami MAC na porcie WAN. Jeden z nich to ten standardowy MAC, który powinien być wykorzystywany i podany ISP. Drugim zaś jest MAC, który pojawia się przy rozgłaszaniu trybu failsafe podczas fazy startu routera WiFi. Ja nigdy nie zaobserwowałem problemów z tego powodu. Niemniej jednak, postanowiłem sprawdzić, jak ta sytuacja dokładnie wygląda i jak sobie z nią poradzić już teraz, na wypadek, gdyby w przyszłości trafił mi się jeden z takich dziwnych ISP.

Losowy adres MAC dla WAN w OpenWRT

Na dużych dystrybucjach linux'a adres MAC można zmienić bez problemu. Podobnie sprawa ma się w przypadku automatycznego generowania takiego adresu MAC za każdym razem, gdy chcemy nawiązać połączenie z internetem. W OpenWRT rozwiązanie tego zadania nie jest tak oczywiste jak, np. na debianie, ale też znowu nie jest niemożliwe. W repozytorium OpenWRT mamy dostępny pakiet macchanger . Niemniej jednak, w przypadku routerów o małych pamięciach flash, instalowanie dodatkowych pakietów może nie być dobrym pomysłem. Przydałoby się zatem zaprojektować mechanizm generowania i zmiany adresu MAC interfejsu WAN za każdym razem, gdy będziemy resetować router i to zadanie postaramy się zrealizować w tym artykule.

Jak sklonować adres MAC w OpenWRT

Każde urządzenie sieciowe ma przypisany jakiś adres MAC. Jest to numer, który identyfikuje je w strukturze sieci. Gdy zachodzi potrzeba rozbudowania sieci domowej, możemy napotkać problemy z naszym obecnym ISP. Załóżmy, że posiadaliśmy do tej pory jeden komputer, który był wpięty bezpośrednio do łącza ISP. Jeśli dokupiliśmy router i podłączymy go w miejsce komputera, to urządzenie, które widzi nasz provider, ulega zmianie. W takim przypadku nie ma znaczenia samo urządzenie, a liczy się jedynie zmiana adresu MAC. Providerzy internetowi mają powiązane adresy MAC z adresami IP i nowo wpięty router nie otrzyma adresu IP, bo ma nieautoryzowany MAC. W takiej sytuacji zwykle wystarczy telefon do ISP z prośbą o aktualizację tego adresu. Niemniej jednak, czasami ISP każą sobie dodatkowo płacić za tę czynność. Jeśli jesteśmy postawieni w takiej sytuacji, to możemy sklonować sobie adres MAC tej maszyny, którą wcześniej widział nasz ISP. Z jego perspektywy nic się nie zmieni, a my będziemy mogli sobie rozdzielić sygnał na tyle komputerów, ile tylko chcemy, nie ponosząc przy tym dodatkowych opłat. W niniejszym artykule zostanie opisany sposób na przeprowadzenie klonowania adresu MAC na routerze z wgranym firmware OpenWRT.

Jak przypisać losowy adres MAC do interfejsu

Interfejsy kart sieciowych, które są instalowane w komputerach, posiadają adres MAC (Media Access Control). Jest to unikalny identyfikator, który wyróżnia nasz komputer spośród tłumu. Na podstawie tego adresu można nie tylko określić markę sprzętu, którą się posługujemy ale także można sklasyfikować cały nasz ruch sieciowy. W ten sposób bardzo prosto możemy zostać zidentyfikowani wymieniając dane przez darmowe hotspoty sieci bezprzewodowych WiFi. Niemniej jednak, jesteśmy się w stanie obronić przed tego typu inwigilacją zmieniając adres MAC naszego komputera. Nie jest to zbytnio trudne ale trzeba uważać, by znowu nie przesadzić w drugą stronę i czasem nie zostać zidentyfikowanym przez naszą "odmienność". W tym wpisie postaramy się wypracować taki mechanizm, który zmieni nam adres MAC przy każdym podłączeniu do sieci i przy zachowaniu zdroworozsądkowych zasad.