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í:

[root@linux ~]# iwconfig
wlan0     IEEE 802.11abgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

lo        no wireless extensions.

eth0      no wireless extensions.
[root@linux ~]# airmon-ng
PHY     Interface       Driver          Chipset

phy0    wlan0           rt2800usb       Ralink Technology, Corp. RT5572
[root@linux ~]# iw dev
phy#0
        Interface wlan0
                ifindex 5
                wdev 0x3
                addr 83:31:ab:1c:74:f4
                type managed
                channel 6 (2437 MHz), width: 40 MHz, center1: 2447 MHz

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:

[root@linux ~]# iw wlan0 info
Interface wlan0
        ifindex 5
        wdev 0x3
        addr 83:31:ab:1c:74:f4
        type managed
        wiphy 0

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:

[root@alarmpi ~]# iw phy0 info
Wiphy phy0
        max # scan SSIDs: 4
        max scan IEs length: 2257 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Device supports RSN-IBSS.
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
                * CCMP (00-0f-ac:4)
                * 00-0f-ac:10
                * GCMP (00-0f-ac:8)
                * 00-0f-ac:9
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * WDS
                 * monitor
                 * mesh point
        Band 1:
                Capabilities: 0x2f2
                        HT20/HT40
                        Static SM Power Save
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 2-streams
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 2 usec (0x04)
                HT RX MCS rate indexes supported: 0-15, 32
                TX unequal modulation not supported
                HT TX Max spatial streams: 2
                HT TX MCS rate indexes supported may differ
                Bitrates (non-HT):
                        * 1.0 Mbps
                        * 2.0 Mbps (short preamble supported)
                        * 5.5 Mbps (short preamble supported)
                        * 11.0 Mbps (short preamble supported)
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 2412 MHz [1] (20.0 dBm)
                        * 2417 MHz [2] (20.0 dBm)
                        * 2422 MHz [3] (20.0 dBm)
                        * 2427 MHz [4] (20.0 dBm)
                        * 2432 MHz [5] (20.0 dBm)
                        * 2437 MHz [6] (20.0 dBm)
                        * 2442 MHz [7] (20.0 dBm)
                        * 2447 MHz [8] (20.0 dBm)
                        * 2452 MHz [9] (20.0 dBm)
                        * 2457 MHz [10] (20.0 dBm)
                        * 2462 MHz [11] (20.0 dBm)
                        * 2467 MHz [12] (20.0 dBm)
                        * 2472 MHz [13] (20.0 dBm)
                        * 2484 MHz [14] (20.0 dBm) (no IR)
        Band 2:
                Capabilities: 0x2f2
                        HT20/HT40
                        Static SM Power Save
                        RX Greenfield
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 2-streams
                        Max AMSDU length: 3839 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 2 usec (0x04)
                HT RX MCS rate indexes supported: 0-15, 32
                TX unequal modulation not supported
                HT TX Max spatial streams: 2
                HT TX MCS rate indexes supported may differ
                Bitrates (non-HT):
                        * 6.0 Mbps
                        * 9.0 Mbps
                        * 12.0 Mbps
                        * 18.0 Mbps
                        * 24.0 Mbps
                        * 36.0 Mbps
                        * 48.0 Mbps
                        * 54.0 Mbps
                Frequencies:
                        * 5180 MHz [36] (20.0 dBm)
                        * 5190 MHz [38] (20.0 dBm) (no IR)
                        * 5200 MHz [40] (20.0 dBm)
                        * 5210 MHz [42] (20.0 dBm) (no IR)
                        * 5220 MHz [44] (20.0 dBm)
                        * 5230 MHz [46] (20.0 dBm) (no IR)
                        * 5240 MHz [48] (20.0 dBm) (no IR)
                        * 5250 MHz [50] (disabled)
                        * 5260 MHz [52] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5270 MHz [54] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5280 MHz [56] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5290 MHz [58] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5300 MHz [60] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5310 MHz [62] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5320 MHz [64] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5500 MHz [100] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5510 MHz [102] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5520 MHz [104] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5530 MHz [106] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5540 MHz [108] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5550 MHz [110] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5560 MHz [112] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5570 MHz [114] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5580 MHz [116] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5590 MHz [118] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5600 MHz [120] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5610 MHz [122] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5620 MHz [124] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5630 MHz [126] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5640 MHz [128] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5650 MHz [130] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5660 MHz [132] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5670 MHz [134] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5680 MHz [136] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5690 MHz [138] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5700 MHz [140] (20.0 dBm) (no IR, radar detection)
                          DFS state: usable (for 46126 sec)
                          DFS CAC time: 60000 ms
                        * 5745 MHz [149] (20.0 dBm) (no IR)
                        * 5755 MHz [151] (20.0 dBm) (no IR)
                        * 5765 MHz [153] (20.0 dBm) (no IR)
                        * 5775 MHz [155] (20.0 dBm) (no IR)
                        * 5785 MHz [157] (20.0 dBm) (no IR)
                        * 5795 MHz [159] (20.0 dBm) (no IR)
                        * 5805 MHz [161] (20.0 dBm) (no IR)
                        * 5825 MHz [165] (20.0 dBm) (no IR)
                        * 4920 MHz [184] (disabled)
                        * 4940 MHz [188] (disabled)
                        * 4960 MHz [192] (disabled)
                        * 4980 MHz [196] (disabled)
        Supported commands:
                 * new_interface
                 * set_interface
                 * new_key
                 * start_ap
                 * new_station
                 * new_mpath
                 * set_mesh_config
                 * set_bss
                 * authenticate
                 * associate
                 * deauthenticate
                 * disassociate
                 * join_ibss
                 * join_mesh
                 * set_tx_bitrate_mask
                 * frame
                 * frame_wait_cancel
                 * set_wiphy_netns
                 * set_channel
                 * set_wds_peer
                 * probe_client
                 * set_noack_map
                 * register_beacons
                 * start_p2p_device
                 * set_mcast_rate
                 * testmode
                 * set_qos_map
                 * connect
                 * disconnect
        Supported TX frame types:
                 * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * mesh point: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
                 * P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
        Supported RX frame types:
                 * IBSS: 0x40 0xb0 0xc0 0xd0
                 * managed: 0x40 0xd0
                 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * mesh point: 0xb0 0xc0 0xd0
                 * P2P-client: 0x40 0xd0
                 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
                 * P2P-device: 0x40 0xd0
        software interface modes (can always be added):
                 * AP/VLAN
                 * monitor
        valid interface combinations:
                 * #{ AP, mesh point } <= 8,
                   total <= 8, #channels <= 1
        HT Capability overrides:
                 * MCS: ff ff ff ff ff ff ff ff ff ff
                 * maximum A-MSDU length
                 * supported channel width
                 * short GI for 40 MHz
                 * max A-MPDU length exponent
                 * min MPDU start spacing
        Device supports TX status socket option.
        Device supports HT-IBSS.
        Device supports SAE with AUTHENTICATE command
        Device supports low priority scan.
        Device supports scan flush.
        Device supports AP scan.
        Device supports per-vif TX power setting
        Driver supports a userspace MPM
        Device supports configuring vdev MAC-addr on create.

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.

