Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Что такое DPI и как она работает

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

Если он совпадает с запрещенным UPL, установленная на сервер провайдера «коробочка» отправляет пользователю сформированной пакет, содержащий редирект на страницу-заглушку. А так как DPI физически находится к пользователю ближе, чем запрошенный ресурс, подмененный ответ приходит на компьютер раньше, чем ответ от сайта, который расценивается операционной системой уже как ретрансмиссия.

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

Более того, неудачная реализация может запросто положить большую часть Рунета вместе с его модераторами и судя потому, откуда у блюстителей чистоты информационного пространства растут руки, такой сценарий выглядит вполне правдоподобным. Как не вспомнить здесь потуги Роскомнадзора заблокировать Телеграмм в 2018 году. Но и это еще не всё. Использование протоколом HTTPS шифрования существенно затрудняет применение технологии, более или менее хорошо она работает лишь с сайтами, использующими незащищенный протокол HTTP.

Выявляем и блокируем пакеты пассивного DPI

Поддельные пакеты, формируемые DPI, легко обнаружить анализатором трафика, например, Wireshark.
Пробуем зайти на заблокированный сайт:

Мы видим, что сначала приходит пакет от DPI, с HTTP-перенаправлением кодом 302, а затем настоящий ответ от сайта. Ответ от сайта расценивается как ретрансмиссия и отбрасывается операционной системой. Браузер переходит по ссылке, указанной в ответе DPI, и мы видим страницу блокировки.
Рассмотрим пакет от DPI подробнее:

HTTP/1.1 302 Found Connection: close Location: http://warning.rt.ru/?id=17&st=0&dt=195.82.146.214&rs=http%3A%2F%2Frutracker.org%2F

В ответе DPI не устанавливается флаг «Don’t Fragment», и в поле Identification указано 1. Серверы в интернете обычно устанавливают бит «Don’t Fragment», и пакеты без этого бита встречаются нечасто. Мы можем использовать это в качестве отличительной особенности пакетов от DPI, вместе с тем фактом, что такие пакеты всегда содержат HTTP-перенаправление кодом 302, и написать правило iptables, блокирующее их:

# iptables -A FORWARD -p tcp --sport 80 -m u32 --u32 "0x4=0x10000 && 0x60=0x7761726e && 0x64=0x696e672e && 0x68=0x72742e72" -m comment --comment "Rostelecom HTTP" -j DROP

Что это такое? Модуль u32 iptables позволяет выполнять битовые операции и операции сравнения над 4-байтовыми данными в пакете. По смещению 0x4 хранится 2-байтное поле Indentification, сразу за ним идут 1-байтные поля Flags и Fragment Offset.
Начиная со смещения 0x60 расположен домен перенаправления (HTTP-заголовок Location).
Если Identification = 1, Flags = 0, Fragment Offset = 0, 0x60 = «warn», 0x64 = «ing.», 0x68 = «rt.ru», то отбрасываем пакет, и получаем настоящий ответ от сайта.
В случае с HTTPS-сайтами, DPI присылает TCP Reset-пакет, тоже с Identification = 1 и Flags = 0.

Сетевая модель

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

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

  • Самый первый уровень связи основан на физических процессах. Он позволяет определять и связывать устройства, работая с аппаратными адресами: это в первую очередь ARP, L2TP и PPP.
  • Второй слой, уровень маршрутизации, затрагивает адреса IP и создает логическую связь между узлами IPv4, IPv6 и IPsec. Оба эти уровня — ключевые, они описывают основу, то, как компьютеры могут друг друга найти.
  • Третий уровень — транспортный — занимается данными: что передавать и насколько качественно это делать. TCP и UDP — два ключевых протокола, которые занимаются передачей данных на этом уровне, обеспечивают сохранность информации и ее порядок. Благодаря им все соединения строго регулируются.
  • Последний, четвертый уровень — прикладной, поэтому его описание очень широко (из-за невообразимо большого количества протоколов), а использование не обязательно, не все приложения это делают. Но если используют, то за дело берутся протоколы HTTP и WebSocket, чтобы ты мог сидеть в интернете, играть в MMORPG и чатиться. Протокол FTP используется в основном для обмена файлами, а POP и IMAP — электронной почтой.
