Лучшие бесплатные утилиты анализа сети. Анализ трафика в локальной сети


Анализ сетевого трафика с помощью утилиты NetworkMiner

Недавно, при обсуждении в одном чате вопроса: как из Wireshark вытащить файл, всплыла утилита NetworkMiner. Пообщавшись с коллегами и по гуглив в Интернете, я сделал вывод, что об этой утилите знает не так много народу. Так как утилита в разы упрощает жизнь исследователя/пентестера, то исправляю этот недостаток и расскажу сообществу о том, что же такое NetworkMiner.

NetworkMiner – утилита для перехвата и анализа сетевого траффика между хостами локальной сети, написанная под ОС Windows (но также работает в Linux, Mac OS X, FreeBSD).

NetworkMiner может быть использована в качестве пассивного сниффера сетевых пакетов, анализ которых позволит обнаружить фингерпринт операционных систем, сессий, хостов, а также открытые порты. NetworkMiner также позволяет анализировать PCAP файлы в автономном режиме и восстановить передаваемые файлы и сертификаты безопасности.

Официальная страница утилиты: http://www.netresec.com/?page=Networkminer

И так, приступим к рассмотрению.

Утилита доступна в двух редакциях: Free и Professional (стоимость 700 USD).

В редакции Free доступны следующие опции:

  • перехват траффика;
  • разбор PCAP файла;
  • прием PCAP файла по IP;
  • определение ОС.

В редакции Professional добавляются опции:

  • разбор PcapNG файла,
  • Определение протокола порта,
  • Экспорт данных в CSV / Excel,
  • Проверка DNS имен по сайту http://www.alexa.com/topsites,
  • Локализация по IP,
  • Поддержка командной строки.

В данной статье рассмотрим опцию разбор PCAP файла, полученного от Wireshark.

Но для начала установим NetworkMiner в Kali Linux.

  1. По умолчанию, пакеты Mono уже стоят в KaliLinux, но если они не установлены, то выполняем следующее действие:

sudo apt-get install libmono-winforms2.0-cil

  1. Далее скачиваем и устанавливаем NetworkMiner

wget sf.net/projects/networkminer/files/latest -O /tmp/nm.zipsudo unzip /tmp/nm.zip -d /opt/cd /opt/NetworkMiner*sudo chmod +x NetworkMiner.exesudo chmod -R go+w AsscodebledFiles/sudo chmod -R go+w Captures/

  1. Чтобы запустить NetworkMiner используем следующую команду:

mono NetworkMiner.exe

Далее запустим Wireshark, соберем траффик в нашей локальной сети и сохраним в файл PCAP.

Для информации. Пять минут перехвата траффика у себя в тестовой сети собрало более 30 000 различных пакетов.

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

Попробуем посмотреть какую информацию нам предоставит NetworkMiner.

  1. Открываем полученный PCAP в NetworkMiner. Понадобилось меньше минуты, чтобы проанализировать дамп траффика из более 30 000 пакетов.

  1. На вкладке Hosts приводится список всех хостов, участвующих в формирование траффика, с детальной информацией по каждому хосту:

  1. На вкладке Frames, трафик приводится в виде пакетов с информацией по каждому уровню модели OSI (Канальному, Сетевому и Транспортному).

  1. Следующая вкладка Credentials покажет перехваченные попытки авторизации в открытом виде. Вот так потратив меньше минуты можно из большого дампа трафика сразу получить логин и пароль на авторизацию. Я это делал на примере своего роутера.

  1. И еще одна вкладка, которая облегчает получение данных из трафика – это Files.

В нашем примере мне попался pdf файл, который можно сразу открыть и посмотреть.

Но больше всего я удивился, когда обнаружил в дампе трафика — txt файл, как оказалось от моего роутера DIR-620. Так вот этот роутер, при авторизации на нем, передает в текстовом виде все свои настройки и пароли, в том числе от WPA2.

В итоге, утилита оказалась довольно интересная и полезная.

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

defcon.ru

Лучшие бесплатные утилиты анализа сети

– Автор: Игорь (Администратор)

Типы программ анализа сети

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

Как правило, такие утилиты делят на три категории:

  • Анализатор пакетов. Позволяют перехватывать и просматривать все пакеты, которые проходят через сетевые карты на вашем компьютере.
  • Сканеры портов. Предназначены для исследования отдельных сетевых устройств в сети на предмет открытых портов.
  • Аппаратные сканеры. Исследуют сеть на предмет наличия различного сетевого оборудования.

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

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

 

Обзор бесплатных программ анализа сети

WireShark зарекомендовала себя как анализатор пакетов высокого класса. Она может перехватывать пакеты стандартных Ethernet, PPP и VPN интерфейсов. Например, вы можете его использовать для выявления людей, которые слишком сильно загружают ваш сервер.

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

 

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

 

Angry IP небольшая по размеру утилита, которая позволяет быстро просканировать диапазон IP-адресов. К сожалению, она предоставит вам меньше информации, чем Nmap. Тем не менее, утилита умеет анализировать порты и показывать ряд дополнительной информации по каждому адресу из диапазона. 

 

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

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

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

 

Руководство по быстрому выбору (ссылки на скачивание бесплатных программ для анализа сети)

WireShark
Nmap
Angry IP
  • Лучшие бесплатные программы трассировки маршрута
Добавить комментарий / отзыв

ida-freewares.ru

Wireshark — приручение акулы / Блог компании Pentestit / Хабрахабр

Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга. Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров. Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org. Установка в системе Windows тривиальна — next, next, next. Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

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

Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.

После чего и начнется процесс захвата, причем прилетевшие пакеты будут появляться в реальном времени. В процессе рассмотрения и изучения пакетов бывают ситуации, когда нужно вернуться предыдущему пакету. Для этого есть две кнопки (см скриншот).

