Можно ли проанализировать сетевой трафик сети vpn. Как скрыть ваш трафик OpenVPN. Как защититься от утечки VPN-трафика

Прочие модели 02.07.2020
Прочие модели

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

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

  • Если пользователь открывает определенный сайт, то видно ли это провайдеру?. Да, в большинстве случаев видно именно доменное имя, редко — просто IP-адрес. Также записывается и время, когда вы заходили на сайт. Содержимое сайтов также видно
  • А если я захожу на сайт по защищенному протоколу https? Тогда провайдер видит только имя сайта или его IP-адрес и все, содержимое он не видит, так как https это защищенное соединение шифрованием, поэтому и рекомендуется его использовать.
  • Как провайдер может просечь что я скачал фильм или программу через торрент? Все дело в том, что торрент-качалкя общается с торрентр-трекером по протоколу HTTP, поэтому увидеть провайдер может все что вы качали (просто при помощи анализа страницы, откуда был скачан.torrent-файл) и когда (начали/закончили). Возможно подключение и по HTTPS, но почему-то даже крупнейший торрент СНГ не поддерживает такой протокол, но вот почему — загадка.
  • Провайдер сохраняет все то что я качаю? Нет, это физически просто невозможно, не хватило бы никаких жестких дисков. Трафик на лету обрабатывается, сортируется и ведется статистика, вот как раз она то и складируется годами.
  • Может ли провайдер узнать что я скачал.torrent файл? Да, может, именно это они и стараются отслеживать — взаимодействие между торрент-клиентом и сервером, анализировать трафик внутри торрент-сети они не могут, ибо это очень и очень накладно.
  • А если я использую VPN, то провайдер ничего не видит? Тут как раз штука такая, что при VPN таки да, провайдер видит кашу — то есть зашифрованные данные и анализировать их, а уж тем более расшифровать он не станет, ибо это почти нереально. Но вот узнать по IP серверам, что это VPN специально для шифрования трафика — он может. Это означает, что пользователю есть что скрывать, делайте выводы сами
  • Если я буду использовать OpenVPN, то через него будет работать все программы в том числе и обновление Windows? В теории да, и вообще так должно быть. Но на практике все зависит от настроек.
  • Может ли провайдер узнать реальный IP адрес определенного сайта, если я зашел на него через VPN? Вообще-то нет, но тут есть другой момент. Если вдруг VPN перестанет работать, или если какая-то ошибка, то Windows просто начнет работать в обычном режиме, то есть без использования VPN — просто напрямую. Чтобы это исправить, во-первых нужно настроить сам OpenVPN, а во-вторых использовать дополнительно фаервол (рекомендую Outpost Firewall), в котором можно создать глобальные правила движения трафика.
  • То есть если VPN глюканул, провайдер увидит на каком сайте я сижу? К сожалению да, при этом автоматически будет все записано.
  • Может ли TOR обеспечить анонимность? Может, но желательно его немного настроить на использование IP-адресов все кроме СНГ, а также чтобы адреса менялись чаще, например каждые три минуты. Также для лучшего эффекта советую использовать ретрансляторы (мосты).
  • Что видит провайдер, когда я получаю пакеты с постоянно разных IP аресов? У провайдеров есть система обнаружения использования TOR, но, я не уверен работает ли эта система при наличии ретрансляторов. Факт использования TOR также записывается и также говорит провайдеру о том, что этот пользователь может что-то скрывать
  • Видит ли провайдер адрес сайта через Tor или VPN? Нет, только IP-адрес VPN или выходной узел Tor.
  • Видно ли провайдеру полное имя адреса при использовании HTTPS-протокола? Нет, видно только адрес домена (то есть только site.com), время подключения и переданный обьем. Но эти данные не особо полезны для провайдера в плане инфы. Если использовать HTTP, то видно все что передается — и полный адрес и все что вы написали/отправили в сообщение по почте например, но опять же, вот к Gmail это не относится — там трафик шифруется.
  • То есть если я использую шифрование соединения, то я уже могу быть в списке подозреваемых? Нет, не совсем так. С одной стороны — да, но с другой шифрование данных а то и глобальное шифрование всей сети могут использовать не только какие-то хакеры или пользователи — но и простые организации, которые обеспокоены безопасной передачей данных, что и логично, особенно в банковской сфере.
  • Видит ли провайдер факт использования I2P? Видит, но пока этот вид сети мало знакома провайдерам так, как например Tor, который из-за своей популярности привлекает все больше внимания со стороны спецслужб. Трафик I2P провайдер видит как шифрованные подключения к разным IP-адресам, что говорит о том, что клиент работает с P2P сетью.
  • Как узнать, нахожусь ли я под СОРМ? Расшифровывается эта аббревиатура так — Система технических возможностей для оперативно-розыскных мероприятий. И если вы подключены к интернету в РФ, то вы уже пол умолчанию под надзором. При это эта система полностью официальная и трафик обязан проходить через нее, иначе у провайдеров интернета и операторов связи просто аннулируют лицензию.
  • Как увидеть весь трафик на компе так, как его видят провайдеры? В этом вам поможет утилита для сниффинга трафика, лучшая в своем роде это анализатор Wireshark.
  • Можно ли как то понять, что за тобой следят? На сегодняшний почти нет, иногда, возможно при активной атаке типа MitM (Man in the middle). Если применяется пассивная слежка, то обнаружить ее нереально чисто технически.
  • Но что делать тогда, можно ли как-то затруднить слежку? Можно разделить интернет, то есть ваше подключение к нему, на две части. Сидите в соцсетях, на сайтах знакомств, смотрите развлекательные сайты, фильмы, все это делайте по обычному подключению. А зашифрованное соединение используйте отдельно и при этом параллельно — например установите для этого виртуальную машину. Таким образом у вас будет более-менее естественная среда так бы сказать, ибо, шифруют трафик многие сайты, и Google в своих сервисах, и другие крупные компании. Но с другой стороны, почти все развлекательные сайты трафик НЕ шифруют. То есть это норма — когда и открытый и зашифрованный трафик есть у пользователя. Другое дело, когда провайдер видит, что у пользователя трафик только зашифрован, конечно тут могут возникнуть вопросы.

