Для проведения мероприятий по розыску Wi-Fi пользователя по информации по внешним ресурсам, которые он посещал, WNAM использует работу со статистикой NetFlow, собираемой с маршрутизатора/сервера доступа.
Информации о факте подключения абонента к беспроводной сети, собираемой от сервера доступа и хранящейся в БД в коллекции "Сессии" недостаточно для розыска, так как все пользователи одновременно используют один общий публичный адрес, через трансляцию адресов (NAT). Таким образом, если владельцу площадки придет запрос вида "кто в период с ... по ... обращался на сайт vk.com" максимум что можно сделать, это выгрузить данных обо всех сессиях всех абонентов за заданный период.
Некоторые сервера доступа (Mikrotik, Cisco-роутер) способны собирать и отправлять в сторону внешней системы (коллектора) данные обо всех потоках трафика, включая IP-адреса посещенных ресурсов. Собирая такие данные, можно с большой точностью сопоставить профиль пользователя посещенному им ресурсу, таким образом успешно решив задачу розыска пользователя беспроводной сети, точно попадающего под критерии.
Внимание! NetFlow не собирает и не анализирует ссылки (URL) помещенных ресурсов. Более того, повсеместное использование SSL (шифрованного доступа к сайтам) делает принципиально неразрешимой мониторинг посещенных ссылок (если только вы не применяете дорогостоящие DPI системы).
Начиная с версии 1.2 и до версии 1.5.2222 WNAM использовал собственный (встроенный) коллектор NetFlow данных, с хранением этих данных в базе MongoDB и привязкой к сессиям и профилям пользователей в реальном времени. Данный подход мел следующие преимущества:
и одновременно недостатки:
Для предотвращения проблем с производительностью начиная с версии 1.5.2222 WNAM применят другой способ работы с данными NetFlow, при котором:
Предлагаемый метод более не требует хранения данных NetFlow в БД в коллекции flows, таким образом рост базы не будет таким быстрым. Также у администратора появляется возможность вручную/автоматизированно удалять устаревшие данных NetFlow прямо с файловой системы, делая освободившееся место немедленно доступным. Резервирование собранных данных также должно выполняться дополнительным средством.
Ниже описан порядок действий, необходимых для включения сбора и обработки NetFlow.
По умолчанию WNAM до версии 1.5.2222 принимал Netflow UDP пакеты на порт 20002. Встроенный коллектор данных можно отключить командой:
is_netflow_internal=false
в конфигурационном файле /home/wnam/wnam.properties
Установите пакет nfdump:
apt-get install nfdump
Отредактируйте конфигурационный файл, чтобы разрешить автозапуск. Там же можно отредактировать другие параметры, например UDP порт для приёма пакетов, путь до каталога с файлами и т.п.
vi /etc/default/nfdump
nfcapd_start=yes
Запустите сервис:
service nfdump restart
Проверьте статус работы сервиса:
service nfdump status
Пример вывода:
nfdump.service - netflow capture daemon
Loaded: loaded (/lib/systemd/system/nfdump.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Fri 2019-08-09 13:51:13 MSK; 3s ago
Process: 15298 ExecStart=/usr/bin/nfcapd -D -l /var/cache/nfdump -P /var/run/nfcapd.pid -p 2055 (code=exited, status=0/SUCCESS)
Main PID: 15298 (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/nfdump.service
└─15300 /usr/bin/nfcapd -D -l /var/cache/nfdump -P /var/run/nfcapd.pid -p 2055
авг 09 13:51:13 debian64 systemd[1]: Started netflow capture daemon.
авг 09 13:51:13 debian64 nfcapd[15300]: Startup.
авг 09 13:51:13 debian64 nfcapd[15300]: Init IPFIX: Max number of IPFIX tags: 62
По умолчанию все создаваемые файлы с netflow-данными будут помещаться в /var/cache/nfdump. Посмотрите, что там.
root@debian64:~# ls -lat /var/cache/nfdump/ | head -n 20
drwxr-xr-x 2 root root 1523712 авг 9 13:51 .
-rw-r--r-- 1 root root 276 авг 9 13:51 nfcapd.current.15298
-rw-r--r-- 1 root root 9948 авг 9 13:51 nfcapd.201908091347
-rw-r--r-- 1 root root 18740 авг 9 13:47 nfcapd.201908091342
-rw-r--r-- 1 root root 14260 авг 9 13:42 nfcapd.201908091337
-rw-r--r-- 1 root root 18236 авг 9 13:37 nfcapd.201908091332
-rw-r--r-- 1 root root 15492 авг 9 13:32 nfcapd.201908091327
Также возможно вам придется отредактировать файл /home/wnam/wnam.properties (с последующим рестартом java-процесса wnam), чтобы сервер знал, где находятся файлы.
Применяется два параметра:
nfdump_path= путь до утилиты nfdump, значение по умолчанию /usr/bin/nfdump
nfdump_db= путь до каталога с файлами, значение по умолчанию /var/cache/nfdump
Внимание! Рекомендуется создавать отдельный дисковый раздел для хранения данных NetFlow, и прогнозировать его размер. Для средней инсталляции WNAM рекомендуется объём порядка 1 Тб.
Ниже приведена конфигурация маршрутизатора Mikrotik. Внимание! Сбор данных необходимо включить на интерфейсе, на котором работает хотспот, чтобы в собираемую информацию попадали внутренние (до NAT) IP адреса абонентских устройств.
Параметры активного и неактивного тайм-аута потоков подберите самостоятельно, здесь присутствует баланс "точность - объём данных".
Укажите адрес сервера WNAM и порт (для nfcapd по умолчанию 2055).
Для маршрутизаторов других типов обратитесь к документации их производителей.
Рекомендуется ограничить список IP-адресов, откуда принимаются данные NetFlow, правилами iptables на вашем сервере WNAM.
Внимание! Настоятельно рекомендуется применять не пересекающиеся IP адреса между площадками, иначе в отчёте могут появится недостоверные данные (будет невозможно отделить абонентов между площадками по одним лишь данным NetFlow).
В административном интерфейсе WNAM пользователям с ролями Администратор, Наблюдатель, Оператор доступно создание отчетов на основе собираемых данных.
Отчёты вызываются из меню "Отчёты - Розыск пользователя - По базе данных NetFlow".
В форме запроса необходимо указать диапазон времени с точностью до минуты (обязательно), IP адрес или имя ресурса, который посещал пользователь Wi-Fi и относительно которого ведется розыск (обязательно), а также фильтр по площадке (не обязательно).
При нажатии на кнопку "Сформировать" на сервере запускается процесс поиска по файлам данных (вызовом утилиты nfdump), выгрузка данных в WNAM и их обработка. В результате формируется отчёт такого вида:
Если в запросе в поле "Укажите IP адрес посещенного ресурса или ссылку на него (URL)" задан только IP адрес, поиск будет вестись только по потокам данных с этим адресом. Если указана ссылка или DNS-имя, производится преобразование имени в IP адрес (или набор IP адресов) при помощи системной службы DNS сервера WNAM, и поиск по всем потокам с этими адресами.
Внимание! Поиск ведется только по завершенным сессиям пользователей.
В результате выдается список потоков, список совпавших сессий, и список абонентов (пользователей Wi-Fi). В строку в "Списке пользователей" можно кликнуть - откроется всплывающее окно с полной записью о пользователе.
Лимит записей в отчете по потокам - 1000 штук. Если система выдаёт значительное число записей, постарайтесь сделать временные рамки запроса меньше.
Полученный отчёт также можно выгрузить в файл (имя файла: rep_search_nf.csv) для последующего анализа (например в Excel):
Аналогичным способом можно получить сведения о потоках трафика для заданной сессии, нажав на соответствующую кнопку в окне записи о сессии из общего меню "Сессии".
Вы обязаны внимательно следить за:
Для этой цели рекомендуем настроить мониторинг сервера WNAM средствами Zabbix.
Вы можете настроить автоматическое удаление старых данных, создав задание для cron с командой такого вида:
find /var/cache/nfdump -type f -ctime +90 -exec rm {} \;
и запуском её каждые сутки в часы наименьшей нагрузки (ночью).
Резервное копирование файлов базы NetFlow рекомендуется выполнять на другой сервер утилитой rsync командой такого вида:
rsync --delete -acvz -e ssh /var/cache/nfdump backup@backup-wnam.provider.ru:nfdump
Оперативная информация о состоянии сборщика NetFlow (nfcapd) и хранилища данных доступна из WNAM в меню "Конфигурация - Работа с базой данных - Netflow":