А следующая за ними кнопка позволяет сделать быстрый переход к пакету, указав его номер. В случае если колонки перекрываются и наползают друг на друга, можно кликнуть по такой колонке правой кнопкой мыши и выбрать “Resize Column”. Произойдет автоматическая подгонка размеров под текущую ситуацию. И кроме того, есть кнопка “Resize all Columns”, которая приведет в порядок все колонки. Используя меню View – Time Display Format, можно, например, настроить, чтобы отсчет времени шел не с начала захвата, а с момента получения предыдущего пакета (Since Previous Captured Packet). Самое важное в каждой программе (Help – About Wireshark) покажет не только версию и список авторов, но и содержит закладку Folders, которая покажет пути размещения каталогов с конфигурациями. Изучая интерфейс, можно выбрать, например, пакет http, и увидеть, что HTTP инкапсулируется в TCP (транспортный уровень), TCP инкапсулируется в IP (сетевой уровень), а IP в свою очередь инкапсулируется в Ethernet (перед этим даже мелькает 802.1Q).

И на самом верху идет нечто вроде небольшого обзора собранной информации о кадре.

Про фильтры мы поговорим дальше, а на данном этапе, если нужно быстро отфильтровать лишние пакеты, достаточно сделать правый клик на пакете, выбрать меню Apply as Filter – Not selected и изменения сразу же вступят в силу. Если нужно еще что-то убрать, то в следующий раз выбирать “and not Selected”, и новое правило просто добавится к фильтру.

Довольно часто при работе с Wireshark возникает ошибка IP checksum offload – ошибка контрольной суммы заголовка IP пакета.

Современные сетевые карты насколько умные, что сами считают контрольную сумму, зачем это делать на уровне стека TCP/IP программно, если можно делать хардварно. А Wireshark натурально перехватывает пакеты, до того как они попадают в сеть. И до того как эта сумма была просчитана и была добавлена в заголовок пакета. Соответственно есть два пути решения этой проблемы — выключать функцию offload в настройках сетевой карты или в настройках сниффера указать, чтобы он не обращал внимание на это значение. Хардваные функции зачастую лучше софтварных, в основном из-за скорости обработки (в железе обычно выше) поэтому лучше изменить настройки самого сниффера. Для этого нужно зайти в настройки (Edit — Preferences), затем Protocols – IPv4 – и снять флаг с “Validate IPv4 checksum if possible”.

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

  • Локально на своем хосте;
  • Организовать зеркалирование трафика на коммутаторе;
  • Подключаться непосредственно в интересующие места;
  • или же отравление протокола ARP (еще более незаконно, чем пассивное прослушивание трафика)
Wireshark содержит два вида фильтров – захвата (Capture Filters) и отображения (Display Filters). Вначале рассмотрим Capture Filters. Как можно догадаться по названию, они служат для фильтрации еще на этапе захвата трафика. Но в таком случае, безусловно, можно безвозвратно потерять часть нужного трафика. Фильтр представляет собой выражение, состоящее из встроенных значений, которые при необходимости могут объединяться логическими функциями (and, or, not). Для того, чтобы его задействовать, нужно зайти в меню Сapture, затем Options, и в поле Capture Filter набрать, например, host 8.8.8.8 (или, например, net 192.168.0.0./24)

Так же, конечно, можно выбрать и заранее созданный фильтр (за это отвечает кнопка Capture Filter). В любом из вариантов фильтр появится возле интерфейса, можно жать Start.

Теперь перейдем к Display Filters. Они фильтруют исключительно уже захваченный трафик. Что можно фильтровать? — Практически все — протоколы, адреса, специфические поля в протоколах. Операции, которые можно использовать при построении фильтров:

Команда Значение Пример использования
== равенство ip.dst == 193.168.3.10
!= Не равно udp.dst != 53
< меньше чем ip.ttl < 24
> больше чем frame.len > 10
<= меньше или равно frame.len <= 0x20
>= больше или равно tcp.analysis.bytes_in_flight >= 1000
matches регулярные выражения frame matches "[Pp][Aa][Ss][Ss]"
contains содержит dns.resp.name contains google

Как вы, наверное, заметили, в таблице в качестве примеров были разнообразные выражения, достаточно понятные и зачастую говорящие сами за себя. Например, ip.dst – это поле протокола IP. Чтобы увидеть это поле, можно просто посмотреть на пакет, и в нижней части окна можно увидеть его значение, которое потом можно применять в любом фильтре. Например, нас интересует, как создать фильтр, где будет проверяться значение TTL. Для этого раскрываем L3 часть и становимся на соответствующее поле:

И видим, что для построения фильтра, нужно использовать выражение ip.ttl. Если начать набирать фильтр, то после точки автоматически появится список возможных значений:

Чтобы применить фильтр, достаточно нажать enter или кнопку Apply. Само поле для ввода фильтра может менять цвет в зависимости от того, что было набрано. Зеленый цвет означает, что все в порядке. Красный — допущена ошибка, желтый — получен неожиданный результат, потому что существуют другие варианты написания фильтра (например можно написать ip.dst != 8.8.8.8 или же !ip.dst == 8.8.8.8, именно второй вариант более предпочтительный). Фильтры можно сохранять для дальнейшего использования, нажав кнопку Save, затем ввести произвольное название

и после нажатия на кнопку ОК фильтр появится как кнопка на панели.

А если кликнуть на расположенную неподалеку кнопку «Expression…», то откроется достаточно мощный конструктор выражений, по которому можно чуть ли не изучать сетевые протоколы. Количество поддерживаемых протоколов постоянно увеличивается.

