1 Введение

1.1 Цели

1.2 Допущение

Ваш роутер шлет записи netflow на одну из ваших машин, и на этой машине уже запущен NfSen для сбора данных. Если вы работаете в парах, то вы должны указать в броузере ту машину, которая работает коллектором.

http://pcX.ws.nsrc.org/nfsen/nfsen.php

2 Сгенерируем трафик

В начале нам нужно создать кое-какой трафик, проходящий через ваш роутер. Залогиньтесь на любую из ваших машин (это не обязательно машина, на которой работает NfSen) и выполните следующие команды:

$ cd /tmp
$ wget http://noc.ws.nsrc.org/downloads/BigFile
$ rm BigFile

Пройдет около 5 минут прежде чем трафик, созданный этими командами, появится как пик на графике в NfSen.

3 Изучение записей потоков

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

3.1 Пойдите на страницу детальной информации

Главная страница NfSen показывает матрицу графиков: потоки в секунду слева, пакеты в секунду в середине, биты в секунду справа. Нажмите на график справа вверху (биты в секунду, график за день) для того чтобы перейти на страницу детальной информации.

3.2 Выберите временное окно

Поменяйте "Single Timeslot" на "Time Window":

Выбор временного окна
После этого, вертикальная стрелка выбора точки времени разделится надвое.

Разделенная стрелка выбора
Потяните левую половинку стрелки налево, а правую направо. Таким образом вы можете выбрать интересующий вас период времени. Тогда вы должны увидеть, в таблице под графиком, статистическую сводку для выбранного периода времени:

Сводка

Сводка

3.3 Просмотр индивидуальных потоков

Выберите "List Flows", убедитесь, что ни один из флажков "Aggregate" не отмечен, и нажмите "process". Это покажет потоки в начале выбранного интервала времени.

Список потоков

Список потоков

Увеличьте предел с 20 потоков до 100 потоков. Обратите внимание, что большая часть трафика в сети состоит из большого количества очень маленьких потоков - например, запрос/ответ DNS создаст два потока, один от клиента к DNS серверу, и второй в обратном направлении.

Выбрав "bi-directional", вы скажете NfSen "схлопывать" потоки "туда" и "обратно" в одну строку:

Двунаправленные потоки

Двунаправленные потоки

Тем не менее, просмотр большого количества потоков в поисках интересного трафика довольно скучно. Перед тем как продолжить, очистите флажок "Bi-directional".

3.4 Потоки в/с одного хоста

Если нам известно, какой хост мы хотим исследовать, мы можем применить фильтр для показа только потоков, имеющих отношение к этому хосту. Для этого введите "host 10.10.X.Y" в поле для фильтра, и снова нажмите "process". (замените 10.10.X.Y на адрес одной из ваших машин)

Потоки в/с одного хоста

Потоки в/с одного хоста

Уже лучше, но нам все равно нужно просматривать слишком много небольших потоков для поиска чего-нибудь интересного. Нам нужно воспользоваться другим подходом.

4 Самые большие потоки

Следующим пунктом мы можем сказать NfSen сортировать потоки по количеству байт. Уберите фильтры поля для фильтров; выберите "Stat TopN", "Stat:" -> "Flow Records", "order by" -> "Bytes". Убедитесь, что все агреграторы по-прежнему не отмечены, и нажмите "process".

Найти наибольшие потоки

Найти наибольшие потоки

Вывод: наибольшие потоки

Вывод: наибольшие потоки

Это уже намного лучше, так как потоки с наибольшим количеством байт показываются в первую очередь. Однако, проблема остается - мы по-прежнему видим индивидуальные потоки. Возможна ситуация, при которой большое количество небольших потоков к одному хосту создадут большой трафик, а мы не будем видеть их вверху нашего списка.

5 Группировка приходящего трафик по адресу получателя

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

Для этого, "Stat:" -> "DST IP Address", "order by" -> "bytes".

Группировка потоков по приходящему IP адресу

Группировка потоков по приходящему IP адресу

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

У нас все еще осталась одна проблема - можете ли вы сказать, какая? Мы видим смесь входящих (адрес получателя в нашей сети) и исходящих (адрес получателся на интернете) потоков. Нам интересны только входящие потоки, поэтому задайте фильтр, который показывает только трафик в групповую сеть: dst net 10.10.X.0/24 (заменяя X на номер группы).

Потоки в локальную сеть, группированные по приходящему IP адресу

Потоки в локальную сеть, группированные по приходящему IP адресу

Вывод: Потоки в локальную сеть, группированные по приходящему IP адресу

Вывод: Потоки в локальную сеть, группированные по приходящему IP адресу

Наконец-то мы получили, что хотели. Первая запись покажет нам локальную машину, которая скачала больше всего данных в выбранный период времени.

5.1 Группировка исходящего трафика по IP адресу отправителя

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

6 Анализ трафика на единственную машину

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

Давайте начнем с просмотра самых больших потоков для этого хоста. Поменяйте филтр на dst host 10.10.X.Y (только что найденный IP адрес). Затем выберите "Stat:" -> "Flow Records", "order by" -> "bytes", и "process".

Наибольшие потоки на один хост

Наибольшие потоки на один хост

Вы должны увидеть входящие потоки для этой машины, начиная с самого большого. Как и раньше, мы видим только большие индивидуальные потоки, тогда как набор маленьких потоков может суммарно составлять больший трафик.

Поскольку мы рассматриваем только потоки к одному конкретному IP, мы можем сгруппировать эти записи по исходящему IP.

Потоки на один хост, сгруппированные по исходящему IP адресу

Потоки на один хост, сгруппированные по исходящему IP адресу

Вывод: Потоки на один хост, сгруппированные по исходящему IP адресу

Вывод: Потоки на один хост, сгруппированные по исходящему IP адресу

Теперь у нас есть одна строка для каждого адреса с которого наша машина скачивала данные, с суммарным количеством скачанных байт для каждого исходящего адреса, от большего к меньшему.

6.1 Информация об IP адресе

Нажав на IP адрес, мы получим информацию из обратного DNS и из whois.

Информация whois

Информация whois

7 Дополнительное управление: агрегирование потоков

NfSen предлагает и другие методы для получения сводок о потоках, используя флажки Aggregate. В этом примере мы снова рассмотрим трафик, приходящий в нашу сеть.

Когда вы отметите один или несколько флажков Aggregate, NfSen скомбинирует все потоки, которые имеют одинаковые значения выбранных атрибутов.

Для начала, установите фильтр в dst net 10.10.X.0/24 (X = ваша группа). Выберите "Stat TopN", "Stat:" -> "Flow Records", "order by" -> "bytes". Затем попробуйте следующие агрегаторы, не забывая нажимать "process" после каждого.

Как вы поменяете фильтр для того, чтобы смотреть на исходящий трафик, а не на входящий трафик?

Если у вас есть роутер с полной таблицей BGP, вы можете агрегировать записи потоков по номеру AS. Это поможет найти, с какими сетями вы обмениваетесь трафиком больше всего.