Надеюсь, что вы нашли некоторые полезные ответы

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

Как за тобой следят

Провайдеры в РФ обязаны анализировать трафик пользователей на соответствие нормам российского законодательства. В частности, п. 1.1 Федеральный закон от 07.07.2003 N 126-ФЗ (ред. от 05.12.2017) «О связи» гласит :

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

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

Анализ основной информации ведётся в автоматическом режиме. Обычно трафик выбранного пользователя зеркалируется на СОРМ-сервера (средства оперативно-розыскных мероприятий), которые контролируют МВД, ФСБ и др., и анализ проводится уже там.

Составной частью современных систем СОРМ-2 является циклический буфер хранения данных. В нём должен храниться проходящий через провайдера трафик за последние 12 часов. С 2014 года внедряется СОРМ-3. Её главное отличие – дополнительное хранилище, в которое должен складываться трехлетний архив всего биллинга и всех логов соединений.

Как читают трафик с помощью DPI

Пример схемы от VAS Expert

В составе СОРМ либо отдельно могут использоваться DPI (Deep Packet Inspection). Это системы (обычно программно-аппаратные комплексы – железо со специальным ПО), которые работают на всех, кроме первого (физического, битового), уровнях сетевой модели OSI.

В простейшем случае провайдеры используют DPI для контроля доступа к ресурсам (в частности, к страницам сайтов из «черного» списка Роскомнадзора по ФЗ № 139 о внесении изменений в закон «О защите детей от информации, причиняющей вред их здоровью и развитию» или торрентам). Но, вообще говоря, решение могут применить и для чтения вашего трафика.

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

DPI без проблем разбирает содержимое, которое передаётся по незашифрованным протоколам HTTP, FTP.

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

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