Как уже упоминалось ранее, можно выделить любой пакет и в контекстном меню выбрать Apply as Filter и в подменю выбрать режим — selected или not selected и соответственно сразу же появится фильтр, который будет показывать только выбранное или наоборот уберет выбранное с экрана. Таким образом можно гибко выбирать, что видеть на экране, а что — нет. Это может быть определенный ip-адрес, ttl, порт, dns ответ и многое другое. Кроме того, есть два варианта для таких быстрых фильтров — Prepare as Filter и Apply as Filter. Как можно догадаться по названию — разница заключается в том, что в первом случае только появится в поле для ввода Display Filter, но не применится (удобно, если например, добавлять таким способом несколько фильтров, а затем сразу применить готовый результат), а во втором — сразу же и применится.

Фильтры можно объединять, используя знакомые по булевой алгебре логические операции:(dns) && (http) логическое и

(dns) || (http) это логическое или

Таким образом можно строить большие и сложные фильтры вроде:(tcp.flags.syn==1) && (ip.src == 172.16.10.2) && (ip.dst == 172.16.10.1) Здесь видим, что выбираются только TCP SYN сегменты, только с определенным адресом отправителя и получателя. При составлении больших фильтров нужно помнить, что фильтр по сути — логическое выражение, и если оно истинно, то пакет отобразится на экране, если ложно — нет.

Достаточно частая ситуация, когда возникают жалобы на медленную работу сети, причин этого может быть множество. Попробуем разобраться, в чем может быть причина, и рассмотрим два способа. Первый состоит в добавлении колонки TCP delta. Открываем пакет, находим поле Time since previous frame in this TCP frame, правый клик и выбираем Apply as Column. Появится новая колонка. На ней можно кликнуть правой кнопкой мыши и выбрать режим сортировки, например, Sort Descending.

И сразу же рассмотрим второй способ. Относительно недавно (в версии 1.10.0) появился фильтр tcp.time_delta, который, собственно, учитывает время с момента последнего запроса.

Если клиент делает запрос и получает ответ через 10 миллисекунд, и клиент говорит, что у него все медленно работает, то, возможно, проблема у самого клиента. Если же клиент делает запрос и получает ответ через 2-3 секунды, тут уже, возможно, проблема кроется в сети.

Если посмотреть в TCP пакет (или сегмент если быть точным), то можно увидеть там Stream index, который начинается обычно с нуля. Само поле будет называться tcp.stream.

По нему можно сделать правый клик и создать фильтр.

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

Еще один способ – сделать правый клик на самом пакете, выбрать Conversation Filter и создать фильтр для l2 l3 l4 уровня соответственно.

В итоге мы опять увидим взаимодействие двух хостов.

И третий вариант — это одна из самых интересных фич — Follow TCP Stream. Для того чтобы его задействовать, нужно опять таки кликнуть правой кнопкой мыши на пакете и выбрать “Follow TCP Stream”. Появится окно, где будет наглядно продемонстрирован весь обмен между двумя узлами.

Если же зайти в меню Statistics – Conversations, то, выбирая закладки, можно увидеть статистику по таким “разговорам” и различные сессии, при этом можно отсортировать их по различным колонкам, например, по количеству переданных данных.

И прямо в этом окне можно правой кнопкой взывать контекстное меню и опять же применить как фильтр.

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

Нажатие на эту кнопку приведет к открытию окна Expert Infos. Того же результата можно добиться, пройдя в меню Analyze – Expert Info.

В этом окне будет содержаться информация по найденным пакетам, разбитая на группы Errors, Warnings, Notes и Chats. Цветовая раскраска для этих групп выглядит следующим образом: Ошибки — красный цвет Предупреждения — желтый Примечания — сине-зелёный (cyan) Чат — серый

Wireshark содержит в себе мощный анализатор и умеет автоматически обнаруживать большое количество проблем, возникающих в сети. Как вы уже могли заметить, буквально везде можно использовать фильтры и Expert Info не является исключением. Для того чтобы создать такой фильтр, нужно использовать конструкцию expert.severity. Например, expert.severity==error.

Можно ли с помощью Wireshark узнать, что было скачано? Да, можно. И сейчас это увидим. Вначале возьмем HTTP трафик. Сделаем правый клик по HTTP пакету — Protocol Preferences – и видим тут массу опций, которые непосредственно влияют на извлечение файлов из веб трафика. Для того чтобы увидеть, что можно извлечь из текущего дампа нужно перейти в меню File – Export Objects – HTTP. Появится окно, которое покажет все захваченные http объекты — текстовые файлы, картинки и т.д. Для того чтобы вытащить любой файл из этого списка, достаточно просто выделить его и нажать Save As.

Как можно заметить, рисунок был извлечен без каких-либо проблем.

Таким же способом, можно извлекать и потоковое видео/аудио.

Но на этом возможности Wireshark не заканчиваются! Он умеет вытаскивать файлы и с протокола FTP. Для этого можно использовать знакомый уже Follow TCP Stream. В итоге отобразится только обмен по протоколу FTP, в котором нужно будет найти строку RETR, что собственно и будет означать передачу файла.

Затем опускаемся дальше, находим пакеты уже непосредственно с файлом (FTP-DATA) и опять выбираем Follow TCP Stream, видим содержимое файла, жмем Save As и сохраняем.

Wireshark имеет несколько встроенных функций для работы с этой технологией. Он поддерживает массу голосовых протоколов — SIP, SDP, RTSP, H.323, RTCP, SRTP и другие. И, конечно же, умеет перехватывать и сохранять голосовой трафик для дальнейшего прослушивания. Этот функционал как нельзя лучше подойдет для траблшутинга в сетях Voice over IP. Меню Statistics — Flow Graph покажет наглядную картину, как происходил весь обмен пакетами.

