Для проведения мероприятий по розыску пользователя сети Wi-Fi по информации по внешним ресурсам, которые он посещал, система WNAM использует работу со статистикой NetFlow, собираемой с маршрутизатора/сервера доступа.

Информации о факте подключения абонента к беспроводной сети, собираемой от сервера доступа и хранящейся в БД в коллекции "Сессии", недостаточно для розыска, так как все пользователи одновременно используют один общий публичный адрес через трансляцию адресов (NAT). Таким образом, если владельцу площадки придет запрос вида "кто в период с ... по ... обращался на сайт vk.com" максимум, что можно сделать, это выгрузить данных обо всех сессиях всех абонентов за заданный период. 

Некоторые сервера доступа (Mikrotik, Cisco-роутер) способны собирать и отправлять в сторону внешней системы (коллектора) данные обо всех потоках трафика, включая IP-адреса посещенных ресурсов. Собирая такие данные, можно с большой точностью сопоставить профиль пользователя посещенному им ресурсу, таким образом, успешно решив задачу розыска пользователя беспроводной сети точно попадающего под критерии.

NetFlow не собирает и не анализирует ссылки (URL) помещенных ресурсов. Более того, повсеместное использование SSL (шифрованного доступа к сайтам) делает неразрешимой мониторинг посещенных ссылок (если только не применяются дорогостоящие DPI системы). 

Начиная с версии 1.2 и до версии 1.5.2222 система WNAM использовала собственный (встроенный) коллектор данных NetFlow с хранением этих данных в БД MongoDB с привязкой к сессиям и профилям пользователей в реальном времени. Данный подход мел следующие преимущества:

  • нет необходимости устанавливать дополнительное ПО-коллектор трафика NetFlow;
  • данные хранятся в общей БД, а также можно использовать те же средства резервирования данных;
  • собираемые данные привязываются к сессии и профилю пользователя.

и одновременно недостатки:

  • объём БД растёт очень быстро, а удаление данных из БД не уменьшает её размера на диске (свойство работы MongoDB);
  • непрерывная привязка данных NetFlow к сессиям создаёт серьезную нагрузку на сервер БД в поиске текущих сессий.

Для предотвращения проблем с производительностью начиная с версии 1.5.2222 система WNAM применят другой способ работы с данными NetFlow, при котором:

  • для сбора данных NetFlow требуется внешний коллектор-утилита nfcapd, хранящая собранные данные в файле на файловой системе сервера;
  • для анализа данных система WNAM при запуске соответствующего отчёта по розыску запускает утилиту nfcap и производит анализ принятых результатов по выполненной выборке по данным из файлов.

Предлагаемый метод более не требует хранения данных NetFlow в БД в коллекции flows, таким образом, рост БД не будет таким быстрым. Также у администратора появляется возможность вручную/автоматизированно удалять устаревшие данных NetFlow прямо с файловой системы, делая освободившееся место немедленно доступным. Резервирование собранных данных также должно выполняться дополнительным средством. Ниже описан порядок действий, необходимых для включения сбора и обработки NetFlow.

Отключение старого сервиса

По умолчанию система WNAM до версии 1.5.2222 принимала Netflow UDP-пакеты на порт 20002. Встроенный коллектор данных можно отключить в конфигурационном файле /home/wnam/wnam.properties командой:

is_netflow_internal=false

Установка и настройка ПО

Необходимо установить пакет 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). Подробности по данному типу отчета можно получить в соответствующем разделе (розыск пользователя).

Аналогичным способом можно получить сведения о потоках трафика для заданной сессии, нажав на соответствующую кнопку в окне записи о сессии из общего меню "Сессии".

Обслуживание системы

При обслуживании системы необходимо внимательно следить за:

  • нагрузкой на процессор сервера;
  • свободным дисковым местом на разделе, в котором хранятся данные NetFlow.

Для этой цели рекомендуем настроить мониторинг сервера системы 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".

  • No labels