В терминологии системных администраторов и специалистов по информационной безопасности часто встречается понятие — «анализаторы трафика». Под анализатором трафика понимается устройство или программа, которая перехватывает трафик и затем его анализирует. В сфере ИБ используется термин «сниффер».
Как правило, снифферы «слушают» тот трафик, который проходит через сетевую карту. Одна из самых известных свободно распространяемых программ-снифферов – это Wireshark. Но хочется отметить, что на самом деле функционал анализаторов трафика уже давно «перерос» проблемы хакинга и информационной безопасности. Современные коммерческие анализаторы выпускаются как в виде программных решений, так и в виде аппаратных устройств и служат для комплексного анализа производительности крупных информационных сетей, а также пользовательских приложений.
С помощью анализаторов трафика системный администратор решает следующие задачи:
- находит проблемы в работе сети (задержки в передаче информации) и быстро их устраняет,
- обнаруживает постороннюю активность (несанкционированный доступ злоумышленников), атаки на корпоративные ресурсы и т.д.,
- «прослушивает сеть»,
- анализирует работоспособность пользовательских приложений,
- собирает статистику.
Существуют два основных метода анализа трафика:
Анализатор сети Wireshark | Практика по курсу «Компьютерные сети»
- «В режиме реального времени»;
- «Ретроспективный анализ», который предполагает «захват трафика» и его сохранение, а затем изучение и получение отчетности.
В плане технических решений, существует методика анализа трафика, основанная на данных маршрутизатора. Т.е. используется определенный софт, который собирает данные маршрутизатора, анализирует их и представляет системному инженеру отчетность. Здесь можно упомянуть о Netflow (Cisco), который собирает IP-трафик. Есть методики, которые не основаны на маршрутизаторах, в этом случае устанавливается отдельное оборудование и программное обеспечение, которое и собирает данные из сети, анализирует их, предоставляя отчетность и экспертное решение по определенным проблемам.
Рассмотрим, как производится анализ трафика в реальных сетях на примере софта и оборудования компании Fluke Networks.
1. Сетевой анализатор Fluke Networks OptiView XG
В линейке оборудования компании Fluke Networks — это одно из наиболее удобных решений для системных администраторов. Оригинальность заключается в том, что этот анализатор изготовлен в виде планшета (10,25 — дюймовый дисплей), очень прост в использовании. Рядовой сотрудник ИТ-отдела без специальной подготовки сможет начать работу с помощью данного анализатора и провести анализ даже крупной сети. Этот прибор портативный, весит всего 2,5 кг, т.е. для специалиста в «полевых условиях» и в командировке незаменимый вариант. Итак, рассмотрим, как с помощью данного устройства системному администратору можно произвести анализ трафика в сети крупной организации.
Как пользоваться Wireshark? Анализ трафика и расшифровка пакетов
Планшет Fluke Networks OptiView XG позволяет исследовать сеть Ethernet 10Гбит/c и также беспроводные сети 802.11a/b/g/n, оснащен двумя WiFi-адаптерами и одним встроенным адаптером Spectrum, работает под управлением Windows 7 (64 разрядная версия). Какие виды данных реально получить с помощью этого устройства?
В «режиме реального времени» планшет способен отследить сразу до 30000 устройств, обеспечивает пропускную способность до 10 Гбит/c в этом режиме. Системный инженер может подключить его в любой точке сети. Например, бизнес-приложения (финансовые задачи) вызывают большую нагрузку на полосу пропускания, и отдельные пользователи получают данные с большой задержкой.
Необходимо выяснить в каких узлах сети происходят такие задержки в передаче трафика, вероятно, что какое-либо приложение вызывает такую нагрузку на сеть или это результат неправильной настройки сети, протоколов или маршрутизации. Может даже система подверглась атаке или уязвима перед ней. Все это возможно отследить с помощью OptiView XG, причем данные будут предоставлены в удобной форме, в виде упорядоченных отчетов (формат HTML и PDF) и доступны для групповой работы сотрудникам различных служб компании. Есть возможность отследить, какие именно типы приложений больше всего нагружают полосу пропускания сети, например, видео-контент или P2P-трафик, которым слишком злоупотребляют некоторые сотрудники. Нередко для веб-ресурсов компании используются виртуальный сервер и другие средства виртуализации, в данном случае планшетный анализатор позволяет произвести исследования производительности виртуальной машины VMware.
Перечислим некоторые дополнительные функции, которые предоставляет планшет OptiView XG:
- Анализ пути и прикладной инфраструктуры;
- Функция Trace SwitchRoute;
- Netflow анализ;
- Контроль транкового трафика сетей VLAN;
- Функция сопоставления данных и поиск запрещенного в сети трафика;
- Встроенный анализатор ClearSight™ (обзор состояния всех приложений);
- Обнаружение проблем и сбоев в автоматическом режиме;
- Реконструкция контента VoIP, видео или писем электронной почты.
2. Fluke Networks OptiView NetFlow Tracker
OptiView NetFlow Tracker – представляет собой программный пакет, позволяющий администратору производить анализ трафика на основе подключения к маршрутизатору. Как мы уже писали выше, такой анализ трафика проводится с помощью встроенных опций маршрутизатора, а именно функции Netflow.
Выполнив анализ данных, которые предоставлены Netflow, системный инженер сможет обозначить для себя такие «узкие места» в работе сети, как увеличенная нагрузка на канал, например. C помощью OptiView NetFlow Tracker можно выяснить, есть ли вирусы в сети, правильно ли построена сеть, следуют ли пользователи политике безопасности, принятой в организации.
Требования к маршрутизаторам: c этим софтом совместимы модели маршрутизаторов и коммутаторов Cisco, Juniper и Nortel (поддержка опций NetFlow или IPFIX). В принципе, любое устройство, способное экспортировать NetFlow подойдет для работы с OptiView NetFlow Tracker, о форматах экспорта и других деталях стоит посоветоваться с нашими техническими специалистами. Приобрести этот программный пакет возможно с лицензией от 5 до 1000 устройств и с различными видами и сроками технической поддержки. OptiView NetFlow Tracker будет полезен в том случае, когда планируется проводить анализ трафика и производительности сети, используя имеющиеся в компании маршрутизаторы без дорогостоящей закупки специального оборудования. Конечно, системный администратор не получит такого расширенного анализа, как при использовании комплексных аппаратных решений, но для целого ряда организаций вполне достаточно и методики анализа трафика, основанной на данных маршрутизатора.
3. Fluke Networks Visual TruView
Visual TruView – это мощное серверное решение для комплексного анализа трафика. Позволяет рассчитать данные производительности сети, вести контроль приложений, а также анализировать VoIP. Посмотрим, какие основные инструменты может получить системный инженер, используя этот комплекс.
Кроме обычного анализа пакетов и операций, есть возможность потоковой записи на диск (10 Gbps) и управления устройствами. Также доступен анализ трафика NetFlow, который используется в маршрутизаторах. И что особенно важно, так это удобная управляющая программа, которая сводит данные, полученные из разных источников в единый удобный формат отчетности «всё-в-одном». Надо отметить, что это самый удачный вариант для анализа трафика «в реальном времени».
Visual TruView выполнен в виде сервера, монтируется в стойку, технические характеристики можно выяснить на нашем сайте. С помощью этого анализатора системный администратор может провести полноценное «техническое расследование» в реальном времени на предмет замедленной и неэффективной работы приложений пользователя. Например, в крупном Call-центре, использующем средства VoIP или в большой торговой компании, которая использует CRM-систему.
4. Fluke Networks «Network Time Machine»
«Network Time Machine» – система для захвата и анализа трафика, наилучшее решение для «ретроспективного анализа». Система NTM захватывает весь трафик Ethernet (10/100 Мбит/с, 1 Гбит/с, 10 Гбит/с), осуществляет потоковую запись на диск с высокой скоростью.
Как происходит анализ трафика в этой системе? На первом этапе осуществляется захват трафика с помощью высокопроизводительных карт FPGA, затем все захваченные кадры сохраняются в дисковом массиве (PacketStore), причем все эти данные в реальном времени обрабатываются, классифицируются и упорядочиваются. Функция Atlas позволяет сделать углубленный сбор информации и проанализировать данные, передающиеся на транспортном и сетевом уровне (модель OSI). С помощью опции ClearSight Analyzer можно получить результаты анализа пакетов в сети, отобразить основные протоколы и быстро обнаружить неисправности.
Зададимся вопросом: «В каких случаях специалисту необходим ретроспективный анализ трафика, и чем он эффективнее анализа в реальном времени?». При эксплуатации корпоративных сетей, да еще и с высокопроизводительными приложениями часто возникает ситуация, когда ошибка или замедленная работа определенных программ или устройств повторяются неоднократно, причем в самых различных ситуациях. Этот «несистемный эффект» у специалистов называется «плавающей ошибкой». Такие уязвимости и ошибки не отследить «в реальном времени», а вот если тщательно проанализировать захваченный трафик, то можно выявить причину таких сбоев и устранить их навсегда.
Одна из ключевых функций NTM – это точный анализ видео и VoIP в реальном времени, что необходимо для крупных операторов IP телефонии. С помощью Network Time Machine системный инженер может «поднять» из массива данных и восстановить любой звонок, сделанный абонентом или любое видео, транслируемое он-лайн.
Очень интересная функция – это анализ и расшифровка туннельного трафика, причем поддерживаются почти все основные протоколы. Нужно отметить, что большинство программных бесплатных и даже коммерческих снифферов не справляется с туннельным трафиком, что было отмечено специалистами по ИБ во время тестирования таких программ.
Компания Fluke Networks выпускает свой комплекс NTM как в портативном варианте, так и в виде сервера, монтируемого в стойку. Естественно, портативные варианты удобнее для работы в «полевых условиях», серверные подойдут для корпоративных сетей. Для консультации и выбора правильной конфигурации Network Time Machine всегда можно обратиться к нашим специалистам.
В заключении хочется отметить, что анализаторы трафика и производительности приложений имеют самый широкий спектр применения и выпускаются в различном исполнении и с большим набором функций. Линейка оборудования и софта компании Fluke Networks может удовлетворить запросы любой организации в сфере системного администрирования и проблем ИБ.
См. также:
- Все секреты захвата сетевого трафика, мониторинга производительности сетей и приложений
- TAP ответвители трафика и агрегаторы: что это такое и как выбрать?
- Анализаторы трафика, производительности сети и приложений
- BYOD: концепция, технологии и решения
Материал подготовлен
техническими специалистами компании “СвязКомплект”.
Источник: skomplekt.com
8 лучших программ для анализа сетевого трафика
Сниффинг пакетов — это разговорный термин, который относится к искусству анализа сетевого трафика. Вопреки распространенному мнению, такие вещи, как электронные письма и веб-страницы, не проходят через сеть интернет одним куском. Они разбиты на тысячи небольших пакетов данных и таким образом отправляются через интернет. В этой статье мы рассмотрим лучшие бесплатные анализаторы сети и снифферы пакетов.
Есть множество утилит, которые собирают сетевой трафик, и большинство из них используют pcap (в Unix-подобных системах) или libcap (в Windows) в качестве ядра. Другой вид утилит помогает анализировать эти данные, так как даже небольшой объем траффика может генерировать тысячи пакетов, в которых трудно ориентироваться. Почти все эти утилиты мало отличаются друг от друга в сборе данных, основные отличия заключаются в том, как они анализируют данные.
Анализ сетевого трафика требует понимания того, как работает сеть. Нет никакого инструмента, который бы волшебным образом заменил знания аналитика об основах работы сети, такие как «3-х этапное рукопожатие» TCP, которое используется для инициирования соединения между двумя устройствами.
Аналитики также должны иметь некоторое представление о типах сетевого трафика в нормально функционирующей сети, таких как ARP и DHCP. Это знание важно, потому что аналитические инструменты просто покажут вам то, о чем вы их попросите. Вам решать что нужно просить. Если вы не знаете, как обычно, выглядит ваша сеть, может быть сложно понять, что вы нашли то, что нужно, в массе собранных вами пакетов.
Лучшие снифферы пакетов и анализаторы сети
Промышленные инструменты
Начнем с вершины и далее спустимся к основам. Если вы имеете дело с сетью уровня предприятия, вам понадобится большая пушка. Хотя в основе почти все использует tcpdump (подробнее об этом позже), инструменты уровня предприятия могут решать определенные сложные проблемы, такие как корреляция трафика со множества серверов, предоставление интеллектуальных запросов для выявления проблем, предупреждение об исключениях и создание хороших графиков, чего всегда требует начальство.
Инструменты уровня предприятия, как правило, заточены на потоковую работу с сетевым трафиком, а не на оценку содержимого пакетов. Под этим я подразумеваю, что основное внимание большинства системных администраторов на предприятии заключается в том, чтобы сеть не имела узких мест в производительности. Когда такие узкие места возникают, цель обычно заключается в том, чтобы определить, вызвана ли проблема сетью или приложением в сети. С другой стороны, эти инструменты обычно могут обрабатывать такой большой трафик, что они могут помочь предсказать момент, когда сегмент сети будет полностью загружен, что является критическим моментом управления пропускной способностью сети.
1. SolarWinds
SolarWinds — это очень большой набор инструментов управления IT. В этой статье более уместна утилита Deep Packet Inspection and Analysis которая является его составной частью. Сбор сетевого трафика довольно прост. С использованием таких инструментов, как WireShark, базовый анализ также не является проблемой. Но не всегда ситуация полностью понятна. В очень загруженной сети может быть трудно определить даже очень простые вещи, например:
— какое приложение в сети создает этот трафик?
— если приложение известно (скажем, веб-браузер), где его пользователи проводят большую часть своего времени?
— какие соединения самые длинные и перегружают сеть?
Большинство сетевых устройств, чтобы убедиться, что пакет идет туда, куда нужно, используют метаданные каждого пакета. Содержимое пакета неизвестно сетевому устройству. Другое дело — глубокая инспекция пакетов; это означает, что проверяется фактическое содержимое пакета. Таким образом можно обнаружить критическую сетевую информацию, которую нельзя почерпнуть из метаданных. Инструменты, подобные тем, которые предоставляются SolarWinds, могут выдавать более значимые данные, чем просто поток трафика.
Другие технологии управления сетями с большим объемом данных включают NetFlow и sFlow. У каждой есть свои сильные и слабые стороны,
здесь вы можете узнать больше о NetFlow и sFlow.
Анализ сетей в целом является передовой темой, которая базируется как на основе полученных знаний, так и на основе практического опыта работы. Можно обучить человека детальным знаниям о сетевых пакетах, но если этот человек не обладает знаниями о самой сети, и не имеет опыта выявления аномалий, он не слишком преуспеет. Инструменты, описанные в этой статье, должны использоваться опытными сетевыми администраторами, которые знают, что они хотят, но не уверены в том, какая утилита лучше. Они также могут использоваться менее опытными системными администраторами, чтобы получить повседневный опыт работы с сетями.
Основы
2. tcpdump
Основным инструментом для сбора сетевого трафика является
tcpdump. Это приложение с открытым исходным кодом, которое устанавливается практически во всех Unix-подобных операционных системах. Tcpdump — отличная утилита для сбора данных, которая имеет очень сложный язык фильтрации. Важно знать, как фильтровать данные при их сборе, чтобы в итоге получить нормальный набор данных для анализа. Захват всех данных с сетевого устройства даже в умеренно загруженной сети может породить слишком много данных, которые будет очень трудно проанализировать.
В некоторых редких случаях достаточно будет выводить захваченные tcpdump данные прямо на экран, чтобы найти то, что вам нужно. Например, при написании этой статьи я собрал трафик и заметил, что моя машина отправляет трафик на IP-адрес, который я не знаю. Оказывается, моя машина отправляла данные на IP-адрес Google 172.217.11.142. Поскольку у меня не было никаких продуктов Google, и не был открыт Gmail, я не знал, почему это происходит. Я проверил свою систему и нашел следующее:
[ ~ ]$ ps -ef | grep google user 1985 1881 0 10:16 ? 00:00:00 /opt/google/chrome/chrome —type=service
Оказывыается, что даже когда Chrome не работает, он остается запущенным как служба. Я не заметил бы этого без анализа пакетов. Я перехватил еще несколько пакетов данных, но на этот раз дал tcpdump задачу записать данные в файл, который затем открыл в Wireshark (подробнее об этом позже). Вот эти записи:
Tcpdump — любимый инструмент системных администраторов, потому что это утилита командной строки. Для запуска tcpdump не требуется графический интерфейс. Для производственных серверов графический интерфейс скорее вреден, так как потребляет системные ресурсы, поэтому предпочтительны программы командной строки.
Как и многие современные утилиты, tcpdump имеет очень богатый и сложный язык, который требует некоторого времени для его освоения. Несколько самых базовых команд включают в себя выбор сетевого интерфейса для сбора данных и запись этих данных в файл, чтобы его можно было экспортировать для анализа в другом месте. Для этого используются переключатели -i и -w.
Эта команда создает файл с захваченными данными:
Стандартом для таких файлов является формат pcap. Он не является текстом, поэтому его можно анализировать только с помощью программ, которые понимают данный формат.
3. Windump
Большинство полезных утилит с открытым исходным кодом в конечном итоге клонируют в другие операционные системы. Когда это происходит, говорят, что приложение было перенесено. Windump — это порт tcpdump и ведет себя очень похожим образом.
Самое существенное различие между Windump и tcpdump заключается в том, что Windump нуждается в библиотеке Winpcap, установленной до запуска Windump. Несмотря на то, что Windump и Winpcap предоставляются одним и тем же майнтайнером, их нужно скачивать отдельно.
Winpcap — это библиотека, которая должна быть предварительно установлена. Но Windump — это exe-файл, который не нуждается в установке, поэтому его можно просто запускать. Это нужно иметь в виду, если вы используете сеть Windows. Вам не обязательно устанавливать Windump на каждой машине, поскольку вы можете просто копировать его по мере необходимости, но вам понадобится Winpcap для поддержки Windup.
Как и в случае с tcpdump, Windump может выводить сетевые данные на экран для анализа, фильтровать таким же образом, а также записывать данные в файл pcap для последующего анализа.
4. Wireshark
Wireshark является следующим самым известным инструментом в наборе системного администратора. Он позволяет не только захватывать данные, но также предоставляет некоторые расширенные инструменты анализа. Кроме того, Wireshark является программой с открытым исходным кодом и перенесен практически на все существующие серверные операционные системы. Под названием Etheral, Wireshark теперь работает везде, в том числе в качестве автономного переносимого приложения.
Если вы анализируете трафик на сервере с графическим интерфейсом, Wireshark может сделать все за вас. Он может собрать данные, а затем анализировать их все здесь же. Однако на серверах графический интерфейс встречается редко, поэтому вы можете собирать сетевые данные удаленно, а затем изучать полученный файл pcap в Wireshark на своем компьютере.
При первом запуске Wireshark позволяет либо загрузить существующий файл pcap, либо запустить захват трафика. В последнем случае вы можете дополнительно задать фильтры для уменьшения количества собираемых данных. Если вы не укажете фильтр, Wireshark будет просто собирать все сетевые данные с выбранного интерфейса.
Одной из самых полезных возможностей Wireshark является возможность следовать за потоком. Лучше всего представить поток как цепочку. На скриншоте ниже мы можем видеть множество захваченных данных, но меня больше всего интересовал IP-адрес Google. Я могу щелкнуть правой кнопкой мыши и следовать потоку TCP, чтобы увидеть всю цепочку.
Если захват трафика производился на другом компьютере, вы можете импортировать файл PCAP с помощью диалога Wireshark File -> Open. Для импортированных файлов доступны те же фильтры и инструменты, что и для захваченных сетевых данных.
5. tshark
Tshark — это очень полезное звено между tcpdump и Wireshark. Tcpdump превосходит их при сборе данных и может хирургически извлекать только те данные, которые вам нужны, однако его возможности анализа данных очень ограничены. Wireshark отлично справляется как с захватом, так и с анализом, но имеет тяжелый пользовательский интерфейс и не может использоваться на серверах без графического интерфейса. Попробуйте tshark, он работает в командной строке.
Tshark использует те же правила фильтрации, что и Wireshark, что не должно удивлять, так как они по сути являются одним и тем же продуктом. Приведенная ниже команда говорит tshark только о том, что необходимо захватить IP-адрес пункта назначения, а также некоторые другие интересующие нас поля из HTTP-части пакета.
Если вы хотите записать трафик в файл, используйте для этого параметр-W, а затем переключатель -r (чтение), чтобы прочитать его.
# tshark -i eth0 -w tshark_packets Capturing on ‘eth0’ 102 ^C
Прочитайте его здесь же, или перенесите в другое место для анализа.
6. Network Miner
Network Miner — это очень интересный инструмент, который скорее попадает в категорию инструментов сетевого криминалистического анализа, а не просто снифферов. Сфера криминалистики, как правило, занимается расследованиями и сбором доказательств, и Network Miner выполняет эту работу просто отлично. Также, как wireshark может следовать потоку TCP, чтобы восстановить всю цепочку передачи паков, Network Miner может следовать потоку для того, чтобы восстановить файлы, которые были переданы по сети.
Network Miner может быть стратегически размещен в сети, чтобы иметь возможность наблюдать и собирать трафик, который вас интересует, в режиме реального времени. Он не будет генерировать свой собственный трафик в сети, поэтому будет работать скрытно.
Network Miner также может работать в автономном режиме. Вы можете использовать tcpdump, чтобы собрать пакеты в интересующей вас точке сети, а затем импортировать файлы PCAP в Network Miner. Далее можно будет попробовать восстановить какие-либо файлы или сертификаты, найденные в записанном файле.
Network Miner сделан для Windows, но с помощью Mono он может быть запущен в любой ОС, которая поддерживает платформу Mono, например Linux и MacOS.
Есть бесплатная версия, начального уровня, но с приличным набором функций. Если вам нужны дополнительные возможности, такие как геолокация и пользовательские сценарии, потребуется приобрести профессиональную лицензию.
7. Fiddler (HTTP)
Fiddler технически не является утилитой для захвата сетевых пакетов, но он так невероятно полезен, что попал в этот список. В отличие от других перечисленных здесь инструментов, которые предназначены для захвата трафика в сети из любого источника, Fiddler скорее служит инструментом отладки. Он захватывает HTTP трафик. Хотя многие браузеры уже имеют эту возможность в своих средствах разработчика, Fiddler не ограничивается трафиком браузера. Fiddler может захватить любой HTTP-трафик на компьютере, в том числе и не из веб-приложений.
Многие настольные приложения используют HTTP для подключения к веб-службам, и помимо Fiddler, единственным способом захвата такого трафика для анализа является использование таких инструментов, как tcpdump или Wireshark. Однако они работают на уровне пакетов, поэтому для анализа необходимо реконструировать этии пакеты в потоки HTTP. Это может потребовать много работы для выполнения простых исследований и здесь на помощь приходит Fiddler. Fiddler поможет обнаружить куки, сертификаты, и прочие полезные данные, отправляемые приложениями.
Fiddler является бесплатным и, так же, как Network Miner, он может быть запущен в Mono практически на любой операционной системе.
8. Capsa
Анализатор сети Capsa имеет несколько редакций, каждая из которых имеет различные возможности. На первом уровне Capsa бесплатна, и она по существу позволяет просто захватывает пакеты и производить их базовый графический анализ. Панель мониторинга уникальна и может помочь неопытному системному администратору быстро определить проблемы в сети. Бесплатный уровень предназначен для людей, которые хотят узнать больше о пакетах, и наращивать свои навыки в анализе.
Бесплатная версия позволяет контролировать более 300 протоколов, подходит для мониторинга электронной почты, а также сохранения содержимого электронной почты, она также поддерживает триггеры, которые могут использоваться для включения оповещений при возникновении определенных ситуаций. В связи с этим Capsa в какой-то степени может использоваться в качестве средства поддержки.
Capsa доступна только для Windows 2008/Vista/7/8 и 10.
Несложно понять, как с помощью описанных нами инструментов системный администратор может создать инфраструктуру мониторинга сети. Tcpdump или Windump могут быть установлены на всех серверах. Планировщик, такой как cron или планировщик Windows, в нужный момент запускает сеанса сбора пакетов и записывает собранные данные в файл pcap. Далее системный администратор может передать эти пакеты центральной машине и анализировать их с помощью wireshark. Если сеть слишком велика для этого, имеются инструменты корпоративного уровня, такие как SolarWinds, чтобы превратить все сетевые пакеты в управляемый набор данных.
Источник: linuxthebest.net
Принципы организации учёта IP-трафика
Любой администратор рано или поздно получает инструкцию от руководства: «посчитать, кто ходит в сеть, и сколько качает». Для провайдеров она дополняется задачами «пустить кого надо, взять оплату, ограничить доступ». Что считать? Как? Где?
Отрывочных сведений много, они не структурированы. Избавим начинающего админа от утомительных поисков, снабдив его общими знаниями, и полезными ссылками на матчасть.
В данной статье я постараюсь описать принципы организации сбора, учёта и контроля трафика в сети. Мы рассмотрим проблематику вопроса, и перечислим возможные способы съема информации с сетевых устройств.
Это первая теоретическая статья из цикла статей, посвящённого сбору, учёту, управлению и биллингу трафика и IT-ресурсов.
Структура доступа в сеть Интернет
В общем случае, структура доступа в сеть выглядит следующим образом:
- Внешние ресурсы – сеть Интернет, со всеми сайтами, серверами, адресами и прочим, что не принадлежит сети, которую вы контролируете.
- Устройство доступа – маршрутизатор (аппаратный, или на базе PC), коммутатор, VPN-сервер или концентратор.
- Внутренние ресурсы – набор компьютеров, подсетей, абонентов, работу которых в сети необходимо учитывать или контролировать.
- Сервер управления или учёта – устройство, на котором работает специализированное программное обеспечение. Может быть функционально совмещён с программным маршрутизатором.
Сетевой трафик
Для передачи IP-пакета по проводам (или радио) сетевые устройства вынуждены «оборачивать» (инкапсулировать) его в пакет протокола 2го уровня (L2). Самым распространенным протоколом такого типа является Ethernet. Фактическая передача «в провод» идет на 1м уровне. Обычно, устройство доступа (маршрутизатор) не занимается анализом заголовков пакетов на уровне, выше 4го (исключение – интеллектуальные межсетевые экраны).
Информация из полей адресов, портов, протоколов и счетчики длин из L3 и L4 заголовков пакетов данных и составляет тот «исходный материал», который используется при учёте и управлении трафиком. Собственно объем передаваемой информации находится в поле Length («Длина пакета») заголовка IP (включая длину самого заголовка). Кстати, из-за фрагментации пакетов вследствие механизма MTU общий объем передаваемых данных всегда больше размера полезной нагрузки.
Суммарная длина интересных нам в данном контексте IP- и TCP/UDP- полей пакета составляет 2. 10% общей длины пакета. Если обрабатывать и хранить всю эту информацию попакетно, не хватит никаких ресурсов. К счастью, подавляющий объем трафика структурирован так, что состоит из набора «диалогов» между внешними и внутренними сетевыми устройствами, так называемых «потоков».
Например, в рамках одной операции пересылки электронного письма (протокол SMTP) открывается 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-пакеты не содержат информации о внутренних хостах сети. Однако при таком способе невозможно учесть трафик, создаваемый самим сервером в сети Интернет (что важно, если на нем работают веб– или почтовый сервис).
- открыть необходимый интерфейс
- указать фильтр, через который пропускать принятые пакеты, размер захватываемой части (snaplen), размер буфера,
- задать параметр promisc, который переводит сетевой интерфейс в режим захвата вообще всех проходящих мимо пакетов, а не только адресованных MAC-адресу этого интерфейса
- установить функцию (callback), вызываемую на каждый принятый пакет.
При передаче пакета через выбранный интерфейс, после прохождения фильтра эта функция получает буфер, содержащий Ethernet, (VLAN), IP и т.д. заголовки, общим размером до snaplen. Поскольку библиотека libcap копирует пакеты, заблокировать их прохождение при ее помощи невозможно. В таком случае программе сбора и обработки трафика придется использовать альтернативные методы, например вызов скрипта для помещения заданного IP-адреса в правило блокировки трафика.
Межсетевой экран
- Пользовательская программа — обработчик трафика регистрирует себя в системе, используя системный вызов, или библиотеку.
- Пользовательская программа или внешний скрипт устанавливает правило в межсетевой экран, “заворачивающее” выбранный трафик (согласно правилу) вовнутрь обработчика.
- На каждый проходящий пакет обработчик получает его содержимое в виде буфера памяти (с заголовками 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 “снаружи”
- 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
- блокировка трафика может производиться только путем полного отключения интерфейса, при помощи того же 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-сессии, в том числе счетчики переданных байт и пакетов.
Заключение
Сведем все описанные выше методы сбора информации о трафике воедино:
- как и куда попадают собранные данные о трафике
- программное обеспечение для учета трафика
- чем отличается биллинг от простой “считалки”
- как можно накладывать ограничение на трафик
- учёт и ограничение посещенных веб-сайтов
Источник: habr.com