А вообще целое меню Telephony отведено для работы с голосовым трафиком. Например, Telephony – RTP – Show All Streams покажет подробно, что происходило с RTP, в частности jitter (параметр, который, вероятно, самый важный в голосе), что иногда сразу скажет о наличии проблем.

Нажав на кнопку “Analyze”, можно открыть окно RTP stream Analysis – и, выбрав там поток, можно его даже проиграть, используя кнопку player. Сначала отроется окно проигрывателя, в котором вначале нужно установить подходящее значение jitter и использовать кнопку decode.

Появится нечто похожее на анализатор спектра, в котором можно отметить требуемый разговор, и после этого кнопка Play станет активной.

Так же существует еще один способ прослушивания голосовых звонков — можно зайти в меню Telephony – VoIP Calls.

Откроется окно со списком совершенных звонков, где опять же можно нажать кнопку player, отменить нужные разговоры флажками и нажать play. Для того чтобы добиться приемлемого качества звучания, потребуется проиграться со значением поля jitter buffer, меняя его значение.

Некоторое время назад появился сайт CloudShark.org.

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

Напоследок рассмотрим как выглядит сканирование портов. Смотрим на дамп и видим, что вначале происходит ARP запрос и затем непосредственно начинается сканирование. Адрес нашего маршрутизатора 192.168.10.11, сканирование идет с адреса 192.168.10.101

Это, так называемое, SYN сканирование, когда идут SYN-пакеты на указанный диапазон портов. Так как большинство портов закрыто, маршрутизатор отвечает пакетами RST, ACK. Пролистав чуть ниже видим, что открыт telnet (tcp 23).

На это указывает то, что маршрутизатор ответил пакетом SYN, ACK. К слову, для фильтрации портов в сниффере можно использовать конструкции вида: tcp.srcport, tcp.dstport и tcp.port. Для протокола UDP всё аналогично — udp.srcport, udp.dstport, udp.port.

Мы пробежались по самым основным частям функционала лучшего анализатора пакетов. Получилось несколько сумбурно, вероятно, потому что хотелось затронуть как можно больше его возможностей и не упустить ничего важного. Оказалось, что анализатор пакетов, как отладчик и дизассемблер, демонстрирует мельчайшие подробности работы сети и сетевых протоколов. Используя Wireshark и обладая необходимыми знаниями (которые можно почерпнуть изучив серию Сетей для Самых Маленьких на сайте linkmeup.ru) можно достаточно эффективно находить и диагностировать разнообразные проблемы, возникающие в сети.

В процессе написания использовались материалы сайта wiki.wireshark.org Дампы с трафиком брались из разных источников, больше всего с сайта packetlife.net

habrahabr.ru

НОУ ИНТУИТ | Лекция | Анализ сетевого трафика как метод диагностики сети

Аннотация: Даны краткие сведения об анализе сетевого трафика и консольной утилите tcpdump. Приведены примеры анализа трафика протоколов ARP, IP, TCP и UDP

Содержание

  1. "Прослушивание" сетевого трафика
  2. Утилита tcpdump
  3. Анализ трафика на уровне сетевых интерфейсов и сетевом уровне с помощью tcpdump
  4. Анализ трафика на транспортном уровне с помощью tcpdump

"Прослушивание" сетевого трафика

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

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

В сети Ethernet существуют следующие основные возможности прослушивания трафика:

  • В сети на основе концентраторов весь трафик домена коллизий доступен любой сетевой станции.
  • В сетях на основе коммутаторов сетевой станции доступен ее трафик, а также весь широковещательный трафик данного сегмента.
  • Некоторые управляемые коммутаторы имеют функцию копирования трафика данного порта на порт мониторинга ("зеркалирование",мониторинг порта).
  • Использование специальных средств (ответвителей), включаемых в разрыв сетевого подключения и передающих трафик подключения на отдельный порт.
  • "Трюк" с концентратором — порт коммутатора, трафик которого необходимо прослушать, включают через концентратор, подключив к концентратору также узел-монитор (при этом в большинстве случаев уменьшается производительность сетевого подключения).

Существуют программы (сетевые мониторы или анализаторы, sniffer), которые реализуют функцию прослушивания сетевого трафика (в т.ч. в беспорядочном режиме), отображения его или записи в файл. Дополнительно ПО для анализа может фильтровать трафик на основе правил, декодировать (расшифровать) протоколы, считать статистику и диагностировать некоторые проблемы.

Примечание: Хорошим выбором базового инструмента для анализа сетевого трафика в графической среде является бесплатный пакет wireshark [ 43 ] , доступный для Windows и в репозиториях некоторых дистрибутивов Linux.

Утилита tcpdump

Консольная утилита tcpdump входит в состав большинства Unix-систем и позволяет перехватывать и отображать сетевой трафик [ 44 ] . Утилита использует libpcap, переносимую C/C++ библиотеку для перехвата сетевого трафика.

Для установки tcpdump в Debian можно использовать команду:

# apt-get install tcpdump

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

tcpdump <опции> <фильтр-выражение>

Для вывода на консоль описание заголовков (расшифрованные данные) перехваченных пакетов необходимо указать интерфейс для анализа трафика (опция -i ):

Можно отключить преобразования IP адресов в доменные имена (т.к. при больших объемах трафика создается большое число запросов к DNS-серверу) — опция -n:

Для вывода данных канального уровня (например, mac адреса и прочее) - опция -e:

Вывод дополнительной информации (например, TTL, опции IP) — опция -v:

Увеличение размера захватываемых пакетов (больше 68 байт по умолчанию) — опция -s с указанием размера ( -s 0 — захватывать пакеты целиком):

