Обход блокировки dpi linux

Infernal news

News for every taste

Свежие записи

Популяные рубрики

  • Записи (270)
  • Рекомендуем (208)
  • IT (121)
  • Главные (105)
  • Политика (101)
  • COVID-19 (31)
  • Непознанное (15)
  • Дети (10)
  • О наркотиках (6)
  • Красота (5)

Как обойти блокировку по DPI на Windows и Linux

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

Все ссылки в самом конце статьи

Deep Packet Inspection (сокр. DPI, также complete packet inspection и Information eXtraction или IX) — технология накопления статистических данных, проверки и фильтрации сетевых пакетов по их содержимому. В отличие от брандмауэров, Deep Packet Inspection анализирует не только заголовки пакетов, но и полное содержимое трафика на уровнях модели OSI со второго и выше. Deep Packet Inspection способно обнаруживать и блокировать вирусы, фильтровать информацию, не удовлетворяющую заданным критериям.

Согласно Wikipedia. Из этого определения стоит понять одно: для блокировки ресурсов будут использоваться не ссылки на конкретные страницы или IP-адреса, а будут анализироваться сами передаваемые пакеты. Что в целом позволяет блокировать неблокируемое (тот же Телеграм).

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

На каждый лом уже придуман свой приём. По крайней мере, для Windows.

GoodbyeDPI — небольшая программа, которая помогает автоматически обходить блокировку ресурсов по DPI.

Для установки GoodbyeDPI нужно с этой страницы скачать последний релиз файла goodbyedpi.zip и распаковать его на свой компьютер. В итоге вы увидите несколько файлов.

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

Сама же программа находится в папке x86 для обычной винды и в папке X86_64 для x64 винды и называется goodbyedpi.exe .

В принципе на этом всё. Особо продвинутые могут указывать свои параметры запуска:

Скачать GoodbyeDPI или по альтернативной ссылке и еще одной ссылке.

Источник

Как обойти блокировку по DPI на Windows и Linux

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

Все ссылки в самом конце статьи

Deep Packet Inspection (сокр. DPI, также complete packet inspection и Information eXtraction или IX) — технология накопления статистических данных, проверки и фильтрации сетевых пакетов по их содержимому. В отличие от брандмауэров, Deep Packet Inspection анализирует не только заголовки пакетов, но и полное содержимое трафика на уровнях модели OSI со второго и выше. Deep Packet Inspection способно обнаруживать и блокировать вирусы, фильтровать информацию, не удовлетворяющую заданным критериям.

Согласно Wikipedia. Из этого определения стоит понять одно: для блокировки ресурсов будут использоваться не ссылки на конкретные страницы или IP-адреса, а будут анализироваться сами передаваемые пакеты. Что в целом позволяет блокировать неблокируемое (тот же Телеграм).

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

На каждый лом уже придуман свой приём. По крайней мере, для Windows.

GoodbyeDPI — небольшая программа, которая помогает автоматически обходить блокировку ресурсов по DPI.

Для установки GoodbyeDPI нужно с этой страницы скачать последний релиз файла goodbyedpi.zip и распаковать его на свой компьютер. В итоге вы увидите несколько файлов.

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

Сама же программа находится в папке x86 для обычной винды и в папке X86_64 для x64 винды и называется goodbyedpi.exe .

В принципе на этом всё. Особо продвинутые могут указывать свои параметры запуска:

Скачать GoodbyeDPI или по альтернативной ссылке и еще одной ссылке.

Читайте также:  Windows enable crash dump

Источник

Статья Обход DPI — Новейший способ 2019 — Linux Windows Termux

cocksucker228

Гость

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

Принцип пассивного DPI основан на перенаправлении пользователя на страницу провайдера, сначала приходит запрос от DPI с кодом 302
(Moved Temporarily), а потом сам ответ с сайта. Открывается сайт провайдера, а ответ с заблокированного ресурса игнорируется компьютером.
Пассивный DPI — малоэффективный, но не замедляет скорость соединения, потому что подключен параллельно провайдеру.
Здесь можно обойтись парой команд, прописав правило блокировки кода 302 с помощью iptables (Linux):

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

Устанавливаем iptables, если у вас его нет (Debian):

