Как шпионить за Wi-Fi сетями для пользы дела — полный гайд (легально!). AP monitor.. AP monitor. OPENWRT.. AP monitor. OPENWRT. wi-fi.. AP monitor. OPENWRT. wi-fi. Беспроводные технологии.. AP monitor. OPENWRT. wi-fi. Беспроводные технологии. геофенсинг.. AP monitor. OPENWRT. wi-fi. Беспроводные технологии. геофенсинг. Информационная безопасность.. AP monitor. OPENWRT. wi-fi. Беспроводные технологии. геофенсинг. Информационная безопасность. Сетевые технологии.. AP monitor. OPENWRT. wi-fi. Беспроводные технологии. геофенсинг. Информационная безопасность. Сетевые технологии. Системное администрирование.

Меня зовут Алексей, и я продолжаю копаться в беспроводных технологиях. В прошлый раз мы настраивали Wi-Fi в OpenWrt для максимальной стабильности и покрытия. Сегодня я хочу поговорить о другой, не менее увлекательной теме – мониторинге беспроводного эфира с помощью легедарного роутера TP-Link MR3020.Многие скажут: «Зачем мне это? У меня и так всё работает». А я отвечу: возможности, которые открываются, могут удивить. Давайте сразу к делу.

Зачем вообще мониторить эфир?

Сценариев масса, и они далеко не всегда связаны с безопасностью (хотя и там тоже).

1. Геофенсинг и аналитика посещаемости

Представьте, что вы владелец небольшого кафе, магазина или коворкинга. Вам нужно понять, сколько людей заходит в течение дня, в какие часы пик, как долго они задерживаются. Установив роутер с OpenWrt в режиме монитора у входа, вы можете пассивно подсчитывать уникальные устройства (смартфоны, ноутбуки) в радиусе действия. Это даёт понимание реального трафика посетителей — без камер, просто по факту присутствия Wi-Fi устройств. Данные можно агрегировать в CSV и строить графики – идеально для маркетинга и планирования персонала.

2. Выбор занятого, но наименее используемого канала для своей точки доступа

Самый частый кейс: вы живёте в многоквартирном доме, эфир забит соседскими роутерами, скорость проседает, пакеты теряются. Запустив мониторинг на несколько часов, вы получите объективную картину загруженности каналов и сможете выбрать тот, где меньше всего конкурентов ведут вещание. То есть простые программки для мониторинга wi-fi умеют показывать занятые каналы но вот понять насколько активно используются занятые каналы они не умеют.

3. Диагностика проблем своей сети

Упала скорость? Пропадает связь? Мониторинг покажет, не забил ли кто-то из соседей канал, не появились ли новые мощные точки доступа, нет ли скрытых помех. Вы увидите уровень сигнала, количество ретрансляций, CTS-кадры – всё, что нужно для настоящего инженерного анализа.

4. Маркетинговый Wi-Fi рада – было раньше но сейчас не так

Раньше (лет 5–7 назад) был популярен метод идентификации посетителей по MAC-адресу для показа целевой рекламы: человек заходил в торговый центр, его телефон «светился» в эфире, система запоминала MAC и потом могла показывать ему рекламу в соцсетях. Но сейчас смартфоны (iOS и Android) используют рандомизацию MAC-адресов — при каждом сканировании сетей телефон подставляется с разным виртуальным MAC. Поэтому надёжно идентифицировать конкретное устройство по MAC стало почти невозможно. Однако для приблизительной оценки потока (сколько уникальных клиентов в единицу времени) рандомизация не страшна — мы считаем не конкретного человека, а количество активных устройств, и погрешность приемлема.

Что будем использовать

Я буду использовать старенький но достаточно удачный роутер TP-Link MR3020 Да он имеет только одно радио 2.4 но зато его можно использовать в связке с повербанком и носить с собой.

  • OpenWrt

  • USB-флешка – её можно смонтировать и сохранять на ней логи. Я же заморочился и перенес файловую систему на флешку. Получив таким образом и дополнительное место для установки пакетов.

  • Немного терпения и прямые руки.