В любом случае провайдеры не проверяют всех подряд

Это слишком затратно. А вот мониторить чей-то трафик по запросу теоретически могут.

То, что отметила система (или товарищ майор), обычно исследуется вручную. Но чаще всего никакого СОРМ у провайдера (особенно если это мелкий провайдер) нет. Всё ищется и находится рядовыми сотрудниками в базе данных с логами.

Как отслеживают торренты

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

Сидеров найти труднее. Чаще всего в таких случаях специалисты сами становятся пирами. Зная IP-адрес сидера, пир может направить провайдеру уведомление с именем раздачи, её адресом, временем начала раздачи, собственно, IP-адресом сидера и т.д.

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

Что происходит, когда вы заходите на сайт

Провайдер видит URL, который вы открыли, если анализирует содержимое пакетов, которые вам приходят. Сделать это можно, к примеру, с помощью MITM-атаки (атака “man-in-the-middle”, человек посередине).

Из содержимого пакетов можно получить историю поиска, проанализировать историю запросов, даже прочитать переписку и логины с паролями. Если, конечно, сайт использует для авторизации нешифрованное HTTP-соединение. К счастью, такое встречается всё реже.

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

Что насчёт MAC-адреса

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

Но MAC-адреса на многих роутерах можно подменять вручную. Да и на компьютерах MAC-адрес сетевого адаптера устанавливается вручную. Так что если сделать это до первой авторизации (или поменять позднее и попросить перепривязать аккаунт к новому MAC-адресу), истинный MAC-адрес провайдер видеть не будет.

Что происходит, если у вас включен VPN

Если вы используете VPN, то провайдер видит, что шифрованный трафик (с высоким коэффициентом энтропии) отправляется на определённый IP-адрес. Кроме того, он может узнать, что IP-адреса из этого диапазона продаются под VPN-сервисы.

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

Бывает, что внезапно VPN «отваливается» – такое может произойти в любой момент и в любой операционной системе. После того, как VPN прекратил работу, трафик автоматически начинает идти открыто, и провайдер может его анализировать.

Важно, что даже если анализ трафика показывает, что слишком большой объём пакетов постоянно идёт на IP-адрес, который потенциально может принадлежать VPN, вы ничего не нарушите. Пользоваться VPN в России не запрещено – запрещено предоставлять такие услуги для обхода сайтов из «чёрного списка» Роскомнадзора.

Что происходит, когда вы включаете Tor

Когда вы подключаетесь через Tor, провайдер также видит зашифрованный трафик. И расшифровать, что вы делаете в интернете в данный момент, он не сможет.

В отличие от VPN, где трафик обычно направляется на один и тот же сервер в течение большого промежутка времени, Tor автоматически меняет IP-адреса. Соответственно, провайдер может определить, что вы, вероятно, пользовались Tor, по шифрованному трафику и частой смене адресов, а затем отразить это в логах. Но по закону вам за это тоже ничего не будет.

При этом вашим IP-адресом в сети Tor кто-то может воспользоваться, только если вы сконфигурировали Exit Node в настройках.

А как насчёт режима «инкогнито»

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

В режиме «инкогнито» не сохраняются файлы cookie, данные сайтов и история просмотров. Однако ваши действия видят провайдер, системный администратор и веб-сайты, на которые вы заходите.

Но есть и хорошая новость

Провайдер знает о вас многое, если не всё. Однако бюджет мелких компаний не позволяет купить оборудование DPI, установить СОРМ или настроить эффективную систему мониторинга.

Если совершать легальные действия в интернете открыто, а для действий, предполагающих конфиденциальность, пользоваться VPN, Tor или другими средствами обеспечения анонимности, вероятность «попасть на карандаш» к провайдеру и спецслужбам минимальна. Но 100% гарантию дают только 100% легальные действия.

Сегодня по всему миру появляется все больше различных ограничений в сети Интернет. Правительства озабочены использованием OpenVPN и нам приходится обходить их и искать способы подключать сервисы как обычно. Великий Китайский Файрвол, к примеру, блокирует некоторые VPN-сети, как в самом Китае, так и за его пределами.