sudo apt install iptables

Добавляем новое правило для блокировки DPI:

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

Этот метод будет работать далеко не всегда, так как кроме пассивного DPI существует и активный.

Активный DPI, в отличие от пассивного, подключен последовательно. Он напрямую взаимодействует с трафиком и принимает решение пропустить или заблокировать запрос. Обойтись простым правилом iptables не выйдет.
DPI можно «обмануть», немного изменив запрос. Система ищет определенные строки в HTTP-запросе и определяет адрес конечного ресурса по
ним. Не все способы работают, поэтому надо применять их одновременно.
Один человек написал программу GoodbyeDPI для Windows, которая использует все способы обхода DPI.
https://github.com/ValdikSS/GoodbyeDPI

Скачиваем программу и пишем в командной строке:

goodbyedpi.exe -1 -a

Первый параметр отвечает за скорость и способ работы (1 — 4), чем больше значение, тем выше скорость. Если заблокированные ресурсы не
открываются, последовательно попробуйте все параметры.

Данная программа работает автономно и не всегда эффективно, существует и 2 способ — Recrypt.
Recrypt — подобие прокси-сервера, который обходит блокировку DPI.

Переходим в Панель управления ->Сеть и Интернет -> Активные подключения -> LAN -> Свойства -> Сеть
Отключаем IPV6
Устанавливаем ReCrypt

Выполняем в терминале (Debian):

sudo sysctl net.ipv6.conf.all.disable_ipv6

sudo sysctl net.ipv6.conf.default.disable_ipv6

sudo sysctl net.ipv6.conf.lo.disable_ipv6

Если требуется, устанавливаем Gdebi

sudo apt install gdebi

sudo gdebi reqrypt_1.4.1_amd64.deb

Для Linux существует аналог GoodbyeDPI, называется Zapret (символично. ).
https://github.com/bol-van/zapret

Скачиваем репозиторий и зависимости:

sudo apt-get install ipset curl dnsutils git

git clone https://github.com/bol-van/zapret

sudo ln -fs /opt/zapret/init.d/systemd/zapret.service /lib/systemd/system

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

ln -fs /opt/zapret/init.d/systemd/zapret-list-update.service /lib/systemd/system

ln -fs /opt/zapret/init.d/systemd/zapret-list-update.timer /lib/systemd/system

sudo systemctl daemon-reload

sudo systemctl enable zapret

sudo systemctl enable zapret-list-update.timer

sudo systemctl start zapret

Всё! Поздравляем, вы установили zapret.

Спасибо ValdikSS за подробную статью и программу goodbyeDPI! https://habr.com/ru/post/335436

Технология DNS Over HTTPS

Недавно компания Mozilla (и Chrome 78+) внедрила в свой браузер технологию, позволяющую шифровать трафик при обращении к DNS, что мешает использованию DPI. Для того, чтобы включить DoH в Firefox, необходимо перейти на страницу about:config,
перевести параметр network.ttr.mode в значение 2, а network.ttr.uri в значение https://mozilla.cloudflare-dns.com/dns-query.

Установка DoH в Linux и Android

Для того, чтобы настроить DNS Over HTTPS в Linux, необходимо:

1. Установить dnss

sudo apt install dnss

2. Скопировать конфигурационный файл

sudo cp /lib/systemd/system/dnss.socket /etc/systemd/system/dnss.socket

3. Открыть этот файл в редакторе

sudo vim /etc/systemd/system/dnss.socket

Заменяем строку ListenDatagram=53 на ListenDatagram=127.0.0.X:53, аналогично со строкой ListenStream. Вместо X подставляем любую цифру в диапазоне 2-254.

4. Перезагружаем systemd

sudo systemctl daemon-reload

sudo systemctl restart dnss.socket

Мы настроили dnss, теперь необходимо настроить подключение на адрес, который вы указали выше.

В Android DoH можно настроить, установив приложение Intra. Оно работает как VPN, шифруя трафик поверх приложений.

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

Источник

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

Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Читайте также:  Аналог exe для linux

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.

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

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

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

Рассмотрим пакет от DPI подробнее:

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

Что это такое? Модуль 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.

Активный DPI

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

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