Запись в файл (непосредственно пакеты - "дамп" ) - опция -w с указанием имени файла:

Чтение пакетов из файла — опция - r с указанием имени файла:

По умолчанию tcpdump работает в беспорядочном режиме. Ключ -p указывает tcpdump перехватывать только трафик, предназначенный данному узлу.

Дополнительную информацию по ключам и формате фильтров tcpdump можно получить в справочном руководстве ( man tcpdump ).

Анализ трафика на уровне сетевых интерфейсов и сетевом уровне с помощью tcpdump

Для выделения Ethernet-фреймов используются следующие конструкции tcpdump (общий вид):

tcpdump ether { src | dst | host } MAC_ADDRESS

где src — MAC-адрес источника, dst — MAC-адрес назначения, host — src или dst, а также для выделения широковещательного трафика:

Например:

# tcpdump -n -i vlan0 ether src 0:2:b3:d8:d8:2c # tcpdump -n -e -i vlan0 ether broadcast

В первом случае выбираются с интерфейса vlan0 фреймы с указанным MAC-адресом источника. Во втором - выбирается широковещательный трафик на интерфейсе vlan0.

Фильтрация по IP адресам ( net — сеть, для указания маски подсети - mask ):

tcpdump { src | dst } { net | host }

Например:

# tcpdump -n -i eth0 src 192.168.66.1 # tcpdump -n -i eth0 host 192.168.66.1 # tcpdump -n -i eth0 src net 10.0.0.0 mask 255.0.0.0

В первом случае фильтруются сетевые пакеты, в заголовке которых в поле источник указан IP-адрес 192.168.66.1. Во втором случае — пакеты, в которых данный IP-адрес указан как источник или как получатель пакета. В третьем — пакеты, в которых источником указаны узлы сети 10.0.0.0/8.

Фильтрация по IP протоколу:

tcpdump { arp | rarp | ip | tcp | udp | icmp }

Например, выбирать ICMP-пакеты:

# tcpdump -n -i eth0 icmp

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

Например: host 192.168.12.5 and host 192.168.13.4.

www.intuit.ru

Контроль трафика в локальной сети

Программ для учёта трафика в локальной сети достаточно много: как платных, так и бесплатных, сильно различающихся по функционалу. Одна из наиболее популярных Open Source программ – SAMS. Она работает на платформе Linux совместно со Squid.

SAMS требует наличия PHP5, будем использовать Ubuntu Server 14.04. Нам понадобятся пакеты Squid, Apache2, PHP5 с модулями.

Учет трафика интернета в локальной сети linux

Попробуем разобраться, как это работает.

Squid раздаёт интернет, принимая запросы на порту 3128. При этом он пишет детальный лог access.log. Всё управление прокси-сервером осуществляется через файл squid.conf. Squid обладает широкими возможностями по управлению доступом к интернету: разграничение доступа по адресам, контроль полосы пропускания для конкретных адресов, групп адресов и сетей.

SAMS работает на основе анализа логов прокси-сервера Squid. Система учёта трафика в локальной сети следит за статистикой прокси-сервера, и в соответствии с заданными политиками принимает решение о блокировке, разблокировке или ограничении скорости для клиента Squid.

Установка SAMS

Устанавливаем пакеты.

apt-get install apache2 php5 php5-mysql mysql-server php5-gd squid3

Скачиваем и устанавливаем SAMS

wget https://github.com/inhab-magnus/sams2-deb/archive/master.zip

unzip master.zip

cd sams2-deb-master/

dpkg -i sams2_2.0.0-1.1_amd64.deb

Устанавливаем web-интерфейс

dpkg -i apache2/sams2-web_2.0.0-1.1_all.deb

В файл /etc/sams2.conf вносим изменения.

DB_USER=root

DB_PASSWORD=/Пароль к MySql/

Запускаем SAMS

service sams2 start

Настройка Squid

Вносим изменения в файл /etc/squid3/squid.conf

http_port 192.168.0.110:3128cache_dir ufs /var/spool/squid3 2048 16 256

Включаем логирование и ротацию логов с хранением в 31 день.

access_log daemon:/var/log/squid3/access.log squid

logfile_rotate 31

Останавливаем Squid, создаём кэш.

service squid3 stop

squid –z

service squid3 start

Для чистоты эксперимента настраиваем один из браузеров на работу с прокси 192.168.0.110 через порт 3128. Попробовав подключиться, получаем отказ в соединении – в Squid не настроены права на доступ к прокси.

Начальная настройка SAMS

В другом браузере открываем адрес (192.168.0.110 – адрес сервера).

http://192.168.0.110/sams2

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

Указываем сервер базы данных (127.0.0.1), логин и пароль от MySql.

Начальная настройка системы учёта трафика выполнена. Остаётся только выполнить настройку программы.

Мониторинг трафика в локальной сети

Логинимся в систему под администратором (admin/qwerty).

Стоит сразу сказать об авторизации пользователей.

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

В ветке Squid открываем прокси-сервер и нажимаем внизу кнопку «Настройка прокси-сервера».

Самое главное здесь – указать в адресах папок и файлов, где это необходимо, свой IP-адрес, иначе прокси-сервер не запустится.

Суть всех изменений в настройках SAMS в том, что они записываются в squid.conf. В фоне работает sams2deamon, который отслеживает изменения в настройках, требующих внесения в конфигурационный файл (там же можно задать интервал отслеживания).

Переходим в ветку «Пользователи». Внизу нажимаем кнопку «Добавить пользователя».

Заполняем поле «Пользователь» и «IP адрес». В качестве имени пользователя возьмём тот же IP (IP компьютера, не сервера!). В поле «Разрешенный трафик» вносим «0», то есть без ограничений. Все остальные поля опускаем.