Конечно же, данные, проходящие по VPN-тунелям увидеть невозможно. Однако сложные брандмауэры эффективно используют DPI-техники, позволяющие дешифровать пакеты, даже те, при шифровании которых использовалось SSL-шифрование.

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

Переадресация через TCP порт 443

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

Помните, что по умолчанию VPN использует TCP порт 80. Обычно брандмауэры проверяют порт 80 и не пропускают зашифрованный трафик через него. HTTPS по умолчанию перенаправляет данные через порт 443. Этот порт также используется веб-гигантами, такими, как Twitter, Gmail, также с ним работают банки и другие ресурсы.

OpenVPN использует SSL-шифрование, как и HTTPS, и его достаточно сложно засечь при использовании порта 443. Блокирование его не позволит использовать интернет, так что оно не подходит интернет-цензорам.

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

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

Obfsproxy

Сервер шифрует данные при помощи обфускации, запутывает код и не позволяет определить использование OpenVPN. Эта стратегия используется Tor, чтобы обойти блокировки в Китае. Шифрование доступно для OpenVPN

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

SSL туннелирование для OpenVPN

Протокол защиты сокетов (SSL) может быть использован как эффективная замена OpenVPN. Многие прокси-сервера используют его для защиты подключения. Кроме того, этот протокол полностью скрывает использование VPN. Поскольку OpenVPN основывается на шифровании TLS или SSL, этот протокол сильно отличается от стандартных каналов SSL и его нетрудно обнаружить при помощи глубинного анализа пакетов. Чтобы избежать этого, можно добавить дополнительный уровень шифрования, так как самостоятельные слои SSL-каналов DPI не распознает.

Заключение

Конечно же, без глубинного анализа, OpenVPN не отличается от стандартного трафика SSL. Защиту можно повысить путем переадресации через порт 443. Однако, в таких странах, как Китай или Иран, этого будет недостаточно. Правительства таких стран разработали сложные комплексы мер по отслеживанию интернет-трафика. Обязательно учитывайте эти факторы, чтобы избежать лишних неприятностей.

Первое, что приходит в голову при упоминании VPN, - это анонимность и защищенность передаваемых данных. Так ли это на самом деле? Давай разберемся.

Когда необходимо получить доступ к корпоративной сети, безопасно передать важную информацию по открытым каналам связи, скрыть свой трафик от бдительного взора провайдера, скрыть свое реальное местоположение при проведении каких-либо не совсем законных (или совсем не законных) действий, обычно прибегают к использованию VPN. Но стоит ли слепо полагаться на VPN, ставя на кон безопасность своих данных и собственную безопасность? Однозначно - нет. Почему? Давай разбираться.

WARNING

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

VPN нам нужен!

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

Утечка VPN-трафика

Первая проблема, связанная с виртуальными частными сетями, - это утечка трафика. То есть тот трафик, который должен быть передан через VPN-соединение в зашифрованном виде, попадает в сеть в открытом виде. Данный сценарий не является следствием ошибки в VPN-сервере или клиенте. Здесь все гораздо интереснее. Самый простой вариант - внезапный разрыв VPN-соединения. Ты решил просканировать хост или подсеть с помощью Nmap, запустил сканер, отошел на несколько минут от монитора, и тут VPN-соединение внезапно отвалилось. Но сканер при этом продолжает работать. И сканирование идет уже с твоего адреса. Вот такая неприятная ситуация. Но есть сценарии и интересней. Например, утечка VPN-трафика широко распространена в сетях (на хостах), поддерживающих обе версии протокола IP (так называемые dual-stacked сети/хосты).

Корень зла