Изучаем стандарт HTTP

Типичные HTTP-запросы в упрощенном виде выглядят следующим образом:

Запрос начинается с HTTP-метода, затем следует один пробел, после него указывается путь, затем еще один пробел, и заканчивается строка протоколом и переносом строки CRLF.
Заголовки начинаются с большой буквы, после двоеточия ставится символ пробела.

Давайте заглянем в последнюю версию стандарта HTTP/1.1 от 2014 года. Согласно RFC 7230, HTTP-заголовки не зависят от регистра символов, а после двоеточия может стоять произвольное количество пробелов (или не быть их вовсе).

OWS — опциональный один или несколько символов пробела или табуляции, SP — одинарный символ пробела, HTAB — табуляция, CRLF — перенос строки и возврат каретки (\r\n).

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

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

Старый стандарт, RFC 2616, рекомендует снисходительно парсить запросы и ответы сломанных веб-северов и клиентов, и корректно обрабатывать произвольное количество пробелов в самой первой строке HTTP-запросов и ответов в тех местах, где требуется только один:

Clients SHOULD be tolerant in parsing the Status-Line and servers tolerant when parsing the Request-Line. In particular, they SHOULD accept any amount of SP or HT characters between fields, even though only a single SP is required.

Этой рекомендации придерживаются далеко не все веб-серверы. Из-за двух пробелов между методом и путем ломаются некоторые сайты.

Читайте также:  Org mode emacs windows

Спускаемся на уровень TCP

Соединение TCP начинается с SYN-запроса и SYN/ACK-ответа. В запросе клиент, среди прочей информации, указывает размер TCP-окна (TCP Window Size) — количество байт, которые он готов принимать без подтверждения передачи. Сервер тоже указывает это значение. В интернете используется значение MTU 1500, что позволяет отправить до 1460 байтов данных в одном TCP-пакете.
Если сервер указывает размер TCP-окна менее 1460, клиент отправит в первом пакете данных столько, сколько указано в этом параметре.

Если сервер пришлет TCP Window Size = 2 в SYN/ACK-пакете (или мы его изменим на это значение на стороне клиента), то браузер отправит HTTP-запрос двумя пакетами:

Пакет 1:
Пакет 2:

Используем особенности HTTP и TCP для обхода активного DPI

Многие решения DPI ожидают заголовки только в стандартном виде.
Для блокировки сайтов по домену или URI, они ищут строку «Host: » в теле запроса. Стоит заменить заголовок «Host» на «hoSt» или убрать пробел после двоеточия, и перед вами открывается запрошенный сайт.
Не все DPI можно обмануть таким простым трюком. DPI некоторых провайдеров корректно анализируют HTTP-заголовки в соответствии со стандартом, но не умеют собирать TCP-поток из нескольких пакетов. Для таких DPI подойдет «фрагментирование» пакета, путем искусственного уменьшения TCP Window Size.

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

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

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

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

Эффективное проксирование для обхода блокировок по IP

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

Если наш компьютер находится за NAT, мы не можем просто отправить запрос на сервер ReQrypt и ожидать ответа от сайта. Ответ не дойдет, т.к. в таблице NAT не создана запись для этого IP-адреса.
Для «пробива» NAT, ReQrypt отправляет первый пакет в TCP-соединении напрямую сайту, но с TTL = 3. Он добавляет запись в NAT-таблицу роутера, но не доходит до сайта назначения.

Долгое время разработка была заморожена из-за того, что автор не мог найти сервер с возможностью спуфинга. Спуфинг IP-адресов часто используется для амплификации атак через DNS, NNTP и другие протоколы, из-за чего он запрещен у подавляющего большинства провайдеров. Но сервер все-таки был найден, хоть и не самый удачный. Разработка продолжается.

Заключение и TL;DR

GoodbyeDPI — программа под Windows, позволяющая обходить пассивные и активные DPI. Просто скачайте и запустите ее, и заблокированные сайты станут снова доступны.
Для Linux есть аналогичная программа — zapret.

Используйте кроссплатформенную программу ReQrypt, если ваш провайдер блокирует сайты по IP-адресу.

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

Дополнительная полезная информация есть здесь и здесь.

Источник

Оцените статью