[root@linux ~]# iw wlan0 scan
BSS 3a:2c:63:21:22:da(on wlan0)
        TSF: 698338406485 usec (8d, 01:58:58)
        freq: 5500
        beacon interval: 100 TUs
        capability: ESS Privacy SpectrumMgmt RadioMeasure (0x1111)
        signal: -84.00 dBm
        last seen: 4980 ms ago
        Information elements from Probe Response frame:
        SSID: UC8742A8742
        Supported rates: 6.0* 9.0 12.0* 18.0 24.0* 36.0 48.0 54.0
        TIM: DTIM Count 1 DTIM Period 3 Bitmap Control 0x0 Bitmap[0] 0x0
        Country: DE     Environment: Indoor/Outdoor
                Channels [36 - 36] @ 23 dBm
                Channels [40 - 40] @ 23 dBm
                Channels [44 - 44] @ 23 dBm
                Channels [48 - 48] @ 23 dBm
                Channels [52 - 52] @ 23 dBm
                Channels [56 - 56] @ 23 dBm
                Channels [60 - 60] @ 23 dBm
                Channels [64 - 64] @ 23 dBm
                Channels [100 - 100] @ 30 dBm
                Channels [104 - 104] @ 30 dBm
                Channels [108 - 108] @ 30 dBm
                Channels [112 - 112] @ 30 dBm
                Channels [116 - 116] @ 30 dBm
                Channels [132 - 132] @ 30 dBm
                Channels [136 - 136] @ 30 dBm
                Channels [140 - 140] @ 30 dBm
        Power constraint: 0 dB
        TPC report: TX power: 17 dBm
        RSN:     * Version: 1
                 * Group cipher: CCMP
                 * Pairwise ciphers: CCMP
                 * Authentication suites: PSK
                 * Capabilities: 16-PTKSA-RC 1-GTKSA-RC MFP-capable (0x008c)
        BSS Load:
                 * station count: 0
                 * channel utilisation: 1/255
                 * available admission capacity: 0 [*32us]
        HT capabilities:
                Capabilities: 0x9e3
                        RX LDPC
                        HT20/HT40
                        Static SM Power Save
                        RX HT20 SGI
                        RX HT40 SGI
                        TX STBC
                        RX STBC 1-stream
                        Max AMSDU length: 7935 bytes
                        No DSSS/CCK HT40
                Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
                Minimum RX AMPDU time spacing: 4 usec (0x05)
                HT RX MCS rate indexes supported: 0-23
                HT TX MCS rate indexes are undefined
        HT operation:
                 * primary channel: 100
                 * secondary channel offset: above
                 * STA channel width: any
                 * RIFS: 1
                 * HT protection: no
                 * non-GF present: 0
                 * OBSS non-GF present: 0
                 * dual beacon: 0
                 * dual CTS protection: 0
                 * STBC beacon: 0
                 * L-SIG TXOP Prot: 0
                 * PCO active: 0
                 * PCO phase: 0
        Extended capabilities: Extended Channel Switching, BSS Transition, 6
        VHT capabilities:
                VHT Capabilities (0x0f8259b2):
                        Max MPDU length: 11454
                        Supported Channel Width: neither 160 nor 80+80
                        RX LDPC
                        short GI (80 MHz)
                        TX STBC
                        SU Beamformer
                        SU Beamformee
                VHT RX MCS set:
                        1 streams: MCS 0-9
                        2 streams: not supported
                        3 streams: not supported
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT RX highest supported: 0 Mbps
                VHT TX MCS set:
                        1 streams: MCS 0-9
                        2 streams: MCS 0-9
                        3 streams: MCS 0-9
                        4 streams: not supported
                        5 streams: not supported
                        6 streams: not supported
                        7 streams: not supported
                        8 streams: not supported
                VHT TX highest supported: 0 Mbps
        VHT operation:
                 * channel width: 1 (80 MHz)
                 * center freq segment 1: 106
                 * center freq segment 2: 0
                 * VHT basic MCS set: 0x0000
        WPS:     * Version: 1.0
                 * Wi-Fi Protected Setup State: 2 (Configured)
                 * UUID: da6c7eec-2e29-381a-efe3-635a4cbfc8b4
                 * RF Bands: 0x3
                 * Unknown TLV (0x1049, 6 bytes): 00 37 2a 00 01 20
        WMM:     * Parameter version 1
                 * u-APSD
                 * BE: CW 15-1023, AIFSN 3
                 * BK: CW 15-1023, AIFSN 7
                 * VI: CW 7-15, AIFSN 2, TXOP 3008 usec
                 * VO: CW 3-7, AIFSN 2, TXOP 1504 usec