Сосуществование двух протоколов - IPv4 и IPv6 - имеет множество интересных и тонких аспектов, которые могут приводить к неожиданным последствиям. Несмотря на то что шестая версия протокола IP не имеет обратной совместимости с четвертой версией, обе эти версии как бы «склеены» вместе системой доменных имен (DNS). Чтобы было понятней, о чем идет речь, давай рассмотрим простенький пример. Например, возьмем сайт (скажем, www.example.com), который имеет поддержку IPv4 и IPv6. Соответствующее ему доменное имя (www.example.com в нашем случае) будет содержать DNS-записи обоих типов: А и АААА. Каждая А-запись содержит один IPv4-адрес, а каждая АААА-запись содержит один IPv6-адрес. Причем для одного доменного имени может быть по несколько записей обоих типов. Таким образом, когда приложение, поддерживающее оба протокола, захочет взаимодействовать с сайтом, оно может запросить любой из доступных адресов. Предпочитаемое семейство адресов (IPv4 или IPv6) и конечный адрес, который будет использоваться приложением (учитывая, что их существует несколько для четвертой и шестой версий), будет отличаться от одной реализации протокола к другой.

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

VPN и двойной стек протоколов

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

Основная причина проблемы кроется в том, что, хотя IPv4 и IPv6 - два разных протокола, несовместимых друг с другом, они тесно используются в системе доменных имен. Таким образом, для системы, поддерживающей оба стека протоколов, невозможно обеспечить безопасность соединения с другой системой, не обеспечив безопасность обоих протоколов (IPv6 и IPv4).

Легитимный сценарий утечки VPN-трафика

Рассмотрим хост, который поддерживает оба стека протоколов, использует VPN-клиент (работающий только с IPv4-трафиком) для подключения к VPN-серверу и подключен к dual-stacked сети. Если какому-то приложению на хосте нужно взаимодействовать с dual-stacked узлом, клиент обычно запрашивает и А-, и АААА-DNS-записи. Так как хост поддерживает оба протокола, а удаленный узел будет иметь оба типа DNS-записей (А и АААА), то одним из вероятных вариантов развития событий будет использование для связи между ними IPv6-протокола. А так как VPN-клиент не поддерживает шестую версию протокола, то IPv6-трафик не будет отправляться через VPN-соединение, а будет отправляться в открытом виде через локальную сеть.

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

Преднамеренно вызываем утечку VPN-трафика

Атакующий может преднамеренно вызвать подключение по протоколу IPv6 на компьютере жертвы, посылая поддельные ICMPv6 Router Advertisement сообщения. Подобные пакеты можно рассылать при помощи таких утилит, как rtadvd , SI6 Networks" IPv6 Toolkit или THC-IPv6 . Как только соединение по протоколу IPv6 установлено, «общение» с системой, поддерживающей оба стека протоколов, может вылиться, как рассмотрено выше, в утечку VPN-трафика.

И хотя данная атака может быть достаточно плодотворной (из-за растущего числа сайтов, поддерживающих IPv6), она приведет к утечке трафика, только когда получатель поддерживает обе версии протокола IP. Однако для злоумышленника не составит труда вызвать утечки трафика и для любого получателя (dual-stacked или нет). Рассылая поддельные Router Advertisement сообщения, содержащие соответствующую RDNSS-опцию, атакующий может прикинуться локальным рекурсивным DNS-сервером, затем провести DNS-спуфинг, чтобы осуществить атаку man-in-the-middle и перехватить соответствующий трафик. Как и в предыдущем случае, такие инструменты, как SI6-Toolkit и THC-IPv6, могут легко провернуть такой трюк.

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

  1. Если VPN-клиент сконфигурирован таким образом, чтобы отправлять весь IPv4-трафик через VPN-соединение, то:
  • если IPv6 VPN-клиентом не поддерживается - отключить поддержку шестой версии протокола IP на всех сетевых интерфейсах. Таким образом, у приложений, запущенных на компьютере, не будет другого выбора, как использовать IPv4;
  • если IPv6 поддерживается - убедиться, что весь IPv6-трафик также отправляется через VPN.
  1. Чтобы избежать утечки трафика, в случае если VPN-соединение внезапно отвалится и все пакеты будут отправляться через default gateway, можно:
  2. принудительно заставить весь трафик идти через VPN route delete 0.0.0.0 192.168.1.1 // удаляем default gateway route add 83.170.76.128 mask 255.255.255.255 192.168.1.1 metric 1
  • воспользоваться утилитой VPNetMon , которая отслеживает состояние VPN-соединения и, как только оно пропадает, мгновенно завершает указанные пользователем приложения (например, торрент-клиенты, веб-браузеры, сканеры);
  • или утилитой VPNCheck , которая в зависимости от выбора пользователя может либо полностью отключить сетевую карту, либо просто завершить указанные приложения.
  1. Проверить, уязвима ли твоя машина к утечке DNS-трафика, можно на сайте , после чего применить советы, как пофиксить утечку, описанные .

Расшифровка VPN-трафика

Даже если ты все настроил правильно и твой VPN-трафик не утекает в сеть в открытом виде - это еще не повод расслабляться. Все дело в том, что если кто-то перехватит зашифрованные данные, передаваемые через VPN-соединение, то он сможет их расшифровать. Причем на это никак не влияет, сложный у тебя пароль или простой. Если ты используешь VPN-соединение на базе протокола PPTP, то со стопроцентной уверенностью можно сказать, что весь перехваченный зашифрованный трафик можно расшифровать.

Ахиллесова пята

При VPN-соединениях на базе протокола PPTP (Point-to-Point Tunneling Protocol) аутентификация пользователей проводится по протоколу MS-CHAPv2, разработанному компанией Microsoft. Несмотря на то что MS-CHAPv2 устарел и очень часто становится предметом критики, его продолжают активно использовать. Чтобы окончательно отправить его на свалку истории, за дело взялся известный исследователь Мокси Марлинспайк, который на двадцатой конференции DEF CON отчитался, что поставленная цель достигнута - протокол взломан. Надо сказать, что безопасностью этого протокола озадачивались и ранее, но столь долгое использование MS-CHAPv2, возможно, связано с тем, что многие исследователи концентрировались только на его уязвимости к атакам по словарю. Ограниченность исследований и широкое число поддерживаемых клиентов, встроенная поддержка операционными системами - все это обеспечило протоколу MS-CHAPv2 широкое распространение. Для нас же проблема кроется в том, что MS-CHAPv2 применяется в протоколе PPTP, который используется многими VPN-сервисами (например, такими крупными, как анонимный VPN-сервис IPredator и The Pirate Bay’s VPN).

Если обратиться к истории, то уже в 1999 году в своем исследовании протокола PPTP Брюс Шнайер указал, что «Microsoft улучшил PPTP, исправив основные изъяны безопасности. Однако фундаментальная слабость аутентификации и шифрования протокола в том, что он безопасен настолько, насколько безопасен выбранный пользователем пароль». Это почему-то заставило провайдеров поверить, что ничего страшного в PPTP нет и если требовать от пользователя придумывать сложные пароли, то передаваемые данные будут в безопасности. Сервис Riseup.net настолько проникся этой идеей, что решил самостоятельно генерировать для пользователей пароли длиной в 21 символ, не давая им возможности установить свои. Но даже такая жесткая мера не спасает от расшифровки трафика. Чтобы понять почему, давай поближе познакомимся с протоколом MS-CHAPv2 и посмотрим, как же Мокси Марлинспайк сумел его взломать.

Протокол MS-CHAPv2

Как уже было сказано, MSCHAPv2 применяется для аутентификации пользователей. Происходит она в несколько этапов:

  • клиент посылает запрос на аутентификацию серверу, открыто передавая свой login;
  • сервер возвращает клиенту 16-байтовый случайный отклик (Authenticator Challenge);
  • клиент генерирует 16-байтовый PAC (Peer Authenticator Challenge - равный отклик аутентификации);
  • клиент объединяет PAC, отклик сервера и свое user name в одну строку;
  • с полученной строки снимается 8-байтовый хеш по алгоритму SHA-1 и посылается серверу;
  • сервер извлекает из своей базы хеш данного клиента и расшифровывает его ответ;
  • если результат расшифровки совпадет с исходным откликом, все ОK, и наоборот;
  • впоследствии сервер берет PAC клиента и на основе хеша генерирует 20-байтовый AR (Authenticator Response - аутентификационный ответ), передавая его клиенту;
  • клиент проделывает ту же самую операцию и сравнивает полученный AR с ответом сервера;
  • если все совпадает, клиент аутентифицируется сервером. На рисунке представлена наглядная схема работы протокола.

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


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


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

Имея на руках перехваченный трафик, можно попробовать его расшифровать. Есть несколько инструментов (например, asleap), которые позволяют подобрать пароль пользователя через атаку по словарю. Недостаток этих инструментов в том, что они не дают стопроцентной гарантии результата, а успех напрямую зависит от выбранного словаря. Подбирать же пароль простым брутфорсом тоже не очень эффективно - например, в случае с PPTP VPN сервисом riseup.net, который принудительно устанавливает пароли длиной в 21 символ, придется перебирать 96 вариантов символа для каждого из 21 символов. Это в результате дает 96^21 вариантов, что чуть больше, чем 2^138. Иными словами, надо подобрать 138-битный ключ. В ситуации же, когда длина пароля неизвестна, имеет смысл подбирать MD4-хеш пароля. Учитывая, что его длина равна 128 бит, получаем 2^128 вариантов - на данный момент это просто нереально вычислить.

Разделяй и властвуй

MD4-хеш пароля используется в качестве входных данных для трех DES-операций. DES-ключи имеют длину 7 байт, так что каждая DES-операция использует 7-байтовый фрагмент MD4-хеша. Все это оставляет возможность для классической атаки divide and conquer. Вместо того чтобы полностью брутить MD4-хеш (а это, как ты помнишь, 2^128 вариантов), мы можем подбирать его по частям в 7 байт. Так как используются три DES-операции и каждая DES-операция абсолютно независима от других, это дает общую сложность подбора, равную 2^56 + 2^56 + 2^56, или 2^57.59. Это уже значительно лучше, чем 2^138 и 2^128, но все еще слишком большое число вариантов. Хотя, как ты мог заметить, в эти вычисления закралась ошибка. В алгоритме используются три DES-ключа, каждый размером в 7 байт, то есть всего 21 байт. Эти ключи берутся из MD4-хеша пароля, длина которого всего 16 байт.

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


Так как третий ключ имеет эффективную длину всего лишь два байта, то есть 2^16 вариантов, его подбор занимает считаные секунды, доказывая эффективность атаки divide and conquer. Итак, можно считать, что последние два байта хеша известны, остается подобрать оставшиеся 14. Также разделив их на две части по 7 байт, имеем общее число вариантов для перебора, равное 2^56 + 2^56 = 2^57. Все еще слишком много, но уже значительно лучше. Обрати внимание, что оставшиеся DES-операции шифруют один и тот же текст, только при помощи разных ключей. Можно записать алгоритм перебора следующим образом:

Но так как текст шифруется один и тот же, то правильнее сделать вот так:

То есть получается 2^56 вариантов ключей для перебора. А это значит, что безопасность MS-CHAPv2 может быть сведена к стойкости одного DES-шифрования.

Взлом DES

Теперь, когда диапазон подбора ключа известен, для успешного завершения атаки дело остается только за вычислительными мощностями. В 1998 году Electronic Frontier Foundation построила машину Deep Crack, которая стоила 250 тысяч долларов и позволяла взламывать DES-ключ в среднем за четыре с половиной дня. В настоящее время Pico Computing, специализирующаяся на построении FPGA-оборудования для криптографических приложений, построила FPGA-устройство (DES cracking box), которое реализует DES как конвейер с одной DES-операцией на каждый тактовый цикл. Обладая 40 ядрами по 450 МГц, оно позволяет перебирать 18 миллиардов ключей в секунду. Обладая такой скоростью перебора, DES cracking box в худшем случае взламывает ключ DES за 23 часа, а в среднем за полдня. Данная чудо-машина доступна через коммерческий веб-сервис loudcracker.com . Так что теперь можно взломать любой MS-CHAPv2 handshake меньше, чем за день. А имея на руках хеш пароля, можно аутентифицироваться от имени этого пользователя на VPN-сервисе или просто расшифровывать его трафик.