Весь роутер будет работать как пассивный датчик – он ничего не передаёт, только слушает. По сути это то не точка доступа, а радио-сниффер.

Как шпионить за Wi-Fi сетями для пользы дела — полный гайд (легально!) - 1

Шаг 1. Настройка /etc/config/wireless для режима монитора

Для начала убедимся, что Wi-Fi интерфейс переведён в режим монитора. Я не буду описывать установку OpenWrt – это отдельная тема. Предположим, у вас уже есть работающая система.

Открываем конфиг:

vi /etc/config/wireless

Скорее всего, у вас есть секция типа wifi-device (например, radio0) и одна или несколько wifi-iface. Нам нужно создать отдельный интерфейс в режиме monitor. Не трогайте существующие, если они нужны для раздачи интернета – просто добавьте новую секцию (Иногда нужно оставить только один wifi-iface. Но тогда позаботьтесь чтобы к роутеру можно было подключиться через LAN-разъем):

config wifi-iface
    option device 'radio0'
    option mode 'monitor'
    option ifname 'mon0'
    option hidden '1'

Где:

  • device – имя вашего радио.

  • mode 'monitor' – включает режим монитора.

  • ifname 'mon0' – имя создаваемого интерфейса (можно любое).

  • hidden '1' – просто скрывает его от лишних глаз.

После сохранения применяем:

wifi reload

И проверяем, что интерфейс появился:

ifconfig mon0

Если увидели что-то типа следующего, значит все в порядке:

Как шпионить за Wi-Fi сетями для пользы дела — полный гайд (легально!) - 2

Шаг 2. Установка airodump-ng – классика жанра

airodump-ng это часть пакета aircrack-ng, который есть в репозиториях OpenWrt. Он не только захватывает пакеты, но и в реальном времени отображает таблицу сетей и клиентов.

opkg update
opkg install aircrack-ng

Запуск и базовые опции

Самый простой запуск:

airodump-ng mon0

Вы увидите две таблицы:

Как шпионить за Wi-Fi сетями для пользы дела — полный гайд (легально!) - 3
  • Верхняя – все обнаруженные точки доступа (BSSID, канал, уровень сигнала, шифрование, SSID).

  • Нижняя – клиенты (их MAC, ассоциированная точка, мощность).

Для сохранения в файл используем ключ -w:

airodump-ng -w /mnt/usb/capture --output-format csv mon0

Форматы вывода airodump-ng

Утилита умеет сохранять данные в разных форматах. Управляется флагом --output-format (или -o). Рассмотрим самые полезные.

CSV (самый удобный для аналитики)

Создаёт файл .csv, который можно открыть в Excel, Google Sheets или импортировать в базу данных. Структура: сначала строки с точками доступазатем через пустую строку — строки с клиентами. Именно этот формат я использую для сбора статистики посещаемости.

PCAP (для глубокого анализа)

Файл .cap или .pcap — это «сырые» 802.11 кадры с radiotap-заголовками. Можно открыть в Wireshark и анализировать каждый пакет. Занимает много места, но даёт максимум информации.

IVS (только для WEP)

Файл .ivs — сохраняет только векторы инициализации. Для современных WPA/WPA2 сетей бесполезен, оставьте для ностальгии.

Мой совет: для долгосрочного сбора статистики используйте только csv. Он лёгкий, структурированный и содержит всё необходимое. Для точечной диагностики проблем — включайте pcap на короткое время.

Иногда можно собирать pcap данные используя старый добры tcpdump. Он делает ровно одну вещь, но делает её идеально – захватывает пакеты и пишет их в файл. Никакого лишнего анализа, минимум накладных расходов. Процессор почти не грузит, память не ест.

Установка

opkg install tcpdump

Если хотите минимальную версию (чуть меньше размером), есть пакет tcpdump-mini, но он конфликтует с полным. Я расширил файловую систему роутера за сет флешки поэтому могу себе позволить поставить полный.

Захват

