Monitoring rádiového spektra WiFi v GNU/Linux

Horst - Spectrum AnalyzerV předchozím příspěvku jsem se zabýval stavbou smyčkové antény Double BiQuad. Pokud chceme využít plného potenciálu v městské zástavbě, kde je mnoho rušení pocházejících od okolních komunikačních prvků pracujících ve stejném kmitočtovém pásmu, musíme mít alespoň přibližný přehled o využití tohoto pásma. Získané informace nám pomohou při vybírání vhodného kanálu v procesu zvaném „frekvenční plánovaní“.
Vybráním nejméně zarušeného kanálu pro WiFi zařízení v konfiguraci AP se vyhneme případným výkonnostním problémům a můžeme dosáhnout maximálních možných přenosových rychlostí. Zároveň předejdeme rušení okolních uživatelů naším zařízením.
Každé WiFi zařízení, dle IEEE 802.11, obsahuje sadu vlastností, které se využívají pro vyhledávání, monitoring, připojení, nastavení a práci v rámci této technologie. V tuto chvíli nás budou zajímat funkce pro vyhledávání a monitoring. Každá čipová sada poskytuje základní příkazy, které jsou pro správnou funkci nutné. Dále jsou dostupné příkazy, které jsou závislé na konkrétním výrobci, firmware a čipové sadě. Pro komunikaci s čipovou sadou se v GNU/Linux používá několik základních nástrojů. Ty jsou obsaženy zejména v balíčcích wireless-tools, iw. K nim lze přidat i nástroje horst (Highly Optimized Radio Scanning Tool) a aircrack-ng.

WiFi zařízení v linuxu

Při práci s WiFi zařízením v GNU/Linux je využívána jak komunikace s vlastním fyzickým zařízením (PHY), tak logickým rozhraním. Ve většině případů se pracuje právě s oním logickým, které se může jmenovat wlan0, wlan1, wlp0s12, atd.
Existuje několik možností, jak vypsat takto vytvořené rozhraní:

Na výpisech je vidět vytvořené rozhraní wlan0. Zajímá-li nás i název fyzického zařízení, použijeme příkaz iw:

Zde je důležitá položka wiphy 0, která udává, že se jedná o bezdrátové fyzické zařízení 0. Pokud budeme pracovat s tímto fyzickým zařízením, nemůžeme použít identifikátor wiphy 0, ale phy0. Na následujícím výpisu je zachycen seznam vlastností našeho zařízení phy0:

AP v dosahu a využití pásma

Nejjednodušší možností, jak zjistit dosažitelné AP je využití nástrojů iw, případně iwlist. Oba vypíší seznam dostupných s přijímací úrovní RSSI a seznamem vlastností, které se používají při spojení. Jak je možné vidět na příkladu, oba nástroje poskytují trochu jiný pohled na stejnou věc. Pro nás jsou důležité informace kmitočet (Frequency) nebo kanál, úroveň signálu (Signal level) a pro orientaci SSID. Aby to nebylo tak jednoduché, IEEE 802.11 umožňuje komunikovat na několika kanálech současně (pokud je povoleno). Tato vlastnost se označuje jako HT/VHT a kromě položky primární kanál (primary channel) se ve výpisu uvádí i ofset sekundárního kanálu (secondary channel offset). Pokud je uvedeno „above“, bere se v úvahu ještě kanál nad primárním. V případě uvedení „below“ se jedná o kanál pod primárním.

Tímto způsobem můžeme zmapovat využití kmitočtového spektra v naší lokalitě. U obou příkazů můžeme specifikovat různé filtry, jako například frekvenci (iw wlan0 scan freq 5500).

Monitoring WiFi provozu

Další možností, jak získat obrázek o využití kmitočtového pásma v okolí je monitoring sítě. K této disciplíně musíme využít sofistikovanějších vlastností WiFi zařízení. Ty mohou být u některých typů zablokovány nebo nevyužity ovladačem operačního systému.
Na fyzickém zařízení vytvoříme další logické rozhraní nebo převytvoříme stávající rozhraní s novými vlastnostmi. To můžeme pomocí příkazu iw nebo airmon-ng/code>:

Příkaz iw vytvořil na fyzickém zařízení phy0 nové rozhraní mon0 se kterým budeme dále pracovat. Rozhraní wlan0 zůstává beze změny.

Oproti tomu airmon-ng odstraní rozhraní wlan0 (mac80211 station mode vif disabled for [phy0]wlan0) a vytvoří nové wlan0mon (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon). Pokud je rozhraní wlan0 v operačním systému využíváno některým z procesů, jsme o této skutečnosti informováni (No interfering processes found). Pokud je tomu tak, měli bychom takový proces/službu ukončit.

U rozhraní wlan0mon0 musí být vždy nastaven shodný kanál (systém se o to postará sám). Problém může nastat, pokud budeme chtít změnit monitorovaný kanál na rozhraní mon0 a rozhraní wlan0 bude zablokováno nějakým procesem/službou. V takovém případě může dojít k neočekávanému chování systému nebo jednoduše nepůjde kanál změnit.

Nyní můžeme provést kontrolu, zda máme rozhraní správně vytvořeno.
V případě použití iw:

Při použití airmon-ng:

Důležitou informací je parametr Mode:Monitor. Toto rozhraní budeme používat pro monitoring.

Vlastní monitoring můžeme provádět nástrojem horst nebo airodump-ng.

V obou případech máme při spuštění možnost zadat různé konfigurační parametry.

Nástroj horst má více možností zobrazení, kde nás může zajímat např. spektrální analýza nebo historie signálu. Osobně tento nástroj používám při frekvenčním plánování a monitoringu nejčastěji.

Odstranění rozhraní určeného pro monitoring

Po ukončení monitoringu je vhodné příslušné rozhraní ze systému odstranit. Tuto operaci můžeme provést opět za použití iw nebo airmon-ng:

Informace na klientském WiFi zařízení a AP

Chceme-li zobrazit informace o aktivním připojení na klientském zařízení, můžeme použít příkaz iw:

Podobným způsobem zobrazíme klienty připojené k našemu AP:

Tipy pro využití kmitočtového pásma

Pokud chceme lépe využít kmitočtové pásmo v našem okolí, můžeme upřednostnit kmitočet 5 GHz oproti 2,4 GHz, využít možnosti automatického nastavení kanálu v závislosti na okolí, použít sektorové nebo směrové antény, případně zvolit její vhodnější polarizaci.

Související

WiFi z příkazového řádku GNU/Linux
Výroba Double BiQuad antény pro WiFi

1 komentář u „Monitoring rádiového spektra WiFi v GNU/Linux

  1. Pingback: Zajimave cteni | Blog J.Z. na NAS4y.NET

Leave a Reply