Для автоматизации работы с сервисом и обработки перехваченного трафика Мокси выложил в открытый доступ утилиту chapcrack. Она парсит перехваченный сетевой трафик, ища MS-CHAPv2 handshake’и. Для каждого найденного «рукопожатия» она выводит имя пользователя, известный открытый текст, два известных шифртекста и взламывает третий DES-ключ. Кроме этого, она генерирует токен для CloudCracker, в котором закодированы три параметра, необходимые, чтобы сервис взломал оставшиеся ключи.

CloudCracker & Chapcrack

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

  1. Скачиваем библиотеку Passlib , реализующую более 30 различных алгоритмов хеширования для языка Python, распаковываем и устанавливаем: python setup.py install
  2. Устанавливаем python-m2crypto - обертку OpenSSL для Python: sudo apt-get install python-m2crypto
  3. Скачиваем саму утилиту chapcrack , распаковываем и устанавливаем: python setup.py install
  4. Chapcrack установлена, можно приступать к парсингу перехваченного трафика. Утилита принимает на вход cap-файл, ищет в нем MS-CHAPv2 handshake’и, из которых извлекает необходимую для взлома информацию. chapcrack parse -i tests/pptp
  5. Из выводимых утилитой chapcrack данных копируем значение строки CloudCracker Submission и сохраняем в файл (например, output.txt)
  6. Идем на cloudcracker.com, на панели «Start Cracking» выбираем File Type, равный «MS-CHAPv2 (PPTP/WPA-E)», выбираем предварительно подготовленный на предыдущем шаге файл output.txt, нажимаем Next -> Next и указываем свой e-mail, на который придет сообщение по окончании взлома.

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

Что делать?

Хоть Microsoft и пишет на своем сайте, что на данный момент не располагает сведениями об активных атаках с использованием chapcrack, а также о последствиях таких атак для пользовательских систем, но это еще не значит, что все в порядке. Мокси рекомендует всем пользователям и провайдерам PPTP VPN решений начинать миграцию на другой VPN-протокол. А PPTP-трафик считать незашифрованным. Как видишь, налицо еще одна ситуация, когда VPN может нас серьезно подвести.

Заключение

Так сложилось, что VPN ассоциируется с анонимностью и безопасностью. Люди прибегают к использованию VPN, когда хотят скрыть свой трафик от бдительных глаз провайдера, подменить свое реальное географическое положение и так далее. На деле получается, что трафик может «протечь» в сеть в открытом виде, а если и не в открытом, то зашифрованный трафик могут достаточно быстро расшифровать. Все это еще раз напоминает, что нельзя слепо полагаться на громкие обещания полной безопасности и анонимности. Как говорится, доверяй, но проверяй. Так что будь начеку и следи за тем, чтобы твое VPN-соединение было по-настоящему безопасным и анонимным.

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

Это первая теоретическая статья из цикла статей, посвящённого сбору, учёту, управлению и биллингу трафика и 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, softflowd), так и непосредственно встроенных в ядро ОС (FreeBSD: ng_netgraph , Linux: ). Для программных маршрутизаторов поток статистики 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-серверов. Однако практически в любом случае можно придумать схему, когда информация о переданном по сети трафике может быть направлена на программное или аппаратное средство его анализа и управления. Возможно также, что это средство позволит осуществлять обратную связь с устройством доступа, применяя интеллектуальные алгоритмы ограничения доступа для отдельных клиентов, протоколов и прочего.
На этом закончу разбор матчасти. Из неразобранных тем остались:

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


Рекомендуем почитать

Наверх