Zmiana adresu MAC (BSSID) routera WiFi w OpenWRT

Spis treści

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.

Czy wato bawić się w zmianę adresu MAC (BSSID) routera WiFi

Bazy danych przechowujące informacje na temat fizycznej lokalizacji punktów dostępowych WiFi łączy w zasadzie jedna wspólna cecha. Jest nią brak usuwania starych wpisów, co z kolei przekłada się na znacznie zwiększoną objętość takiej bazy, a przez to też i jej atrakcyjność w oczach potencjalnych klientów tej firmy, co te informacje zbiera. Niemnie jednak, w takiej nieczyszczonej od lat (albo i dekad) bazie danych może istnieć cała masa nieaktualnych AP, które już od dawna zostały zezłomowane przez swoich użytkowników. Istnieje zatem spore prawdopodobieństwo, że nazwa sieci WiFi, którą sobie obraliśmy, będzie figurować w kilku różnych fizycznych lokalizacjach, nie dając przy tym jednoznacznej informacji o położeniu naszego routera WiFi. Niemniej jednak, osoby, które z jakiegoś powodu zainteresowane by były naszym konkretnym AP musiałyby również pozyskać adres MAC bezprzewodowego interfejsu tego routera. Jeśli im się tę informację uda pozyskać, to bez większego problemu będą te osoby w stanie ustalić położenie naszego AP eliminując te pozycje, które mają inny BSSID. Niektóre bazy danych operują jedynie na adresach MAC (BSSID) lub nazwach sieci (ESSID) w połączeniu z BSSID. Zatem by nieco zatrzeć ślady możemy pokusić się o zmianę adresu MAC bezprzewodowego interfejsu naszego routera.

Zmiana BSSID w OpenWRT (plik /etc/config/wireless)

By zmienić adres MAC/BSSID punktu dostępowego WiFi na routerze, który ma wgrany firmware OpenWRT, musimy edytować plik /etc/config/wireless i dopisać parametr macaddr w sekcji z config wifi-iface , przykładowo:

config wifi-iface 'default_radio1'
    ...
    option macaddr 'aa:aa:aa:aa:aa:aa'
    ...

Po zapisaniu konfiguracji, restartujemy radio w routerze wpisując w terminalu polecenie wifi . Po chwili sieć WiFi powinna zostać ponownie udostępniona przez router. Wystarczy teraz przy pomocy polecenia ifconfig albo ip sprawdzić czy adres MAC na interesującym nas interfejsie bezprzewodowym uległ zmianie, przykładowo:

root@RedViper:~# ip addr show
...
48: wifi2g: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
    link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
....

I jak możemy zauważyć, adres MAC interfejsu serwującego WiFi 2,4GHz uległ zmianie na ten, który sobie określiliśmy wyżej w pliku /etc/config/wireless .

Weryfikacja ustawień BSSID ze strony klienta

By mieć pewność, że podczas skanowania za punktami dostępowymi, ten ustawiony przez nas adres MAC zostanie zgłoszony, a nie ten, który to urządzenie ma przypisane fabrycznie, odpalamy terminal na pierwszej lepszej stacji klienckiej (w tym przypadku jest to mój laptop z zainstalowanym Debianem) i przy pomocy polecenia wpa_cli przeprowadzamy skanowanie eteru w poszukiwaniu AP:

# wpa_cli scan && sleep 5 && wpa_cli scan_results
Selected interface 'wlan0'
OK
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
...
aa:aa:aa:aa:aa:aa       2412    -34     [WPA2-PSK-CCMP][ESS][UTF-8]     Ever_Vigilant
...

Jak widzimy, na liście pojawił się mój AP ze zmienionym BSSID. Jeśli teraz ktoś by dokonał skanowania okolicy w celu dodania takiego punktu dostępu do bazy danych, to w bazie zostanie uwzględniony ten widoczny wyżej MAC, a nie ten fabryczny urządzenia.

Parę słów o losowości adresów MAC/BSSID

Oczywiście taki BSSID, który ustawiliśmy sobie wyżej, jest dość podejrzany. Dlatego też by wtopić się w tłum lepiej jest wygenerować sobie MAC możliwie nieodbiegający od przyjętych standardów. Możemy naturalnie ręcznie sobie wygenerować taki MAC (tak jak to zostało opisane w podlinkowanym wyżej artykule) albo też zaprzęgnąć do pomocy narzędzie macchanger i wygenerowany przez niego MAC podać routerowi.

Podsumowanie

Poprzez określenie ESSID/BSSID w bazach danych punktów dostępowych WiFi jesteśmy w stanie namierzyć fizyczną lokalizację osób, które nieświadomie lub lekkomyślnie podały te informacje gdzieś w internecie. Pozytywna wiadomość jest taka, że zarówno nazwę sieci, jak i adres adres MAC routera WiFi, można zmienić praktycznie w dowolnym momencie pracy tego urządzenia, przynajmniej gdy w grę wchodzi firmware OpenWRT. Regularna zmiana tych parametrów sieci raczej może przynieść więcej szkód niż pożytku za sprawą problemów, które niesie ze sobą rekonfiguracja wszystkich klientów takiej sieci. Jeśli nie zamierzamy zmieniać fizycznej lokalizacji, np. nie przeprowadzamy się do innego miasta, to zmiana BSSID (i ewentualnie ESSID) mija się z celem i może nam dać jedynie fałszywe poczucie prywatności na zasadzie takiej, że skoro teraz używamy innej sieci, to nikt na podstawie poprzednich parametrów (tych ujawnionych publicznie) nie będzie w stanie ustalić naszego położenia. Dlatego też jeśli zależy nam na prywatności, to lepszym rozwiązaniem jest niepublikowanie tych informacji w internecie.

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.