[root@linux ~]# iwlist wlan0 scanning
wlan0     Scan completed :
          Cell 01 - Address: 3a:2c:63:21:22:da
                    Channel:100
                    Frequency:5.5 GHz (Channel 100)
                    Quality=26/70  Signal level=-84 dBm
                    Encryption key:on
                    ESSID:"UC8742A8742"
                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 18 Mb/s; 24 Mb/s
                              36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=000000a29e7b2047
                    Extra: Last beacon: 5060ms ago
                    IE: Unknown: 000C555043353031353232343737
                    IE: Unknown: 01088C129824B048606C
                    IE: Unknown: 050400030000
                    IE: Unknown: 07344445202401172801172C01173001173401173801173C011740011764011E68011E6C011E70011E74011E84011E88011E8C011E00
                    IE: Unknown: 200100
                    IE: Unknown: 23021100
                    IE: IEEE 802.11i/WPA2 Version 1
                        Group Cipher : CCMP
                        Pairwise Ciphers (1) : CCMP
                        Authentication Suites (1) : PSK
                    IE: Unknown: 0B050000010000
                    IE: Unknown: 2D1AE30917FFFFFF0000000000000000000000000000000000000000
                    IE: Unknown: 3D16640D0000000000000000000000000000000000000000
                    IE: Unknown: 7F080400080000000040
                    IE: Unknown: BF0CB259820FFEFF0000EAFF0000
                    IE: Unknown: C005016A000000
                    IE: Unknown: C30402020202
                    IE: Unknown: DD310050F204104A000110104400010210470010D96C7EFC2F8938F1EFBD6E5148BFA812103C0001031049000600372A000120
                    IE: Unknown: DD090010180200001C0000
                    IE: Unknown: DD180050F2020101880003A4000027A4000042435E0062322F00
                    IE: Unknown: 46057208010000

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

[root@linux ~]# iw phy phy0 interface add mon0 type monitor

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.

[root@linux ~]# airmon-ng start wlan0
No interfering processes found
PHY     Interface       Driver          Chipset

phy0    wlan0           rt2800usb       Ralink Technology, Corp. RT5572
                (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
                (mac80211 station mode vif disabled for [phy0]wlan0)

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:

[root@linux ~]# iwconfig
wlan0     IEEE 802.11abgn  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated   Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off

lo        no wireless extensions.

mon0      IEEE 802.11abgn  Mode:Monitor  Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

eth0      no wireless extensions.

Při použití airmon-ng:

[root@linux ~]# iwconfig
wlan0mon  IEEE 802.11abgn  Mode:Monitor  Frequency:2.457 GHz  Tx-Power=20 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:off

lo        no wireless extensions.

eth0      no wireless extensions.

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.

[root@linux ~]# airodump-ng --uptime --wps mon0
[root@linux ~]# horst -i mon0

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:

[root@linux ~]# iw mon0 del
[root@linux ~]# airmon-ng stop wlan0mon
PHY     Interface       Driver          Chipset

phy0    wlan0mon        rt2800usb       Ralink Technology, Corp. RT5572
                (mac80211 station mode vif enabled on [phy0]wlan0)
                (mac80211 monitor mode vif disabled for [phy0]wlan0mon)

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:

[root@linux ~]# iw dev wlan0 link
Connected to cc:4s:4b:17:87:3c (on wlan0)
SSID: NejakeSSID
freq: 2437
RX: 63733795 bytes (74228 packets)
TX: 26157493 bytes (42056 packets)
signal: -74 dBm
tx bitrate: 28.9 MBit/s MCS 3 short GI

bss flags:
dtim period:    0
beacon int:     100
[root@linux ~]# iw dev wlan0 station dump
Station cc:4s:4b:17:87:3c (on wlan0)
        inactive time:  30 ms
        rx bytes:       66379951
        rx packets:     77549
        tx bytes:       26463935
        tx packets:     43048
        tx retries:     27059
        tx failed:      69
        signal:         -75 [-73, -79] dBm
        signal avg:     -75 [-74, -78] dBm
        tx bitrate:     14.4 MBit/s MCS 1 short GI
        rx bitrate:     27.0 MBit/s MCS 1 40MHz
        authorized:     yes
        authenticated:  yes
        preamble:       long
        WMM/WME:        yes
        MFP:            no
        TDLS peer:      no

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

[root@linux ~]# iw dev
phy#0
        Interface wlan0
                ifindex 8
                wdev 0x2
                addr cc:4s:4b:17:87:3c
                type AP
                channel 2 (2417 MHz) HT40+
[root@linux ~]# iw dev wlan0 station dump
Station 83:31:ab:1c:74:f4 (on wlan0)
        inactive time:  0 ms
        rx bytes:       12631177
        rx packets:     36457
        tx bytes:       52048153
        tx packets:     46890
        tx retries:     2126
        tx failed:      2
        signal:         1 [-2, -2] dBm
        signal avg:     -32 [47, -1] dBm
        tx bitrate:     144.4 MBit/s MCS 15 short GI
        rx bitrate:     115.6 MBit/s MCS 13 short GI
        authorized:     yes
        authenticated:  yes
        preamble:       long
        WMM/WME:        yes
        MFP:            no
        TDLS peer:      no
Station c8:42:ad:c5:b0:a0 (on wlan0)
        inactive time:  20 ms
        rx bytes:       25360039
        rx packets:     139817
        tx bytes:       45154358
        tx packets:     94082
        tx retries:     7136
        tx failed:      56
        signal:         -47 [-60, -55, -48] dBm
        signal avg:     -46 [-55, -55, -47] dBm
        tx bitrate:     43.3 MBit/s MCS 4 short GI
        rx bitrate:     39.0 MBit/s MCS 4
        authorized:     yes
        authenticated:  yes
        preamble:       long
        WMM/WME:        yes
        MFP:            no
        TDLS peer:      no

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