Пример инкапсуляции данных через соединение HTTP

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

Как обойти блокировку DPI

Но давайте представим, что завтра Роскомнадзор таки начнет блокировать сайты с использованием Deep Packet Inspection. Всё, прощайте торренты, многочисленные, но неугодные развлекательные и политические ресурсы, прощай и без того попранная свобода слова? Как бы не так. Настоящие пакеты от запрашиваемых сайтов, хотя и с опозданием, всё равно приходят на компьютер, так что же мешает вам разобрать сами пакеты DPI и отбросить их?

Российский DPI тупой как ящер, запрещенные ресурсы он обнаруживает по строкам «Host» и «HTTP» в теле запроса, но стоит только заменить «Host» на «HoSt», как пакет тут же проходит. А еще можно фрагментировать строки, разбивая их на части, добавляя или удаляя пробелы, вариаций множество. Плюс ко всему в интернете уже появились утилиты, работающие по данному принципу и позволяющие обходить блокировку. В Windows обойти пассивный и активный DPI поможет консольная утилита GoodbyeDPI, в Linux для этих целей создана утилита Zapret.

Как пользоваться GoodbyeDPI

Если вы хотите определить, использует ли ваш провайдер технологию DPI, воспользуйтесь утилитой Blockcheck. Будучи запущенной, она сканирует трафик и определяет тип блокировки, к примеру, в случае блокирования сайтов по DPI в логах будет указано «обнаружен пассивный DPI».

Установив причину, скачайте утилиту GoodbyeDPI, запустите командную строку, перейдите в расположение исполняемого файла утилиты и выполните команду goodbyedpi.exe -1 -a.

Если сразу разблокировать доступ не получилось, попробуйте запустить goodbyedpi.exe с ключами -2, -3 и -4. Полный список ключей с их описанием можно посмотреть на страничке разработчика.

Резюме

С ограничениями в интернете можно и нужно бороться, ведь право на доступ к информации закреплено в конституциях многих стран, в том числе Конституции РФ. Увы, то что сейчас происходит в российском сегменте интернета не иначе как недоразумением не назовешь, и можно только предполагать, чем всё это закончится. Ждет ли россиян чебурнет по типу китайской всеобщей объединенной компьютерной сети? Вряд ли. Свой интернет китайские товарищи создавали более 20 лет практически с нуля, потратив на это колоссальные средства и так и не сумев окончательно отгородиться от всего мира. В России с ее развёрнутый IT-инфраструктурой провернуть такое дело будет несравненно труднее.

Blockcheck: github.com/ValdikSS/blockcheck/releases
GoodbyeDPI: github.com/ValdikSS/GoodbyeDPI

(Пока оценок нет)
Загрузка…

Что такое папка LOST.DIR в корне флешки и откуда она берется

3 способа преобразования надписей на экране в печатный текст

Зачем это всё надо?

Звучит это всё, конечно, не очень оптимистично, но для многих операторов по экономическим причинам значительно дешевле поставить систему DPI для контроля утилизации каналов, чем расширять аплинки. Причём, сделать это без особых потерь абонентской базы, т.к. давно известно, что большая часть трафика генерируется примерно 5% наиболее активных абонентов. И в этом случае оператору экономически целесообразней снизить абонентскую базу, но платить меньше денег за аплинки, т.к. уйдут самые активные качальщики, из-за которых оператор вынужден каждый месяц платить немаленькую сумму за аплинки. Это ночной кошмар любого маркетолога, но в некоторых случаях потерять клиентов – выгодно. Деликатность ситуации заключается в том, что рано или поздно наступит такой момент, когда все операторы так или иначе будут что-либо шейпить при помощи DPI. Т.е. если сегодня один оператор начнёт рубить торренты, самые активные качальщики разом уйдут к другому. После этого у того сильно скакнёт загрузка его каналов и клиенты начнут жаловаться на то, что плохо работает веб-браузинг. Оператор подумает, подсчитает, и в итоге купит DPI. И так до тех пор, пока все игроки на рынке не обзаведутся подобной системой. Разумеется, установка DPI не снимает с оператора задачу по периодическому расширению аплинков и увеличению скорости доступа для подписчиков. Просто теперь эти расширения не будут бесконтрольными. Т.е. оператор всегда будет знать трафик какого типа и в каком количестве пойдёт через его каналы, это будет прогнозируемо. Разумеется, когда речь идёт о коробках стоимостью $1M, дело не только в аплинках, необходимо это понимать. Моё личное мнение в первом приближении, как пользователя услуги широкополосного доступа в интернет, заключается в том, что что-либо резать и блокировать, конечно же, плохо и совершенно неправильно. Но, глядя глазами инженера на то, какими темпами растут объёмы трафика, использование DPI становится спасением для многих операторов, т.к. торренты сегодня способны забить намертво практически любой аплинк.