tcpdump -i mon0 -s 0 -W 10 -G 3600 -C 100 -w /mnt/usb/capture_%Y%m%d_%H%M%S.pcap
  • -i mon0 – интерфейс.

  • -s 0 – захватывать пакет целиком.

  • -w – запись в файл.

  • -W 10 – хранить не более 10 файлов (циклическая запись).

  • -G 3600 – каждые 3600 секунд (1 час) создавать новый файл.

  • -C 100 – ограничить размер файла 100 МБ.

  • %Y%m%d_%H%M%S – временная метка в имени файла.

Такой командой можно мониторить неделями, не боясь переполнить флешку. Старые файлы будут перезаписываться.

Что внутри pcap-файла?

Откроем дамп в текстовом виде (или через Wireshark). Или предварительно можно сконвертировать его в txt с помощью того же tcpdump.

Как шпионить за Wi-Fi сетями для пользы дела — полный гайд (легально!) - 4

Типы кадров (краткий ликбез)

  • Beacon – маяк точки доступа. Содержит SSID, поддерживаемые скорости, канал, шифрование. Периодичность ~100 мс. По количеству Beacon можно оценить, сколько AP вещают на канале.

  • Probe Request / Probe Response – клиент ищет сеть; AP отвечает. Используется для обнаружения скрытых SSID.

  • Data – пользовательские данные. Зашифрованы (IV, KeyID). Вы не прочитаете содержимое, но увидите факт передачи.

  • Acknowledgment (ACK) – подтверждение приёма кадра. Каждый Data кадр (кроме широковещательных) порождает ACK. Много ACK → активный обмен.

  • Clear-To-Send (CTS) – разрешение на передачу (часть RTS/CTS). Если в эфире много CTS, значит, есть коллизии или скрытые станции.

  • Block Acknowledgment (BA) – подтверждение для агрегированных кадров (802.11n/ac). Признак высокоскоростного режима.

Как практически использовать эти данные?

  1. Оценка загруженности канала
    Подсчитайте количество Data-кадров за минуту на определённой частоте. Чем их больше, тем выше нагрузка. Сравните с количеством ACK – они должны быть примерно равны (если не считать повторы).

  2. Выявление помех
    Если на канале много CTS и BA, но мало Data, значит, эфир перегружен или есть скрытые станции. Роутеры вынуждены резервировать время, снижая полезную пропускную способность.

  3. Обнаружение скрытых сетей
    В столбце Probed ESSIDs у клиентов могут быть имена сетей, которых нет в верхней таблице. Это скрытые сети, которые не транслируют Beacon, но клиенты их активно ищут. Кстати по этой опции можно чуть точнее идентифицировать клиентов, даже с учетом рандомизации маков.

  4. Мониторинг «здоровья» своей точки доступа
    Если вы видите много повторных передач (retries) или необычно много CTS от вашего BSSID, возможно, у вас проблемы с антенной или сильные помехи.

Автозпуск

Для того чтобы мониторинг запускался автоматически сразу после загрузки роутера, можно создать соответствующую задачу в cron или добавить скрипт запуска в /etc/rc.local

#!/bin/sh

# Даем системе время на инициализацию (60 секунд должно быть достаточно)
sleep 60

# Папка, куда смонтирована флешка, у меня вся фйловая система лежит 
# на флешке поэтому я просто пишу /root 
MOUNT_POINT="/root"
# Базовое имя для файлов
OUTPUT_FILE="${MOUNT_POINT}/wifi_24_capture"

# Убиваем старые процессы airodump-ng (после загрузки роутера их быть не должно)
# но вдург вы решите запустить скрипт руками
killall airodump-ng
# Запускаем airodump-ng в фоновом режиме с записью в CSV-файл
airodump-ng mon1 -w "$OUTPUT_FILE" --output-format csv --write-interval 60

Главный нюанс: не забудьте добавить sleep 60 перед стартом мониторинга, чтобы успели подняться все интерфейсы.

P.S. У меня есть пара кейсов по использованию данной штуки для подсчёта аналитики проходимости и эффективности торговой точки (сколько человек прошло мимо, сколько вошло внутрь, как долго находились и т.д.) и ещё один – для детального анализа трафика. Если это кому-то интересно, напишите мне в комментариях, и я подготовлю статью на эту тему.

Автор: GrekNirvana

Источник