Будет добавлен новый acl для этого IP-адреса и разрешение для работы через Squid. Если конфиг не был изменен автоматически, переходим в ветку прокси и нажимаем кнопку «Переконфигурировать Squid». Изменения в конфиг будут внесены вручную.

Пробуем открыть любой URL в браузере. Проверяем access.log и видим запросы, обрабатываемые прокси. Для проверки работы SAMS откроем страницу «Пользователи», внизу нажмём кнопку «Пересчитать трафик пользователей».

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

Оцените статью: Поделитесь с друзьями!

tvoi-setevichok.ru

Принципы организации учёта IP-трафика / Хабрахабр

Любой администратор рано или поздно получает инструкцию от руководства: «посчитать, кто ходит в сеть, и сколько качает». Для провайдеров она дополняется задачами «пустить кого надо, взять оплату, ограничить доступ». Что считать? Как? Где? Отрывочных сведений много, они не структурированы. Избавим начинающего админа от утомительных поисков, снабдив его общими знаниями, и полезными ссылками на матчасть. В данной статье я постараюсь описать принципы организации сбора, учёта и контроля трафика в сети. Мы рассмотрим проблематику вопроса, и перечислим возможные способы съема информации с сетевых устройств.

Это первая теоретическая статья из цикла статей, посвящённого сбору, учёту, управлению и биллингу трафика и IT-ресурсов.

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

  • Внешние ресурсы – сеть Интернет, со всеми сайтами, серверами, адресами и прочим, что не принадлежит сети, которую вы контролируете.
  • Устройство доступа – маршрутизатор (аппаратный, или на базе PC), коммутатор, VPN-сервер или концентратор.
  • Внутренние ресурсы – набор компьютеров, подсетей, абонентов, работу которых в сети необходимо учитывать или контролировать.
  • Сервер управления или учёта – устройство, на котором работает специализированное программное обеспечение. Может быть функционально совмещён с программным маршрутизатором.
В данной структуре, сетевой трафик проходит от внешних ресурсов к внутренним, и обратно, через устройство доступа. Оно передает на сервер управления информацию о трафике. Сервер управления обрабатывает эту информацию, хранит в базе, отображает, выдает команды на блокировку. Однако, не все комбинации устройств (методов) доступа, и методов сбора и управления, совместимы. О различных вариантах и пойдет речь ниже.
Сетевой трафик
Для начала необходимо определить, а что же подразумевается под «сетевым трафиком», и какую полезную статистическую информацию можно извлечь из потока пользовательских данных. Доминирующим протоколом межсетевого взаимодействия пока остается IP версии 4. Протокол IP соответствует 3му уровню модели OSI (L3). Информация (данные) между отправителем и получателем упаковывается в пакеты – имеющие заголовок, и «полезную нагрузку». Заголовок определяет, откуда и куда идет пакет (IP-адреса отправителя и получателя), размер пакета, тип полезной нагрузки. Основную часть сетевого трафика составляют пакеты с полезной нагрузкой UDP и TCP – это протоколы 4-го уровня (L4). Помимо адресов, заголовок этих двух протоколов содержит номера портов, которые определяют тип службы (приложения), передающего данные.

Для передачи IP-пакета по проводам (или радио) сетевые устройства вынуждены «оборачивать» (инкапсулировать) его в пакет протокола 2го уровня (L2). Самым распространенным протоколом такого типа является Ethernet. Фактическая передача «в провод» идет на 1м уровне. Обычно, устройство доступа (маршрутизатор) не занимается анализом заголовков пакетов на уровне, выше 4го (исключение – интеллектуальные межсетевые экраны). Информация из полей адресов, портов, протоколов и счетчики длин из L3 и L4 заголовков пакетов данных и составляет тот «исходный материал», который используется при учёте и управлении трафиком. Собственно объем передаваемой информации находится в поле Length («Длина пакета») заголовка IP (включая длину самого заголовка). Кстати, из-за фрагментации пакетов вследствие механизма MTU общий объем передаваемых данных всегда больше размера полезной нагрузки.

Суммарная длина интересных нам в данном контексте IP- и TCP/UDP- полей пакета составляет 2...10% общей длины пакета. Если обрабатывать и хранить всю эту информацию попакетно, не хватит никаких ресурсов. К счастью, подавляющий объем трафика структурирован так, что состоит из набора «диалогов» между внешними и внутренними сетевыми устройствами, так называемых «потоков». Например, в рамках одной операции пересылки электронного письма (протокол SMTP) открывается TCP-сессия между клиентом и сервером. Она характеризуется постоянным набором параметров {IP-адрес источника, TCP-порт источника, IP-адрес получателя TCP-порт получателя}. Вместо того, чтобы обрабатывать и хранить информацию попакетно, гораздо удобнее хранить параметры потока (адреса и порты), а также дополнительную информацию – число и сумму длин переданных пакетов в каждую сторону, опционально длительность сессии, индексы интерфейсов маршрутизатора, значение поля ToS и прочее. Такой подход выгоден для ориентированных на соединение протоколов (TCP), где можно явно перехватить момент завершения сессии. Однако и для не ориентированных на сессии протоколов можно проводить агрегацию и логическое завершение записи о потоке по, например, таймауту. Ниже приведена выдержка из SQL-базы собственной системы биллинга, осуществляющей протоколирование информации о потоках трафика:

Необходимо отметить случай, когда устройство доступа осуществляет трансляцию адресов (NAT, маскарадинг) для организации доступа в Интернет компьютеров локальной сети, используя один, внешний, публичный IP-адрес. В этом случае специальный механизм осуществляет подмену IP-адресов и TCP/UDP портов пакетов трафика, заменяя внутренние (не маршрутизируемые в Интернете) адреса согласно своей динамической таблице трансляции. В такой конфигурации необходимо помнить, что для корректного учета данных по внутренним хостам сети съём статистики должен производиться способом и в том месте, где результат трансляции ещё не «обезличивает» внутренние адреса.

Методы сбора информации о трафике/статистике
Снимать и обрабатывать информацию о проходящем трафике можно непосредственно на самом устройстве доступа (ПК-маршрутизатор, VPN-сервер), с этого устройства передавая ее на отдельный сервер (NetFlow, SNMP), или «с провода» (tap, SPAN). Разберем все варианты по-порядку.
ПК-маршрутизатор
Рассмотрим простейший случай – устройство доступа (маршрутизатор) на базе ПК c ОС Linux.

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

  • перехват (копирование) пакетов, проходящих через сетевую карту сервера, при помощи библиотеки libpcap
  • перехват пакетов, проходящих через встроенный межсетевой экран
  • использование сторонних средств преобразования попакетной статистики (полученной одним из двух предыдущих методов) в поток агрегированной информации netflow
Libpcap
В первом случае копия пакета, проходящего через интерфейс, после прохождения фильтра (man pcap-filter) может быть запрошена клиентской программой на сервере, написанной с использованием данной библиотеки. Пакет поступает вместе с заголовком 2го уровня (Ethernet). Можно ограничить длину захватываемой информации (если нас интересует только информация из его заголовка). Примерами таких программ могут быть tcpdump и Wireshark. Существует реализация libpcap под Windows. В случае применения трансляции адресов на ПК-маршрутизаторе такой перехват можно осуществлять только на его внутреннем интерфейсе, подключенном к локальным пользователям. На внешнем интерфейсе, после трансляции, IP-пакеты не содержат информации о внутренних хостах сети. Однако при таком способе невозможно учесть трафик, создаваемый самим сервером в сети Интернет (что важно, если на нем работают веб– или почтовый сервис).

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

  • открыть необходимый интерфейс
  • указать фильтр, через который пропускать принятые пакеты, размер захватываемой части (snaplen), размер буфера,
  • задать параметр promisc, который переводит сетевой интерфейс в режим захвата вообще всех проходящих мимо пакетов, а не только адресованных MAC-адресу этого интерфейса
  • установить функцию (callback), вызываемую на каждый принятый пакет.

При передаче пакета через выбранный интерфейс, после прохождения фильтра эта функция получает буфер, содержащий Ethernet, (VLAN), IP и т.д. заголовки, общим размером до snaplen. Поскольку библиотека libcap копирует пакеты, заблокировать их прохождение при ее помощи невозможно. В таком случае программе сбора и обработки трафика придется использовать альтернативные методы, например вызов скрипта для помещения заданного IP-адреса в правило блокировки трафика.