Доступные опции

Фильтрация по реестру запрещенных сайтов

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

СКАТ DPI зарекомендовал себя как эффективное решение для фильтрации по реестру запрещенных сайтов у сотен операторов связи Российской Федерации. СКАТ DPI показал отличные результаты в рамках тестирования, проводимого Роскомнадзором с 13.09.2017 по 13.10.2017, о результатах тестирования можно ознакомится на сайте Роскомнадзора или у менеджеров ITGLOBAL.COM.

Подробнее

Обеспечение качества обслуживания (QoS)

Обеспечение качества обслуживания (Quality of Service, QoS) – опция СКАТ DPI для управления пропускной полосой в зависимости от прикладных протоколов, направления и загрузки канала. Дает возможность экономии до 25% емкости канала за счет приоритезации трафика, увеличивает качество сервиса оператора в целом.

Подробнее

Качество восприятия услуги (QoE)

Quality of Experience (QoE) – модуль в СКАТ DPI, который собирает статистику и оценивает качество восприятия предоставляемых сервисов. Собранные показатели сравниваются с заданными метриками, что позволяет понять, насколько качественными являются услуги связи и доступа в интернет для отдельного пользователя. На основании полученной информации, модуль инициирует выполнение необходимых шагов, повышающих качество оказываемых услуг.

Подробнее

Трансляция сетевых адресов (CG-NAT)

CG-NAT – опция СКАТ DPI, отвечает за преобразование сетевых адресов и портов с возможностью использовать единый публичный IPv4-адрес сразу несколькими пользователями. CG-NAT также решает проблему ограниченности адресного пространства IPv4 и облегчает переход на IPv6.

Подробнее

Firewall и AntiDDOS

СКАТ DPI реализует опцию Firewal, предотвращая взлом пользователей по открытым портам и блокируя любую нелегитимную активность, которая может исходить от абонента. Фаервол защищает сеть от перегрузки, вредоносного ПО, повышает качество услуг для клиентов, обеспечивает безопасность и стабильную работу. Межсетевой экран можно использовать с модулем QoE, что позволяет определить атакующего и атакуемого пользователя и оперативно уведомить клиента о подозрительной активности.

Подробнее

Схемы подключения DPI

Существует две основные схемы:

  1. Активная. Установка «в разрыв». Обеспечивает реализацию полного функционала. Устройство подключается после пограничного маршрутизатора в разрыв uplink. Благодаря такой схеме через DPI проходит весь трафик. Это открывает широкие функциональные возможности для его обработки. Однако в такой схеме есть минус. Если устройство выходит из строя, нарушается связь. Для этого рекомендуется использовать либо резервную платформу, либо Bypass устройства.
  2. Пассивная. «Зеркалирование трафика» происходит через оптические сплиттеры либо SPAN-порты. Подобная схема открывает доступ к множеству функций: предварительная фильтрация СОРМ, кэширование, переадресация запросов блокировки, онлайн-снятие click stream и так далее. Если сеть уже действует, такая схема позволяет за 1-2 дня внедрить DPI.

Варианты использования DPI систем