Межсетевой экран
Захват данных, проходящих через межсетевой экран, позволяет учесть и трафик самого сервера, и трафик пользователей сети, даже при работе трансляции адресов. Главное в этом случае – правильно сформулировать правило захвата, и поставить его в нужное место. Данным правилом активируется передача пакета в сторону системной библиотеки, откуда приложение учета и управления трафиком может его получить. Для ОС Линукс в качестве межсетевого экрана применяют iptables, а средства перехвата – ipq, netfliter_queue или ulog. Для OC FreeBSD – ipfw с правилами типа tee или divert. В любом случае механизм межсетевого экрана дополняется возможностью работы с пользовательской программой следующим способом:
  • Пользовательская программа — обработчик трафика регистрирует себя в системе, используя системный вызов, или библиотеку.
  • Пользовательская программа или внешний скрипт устанавливает правило в межсетевой экран, “заворачивающее” выбранный трафик (согласно правилу) вовнутрь обработчика.
  • На каждый проходящий пакет обработчик получает его содержимое в виде буфера памяти (с заголовками IP и т.д. После обработки (учёта) программе необходимо также сообщить ядру операционной системы, что делать далее с таким пакетом — отбросить или передать далее. Как вариант, возможно передать ядру видоизмененный пакет.

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

Netflow
Этот протокол был разработан фирмой Cisco Systems для экспорта информации о трафике с маршрутизаторов с целью учета и анализа трафика. Наиболее популярная сейчас версия 5 предоставляет получателю поток структурированных данных в виде UDP-пакетов, содержащих информацию о прошедшем трафике в виде так называемых flow records:

Объем информации о трафике меньше самого трафика на несколько порядков, что особенно актуально в больших и распределенных сетях. Конечно же, блокировать передачу информации при сборе статистики по netflow невозможно (если не использовать дополнительные механизмы). В настоящее время становится популярным дальнейшее развитие этого протокола – версия 9, основанная на шаблонной структуре flow record, реализации для устройств других производителей (sFlow). Недавно был принят стандарт IPFIX, который позволяет передавать статистику и по протоколам более глубоких уровней (например, по типу приложения). Реализация netflow-источников (агентов, probe) доступна для ПК-маршрутизаторов, как в виде работающих по описанных выше механизмам утилит (flowprobe, fprobe, softflowd), так и непосредственно встроенных в ядро ОС (FreeBSD: ng_netgraph, Linux: ipt_neflow). Для программных маршрутизаторов поток статистики netflow можно принимать и обрабатывать локально на самом маршрутизаторе, или отправлять по сети (протокол передачи – поверх UDP) на принимающее устройство (коллектор). Программа — коллектор может собирать сведения от многих источников сразу, имея возможность различать их трафик даже при пересекающихся адресных пространствах. При помощи дополнительных средств, таких как nprobe возможно также проводить дополнительную агрегацию данных, раздвоение потоков или конвертацию протоколов, что актуально при управлении большой и распределенной сетью с десятками маршрутизаторов.

Функции экспорта netflow поддерживают маршрутизаторы Cisco Systems, Mikrotik, и некоторые другие. Аналогичный функционал (с другими протоколами экспорта) поддерживается всеми крупными производителями сетевого оборудования.

Libpcap “снаружи”
Немного усложним задачу. Что, если ваше устройство доступа – аппаратный маршрутизатор другого производителя? Например, D-Link, ASUS, Trendnet и т.д. На нем, скорее всего, невозможно поставить дополнительное программное средство съема данных. Как вариант – интеллектуальное устройство доступа у вас есть, но настроить его не представляется возможным (нет прав, или оно управляется вашим провайдером). В таком случае можно собирать информацию о трафике непосредственно в точке стыка устройства доступа с внутренней сетью, пользуясь «аппаратными» средствами копирования пакетов. В таком случае непременно потребуется отдельно стоящий сервер с выделенной сетевой картой для приема копий Ethernet-пакетов. Сервер должен использовать механизм сбора пакетов по методу libpcap, описанному выше, и наша задача — на вход выделенной для этого сетевой карты подать поток данных, идентичный выходящему из сервера доступа. Для этого можно использовать:
  • Ethernet – хаб (hub): устройство, просто пересылающее пакеты между всеми своими портами без разбора. В современных реалиях его можно найти где-нибудь на пыльном складе, и применять такой метод не рекомендуется: ненадежно, низкая скорость (хабов на скорости 1 Гбит/с не бывает)
  • Ethernet – коммутатор с возможностью зеркалирования (мирроринга, SPAN портов. Современные интеллектуальные (и дорогие) коммутаторы позволяют копировать на указанный порт весь трафик (входящий, выходящий, оба) другого физического интерфейса, VLANа, в том числе удаленного (RSPAN)
  • Аппаратный раздвоитель, который может потребовать установки для сбора двух сетевых карт вместо одной – и это помимо основной, системной.

Естественно, вы можете настроить SPAN-порт и на самом устройстве доступа (маршрутизаторе), если оно это позволяет – Cisco Catalyst 6500, Cisco ASA. Вот пример такой конфигурации для коммутатора Cisco:monitor session 1 source vlan 100 ! откуда берем пакеты monitor session 1 destination interface Gi6/3! куда выдаем пакеты

SNMP
Что, если маршрутизатора под нашим контролем нет, с netflow связываться нет желания, нас не интересуют детали трафика наших пользователей. Они просто подключены в сеть через управляемый коммутатор, и нам надо просто грубо оценить объем трафика, приходящегося на каждый из его портов. Как вы знаете, сетевые устройства с возможностью удаленного управления поддерживают, и могут отобразить счетчики пакетов (байт), проходящих через сетевые интерфейсы. Для их опроса правильно будет использовать стандартизованный протокол удаленного управления SNMP. При помощи его можно достаточно просто получить не только значения указанных счетчиков, но также другие параметры, такие как имя и описание интерфейса, видимые через него MAC-адреса, и другую полезную информацию. Это делается как утилитами командной строки (snmpwalk), графическими SNMP-браузерами, так и более сложными программами мониторинга сети (rrdtools, cacti, zabbix, whats up gold и т.д.). Однако, данный метод имеет два существенных недостатка:
  • блокировка трафика может производиться только путем полного отключения интерфейса, при помощи того же SNMP
  • счетчики трафика, снимаемые по SNMP, относятся к сумме длин Ethernet-пакетов (причем unicast, broadcast и multicast по-отдельности), в то время как остальные описанные ранее средства дают величины относительно IP-пакетов. Это создает заметное расхождение (особенно на коротких пакетах) из-за оверхеда, вызванного длиной Ethernet-заголовка (впрочем, с этим можно приближенно бороться: L3_байт = L2_байт — L2_пакетов*38).
VPN
Отдельно стоит рассмотреть случай доступа пользователей к сети путем явного установления соединения к серверу доступа. Классическим примером может служить старый добрый dial-up, аналогом которого в современном мире являются VPN-службы удаленного доступа (PPTP, PPPoE, L2TP, OpenVPN, IPSEC) Устройство доступа не только маршрутизирует IP-трафик пользователей, но также представляет из себя специализированный VPN-сервер, и терминирует логические туннели (часто зашифрованные), внутри которых передается пользовательский трафик. Для учета такого трафика можно пользоваться как всеми средствами, описанными выше (и для глубокого анализа по портам/протоколам они хорошо подходят), так и дополнительными механизмами, которые предоставляют средства управления VPN-доступом. В первую очередь речь пойдет о протоколе RADIUS. Его работа – достаточно сложная тема. Мы же кратко упомянем, что контролем (авторизацией) доступа к VPN-серверу (RADIUS-клиенту) управляет специальное приложение (RADIUS-сервер), имеющее за собой базу (текстовый файл, SQL, Active Directory) допустимых пользователей с их атрибутами (ограничения по скорости подключения, назначенные IP-адреса). Помимо процесса авторизации, клиент периодически передает серверу сообщения аккаунтинга, информацию о состоянии каждой текущей работающей VPN-сессии, в том числе счетчики переданных байт и пакетов.
Заключение
Сведем все описанные выше методы сбора информации о трафике воедино:

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

  • как и куда попадают собранные данные о трафике
  • программное обеспечение для учета трафика
  • чем отличается биллинг от простой “считалки”
  • как можно накладывать ограничение на трафик
  • учёт и ограничение посещенных веб-сайтов

habrahabr.ru


Смотрите также