Предусмотрено 9 возможных сценариев:

  1. контроль и анализ трафика;
  2. его приоритизация;
  3. улучшение аплинков;
  4. равномерное распределение канала для всех абонентов;
  5. кэширование;
  6. оценка поведения участников сети;
  7. уведомление абонентов;
  8. ограничение доступа к определенным интернет-ресурсам;
  9. защита трафика от перехвата и прочих атак.

Программа для обхода DPI

Я написал программу для обхода DPI под Windows: GoodbyeDPI.
Она умеет блокировать пакеты с перенаправлением от пассивного DPI, заменять Host на hoSt, удалять пробел между двоеточием и значением хоста в заголовке Host, «фрагментировать» HTTP и HTTPS-пакеты (устанавливать TCP Window Size), и добавлять дополнительный пробел между HTTP-методом и путем.
Преимущество этого метода обхода в том, что он полностью автономный: нет внешних серверов, которые могут заблокировать.
По умолчанию активированы опции, нацеленные на максимальную совместимость с провайдерами, но не на скорость работы. Запустите программу следующим образом:

goodbyedpi.exe -1 -a

Если заблокированные сайты стали открываться, DPI вашего провайдера можно обойти.
Попробуйте запустить программу с параметром -2 и зайти на заблокированный HTTPS-сайт. Если все продолжает работать, попробуйте режим -3 и -4 (наиболее быстрый).
Некоторые провайдеры, например, Мегафон и Yota, не пропускают фрагментированные пакеты по HTTP, и сайты перестают открываться вообще. С такими провайдерами используйте опцию -3 -a

Необходимое оборудование для DPI систем

Программная часть системы способна работать продуктивнее при наличии определенного «железа». В основном, для этого используются готовые решения, в которые входит оборудование с предустановленным ПО.

Обычно стандартная комплектация DPI систем глубокой фильтрации трафика содержит:

  1. Сетевые карты с режимом Bypass, соединяющим интерфейсы на первом уровне. Даже если питание сервера внезапно прекращается, линк между портами продолжает действовать, пропуская трафик за счет питания от батарейки.
  2. Систему мониторинга. Дистанционно контролирует показатели сети и выводит их на экран.
  3. Два блока питания, способные заменить друг друга при необходимости.
  4. Два жестких диска, один или два процессора.

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

Головное устройство оснащено двумя контроллерами, каждый из которых имеет порты для подключения к сети и полок расширения. Используется процессор Intel® Xeon® E5-2600 V4. Для повышения отказоустойчивости применяется два блока питания.

ОС SmartOS выполняет управление дисками. За счет применения технологии RAID-Z и новой файловой системы ZFS оборудование получает массу преимуществ:

  • контроль целостности логических и физических дисков;
  • минимизация фрагментации информации;
  • высокая скорость доступа к дискам.

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

1) Bypass

Что происходит, когда в сеть вы добавляете ещё один элемент? А тем более стойку? Верно, появляется ещё одно слабое звено. Bypass призван хоть немного исправить это положение.

В сеть оно включается первым и уже к нему подключается Front-End.

У него есть два режима работы:

1. Защитный. Трафик проходит напрямую и не заворачивается на Front-End

2. Рабочий. Трафик заворачивается на Front-End, но в случае чего переключается на прямой канал, как в первом случае.

Bypass всеми силами будет пытаться удержать связь.

Ломается Front-End (сгорела плата) – трафик переключается на защитный канал.

Рвётся линк до Front-End’a (сгорел порт, повредился кабель) – трафик переключается на защитный канал.

Выключилось электричество – трафик переключается на защитный канал.

Bypass’ы бывают электрическими и оптическими. Электрические основаны на реле и применяются с медными проводами, то есть максимальная скорость, на канал 1 Гб/с.

Оптические сильно круче. Помимо того, что скорость на канал до 10 Гб/с, существует возможность зеркалирования трафика задаром – световому лучу не убудет. То есть в то время как трафик идёт по прямому каналу, его копия направляется на Front-End. Действия над трафиком никакие ещё совершать нельзя, но статистику уже собирать вполне можно.

D

2) Front-End

Это адская молотилка. Через неё несутся гигабиты, именно в нём каждый пакет разбирается по байтикам, именно в нём трафик каждого абонента подвергается экзекуции в соответствии с политиками.

По сути это очень мощный модульный маршрутизатор.

В нём есть голова – платы управления самим устройством – их, как правило, две – мастер/слейв.

Есть линейные платы, отвечающие за приём-передачу трафика, то есть физический, канальный и немного сетевой уровни.

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

И наконец, руки – процессинговые платы, которые и перелопачивают эти кучи, накладывают ограничения, собирают статистику и успевают при этом взаимодействовать с Back-End и с PCRF-сервером, запрашивая политики и передавая данные на них.

3) Back-End

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

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

4) PCRF-сервер

Очень грубо говоря, он хранит соответствия: пользователь – номер политики. Front-End отправляет ему идентификатор абонента, тот возвращает номер политики, Front-End запрашивает подробности соответствующей политики на Back-End’e.

Как правило, PCRF-сервер один на множество сайтов.

С точки зрения сети DPI можно разделить на три части:

1) супервысокоскоростная часть;

Трафик пользователей

Исчисляется Гигабитами в секунду

2) Сеть взаимодействия компонентов (FE, BE,сервера);

Тут трафик небольшой и гагибитного (даже сотки) с лихвой. По этой сети ходит только служебная информация.

3) управление и PCRF – стык с внешней (для DPI) сетью.

Это каналы в сеть OMC (operation and maintenance center) транзит до PCRF-сервера. Также только для служебных целей – доступ на оборудование и NMS (Network Management Server).

PCRF.png

На практике

Статистику можно собирать самую богатейшую. Приведу несколько примеров:

Общий трафик по городу с разделением по различным типам:

То же в виде пирога:

Какой хостинг видео преобладает:

Топ 10 сайтов по числу соединений:

Топ 10 сайтов по объёму трафика:

Трафик по каждому абоненту отдельно в категории WEB:

Самые активные пользователи:

А вот пример применения политик: всё делается на лету – и между командой и её эффектом проходит пара секунд.

На картинке показано действие политики, ограничивающей общий трафик до 700 кб/с, при этом приоритет на видео (зелёный), а для Р2Р (фиолетовый) гарантировано 200 кб/с.

А это пример использования просто приоритетов. Общее ограничение также на 700 кб/с, наивысший приоритет у видео (зелёный), на втором месте FTP (красный) и на последнем фиолетовый P2P

Политики тоже можно задавать очень гибко:

  • ограничивать общую скорость трафика вплоть до блокировки;
  • ограничивать скорость трафика по каждой категории (веб, видео, p2p, IM и так далее) отдельно вплоть до блокировки;
  • выделять полосу для каждого типа трафика (например, не более мегабита/с, но 200 кб/с должно быть гарантировано);
  • указывать приоритет для каждого типа.

И другие менее очевидные способы.

Я люблю всякие огромные махины, вроде КрАЗа, БелАЗа – чувствуется невообразимая мощь в урчании их двигателей и лёгкий трепет перед ними. Очень похожие ощущения от работы с DPI. Словами не передашь турбинного потока воздуха из кулеров, мигания десятков светодиодов в темноте машинного зала, тугого жгута оптических проводов, уходящих в загадочный Bypass и те, почти неограниченные, возможности, которые он предоставляет. Возможностям, которые делают вас не администратором сети, но хозяином.

Вместо заключения

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

Источники

  • https://www.white-windows.ru/chto-takoe-blokirovka-po-dpi-i-mozhno-li-ee-obojti/
  • https://habr.com/ru/post/335436/
  • https://xakep.ru/2019/06/03/howto-dpi/
  • https://habr.com/ru/post/111054/
  • https://ITGlobal.com/ru-ru/solutions/for-telecom-providers/skat-dpi/
  • https://www.CarbonSoft.ru/dpi-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B-%D1%84%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D0%B0%D1%86%D0%B8%D0%B8-%D1%82%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0/
  • https://nag.ru/articles/article/22432/dpi.html

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Лайфхаки на каждый день, полезные советы
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: