Перейти к содержимому


Фотография
Паблик

Автономный способ обхода блокировок РКН без настройки прокси



  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1 Off   trex

trex
  • Сливапер LVL 7
  • Сообщений: 159
  • Регистрация: 22.07.2014
  • Заработано: 206 руб.
Репутация: 1 126

Награды:

16   

Отправлено 05 Август 2018 - 10:00

Делюсь статьей для сливаперов в связи с последними блокировками сливапа. Статья довольно популярная, но все же, может кто не читал и не знает о ее существовании. Статья о том, как попадать на любые заблокированные РКН сайты без настройки прокси. Все работает в автономном режиме по типу установил и забыл. Многим это облегчит жизнь в сети и отпадет необходимость в постоянном поиске прокси.

P.S.

Модераторам предлагаю эту тему закрепить

 

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

eadd00f83eca.png

 

Пассивный DPI

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

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

a12729f25997.jpg

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

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

 

c8ea3903db3f.png

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% .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.

 

Активный DPI

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

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

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

GET / HTTP/1.1
Host: habrahabr.ru
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/50.0
Accept-Encoding: gzip, deflate, br
Connection: keep-alive 

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

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

Each header field consists of a case-insensitive field name followed
   by a colon (":"), optional leading whitespace, the field value, and
   optional trailing whitespace.

     header-field   = field-name ":" OWS field-value OWS

     field-name     = token
     field-value    = *( field-content / obs-fold )
     field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]
     field-vchar    = VCHAR / obs-text

     obs-fold       = CRLF 1*( SP / HTAB )
                    ; obsolete line folding 

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

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

GET / HTTP/1.1
hoSt:habrahabr.ru
user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/50.0
Accept-Encoding:           gzip, deflate, br
coNNecTion:  keep-alive      ‡здесь символ табуляции между двоеточием и значением 

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

Старый стандарт, 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.
Этой рекомендации придерживаются далеко не все веб-серверы. Из-за двух пробелов между методом и путем ломаются некоторые сайты.

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

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

 

Пакет 1:

GE 

Пакет 2:

T / HTTP/1.1
Host: habrahabr.ru
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/50.0
Accept-Encoding: gzip, deflate, br
Connection: keep-alive 

Используем особенности 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-методом и путем.
Преимущество этого метода обхода в том, что он полностью автономный: нет внешних серверов, которые могут заблокировать.

По умолчанию активированы опции, нацеленные на максимальную совместимость с провайдерами, но не на скорость работы. Запустите программу следующим образом:

goodbyedpi.exe -1 -a

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

 

FAQ

1. текст из окна Blockcheck почему-то не копируется.

Как его скопировать чтобы Вам прислать?

 

Нажмите Ctrl+C.

 

2. Не хочет функционировать. Ругается на отсутствие цифровой подписи у драйвера WinDivert64.sys

Пробовал отключить проверку подписи. Но у меня это не срабатывает. Как быть?

 

Обновить ОС хотя бы до состояния 2015 года.

https://docs.microsoft.com/en-us/security-updates/SecurityAdvisories/2015/3033929

 

3. Как читается blacklist при старте GoodbyeDPI, один раз, или в процессе работы периодически перечитывает его?

 

Один раз при старте.

 

 

Краткая инструкция по установке:

Качаем последний релиз по ссылке https://github.com/V...pi-0.1.5rc3.zip

Для автономной работы делаем следущее:

распаковываем, находим файлы:

 

service_install_russia_blacklist.cmd

service_install_russia_blacklist_dnsredir.cmd

Запускаем от администратора, выходим в сеть.

 

Кому автономная работа не нужна находим файл 

goodbyedpi.exe запускаем от имени администратора, выходим в сеть.

 

Источник статьи:

Скрытый контент:

  Для просмотра необходимо 1 очков репутации (1 осталось)
                          Или
  Купить Premium и получить доступ ко всему контенту сайта


Сообщение отредактировал trex: 05 Август 2018 - 10:05


#2 Off   agrx

agrx
  • Сливапер LVL 7
  • Сообщений: 1 306
  • Регистрация: 23.09.2014
  • Заработано: 81 руб.
Репутация: 1 079

Награды:

17   

Отправлено 05 Август 2018 - 13:36

frigate CDN использую, проблем не наблюдается



#3 Off   trex

trex
  • Сливапер LVL 7
  • Сообщений: 159
  • Регистрация: 22.07.2014
  • Заработано: 206 руб.
Репутация: 1 126

Награды:

16   

Отправлено 05 Август 2018 - 15:35

Я нечего не использую. Службу установил и забыл. Все открывается и летает без тормозов.



#4 Off   Black Jack

Black Jack
  • Сливапер LVL 5
  • Сообщений: 159
    • Онлайн: 3д 16ч 46м 21с
  • Регистрация: 03.09.2014
  • Заработано: 0 руб.
Репутация: 377

Отправлено 05 Август 2018 - 21:23

Тему нужно перенести в раздел "Паблик", так как давным давно статья лежит на всем известном торренте: http://nnm-club.me/f...c.php?t=1157796

Сам пользуюсь данным методом уже год - полёт отличный !


Сообщение отредактировал Black Jack: 05 Август 2018 - 21:25


#5 Off   trex

trex
  • Сливапер LVL 7
  • Сообщений: 159
  • Регистрация: 22.07.2014
  • Заработано: 206 руб.
Репутация: 1 126

Награды:

16   

Отправлено 05 Август 2018 - 21:40

Black Jack

Не понятно, к чему ваш комментарий и заминусовка? Эта статья для тех, кто еще не знает как обходить блокировки без использования прокси. Источник внизу статьи указан, да и в начале поста тоже написано, что статья известная. Разделу соответствует. Это же не курс какой то.



#6 Off   Black Jack

Black Jack
  • Сливапер LVL 5
  • Сообщений: 159
    • Онлайн: 3д 16ч 46м 21с
  • Регистрация: 03.09.2014
  • Заработано: 0 руб.
Репутация: 377

Отправлено 05 Август 2018 - 22:46

trex, раздел был не тот.



#7 Off   trex

trex
  • Сливапер LVL 7
  • Сообщений: 159
  • Регистрация: 22.07.2014
  • Заработано: 206 руб.
Репутация: 1 126

Награды:

16   

Отправлено 05 Август 2018 - 23:04

Black Jack, Разделами модераторы занимаются. И статья была в разделе болталка - прочее где постится все, на свое усмотрение



#8 On   MuzZL3

MuzZL3
  • Premium
  • Сообщений: 127
    • Онлайн: 36д 1ч 5м 33с
  • Регистрация: 26.04.2014
  • Заработано: 125 руб.
Репутация: 25

Награды:

10   

Отправлено 05 Август 2018 - 23:08

Проблема в том , что плюсануть жалко, а минусануть  хочется ) Менталитет )


Сообщение отредактировал MuzZL3: 05 Август 2018 - 23:11


#9 On   Lebedev

Lebedev
  • Сливапер LVL 5
  • Сообщений: 280
    • Онлайн: 16д 22ч 10м 3с
  • Регистрация: 08.08.2014
  • Заработано: 26 руб.
Репутация: 465

Награды:

12   

Отправлено 09 Август 2018 - 22:40

Запустите программу следующим образом:

  1. goodbyedpi.exe -1 -a

Не подскажешь, где и как это прописать? А за прогу спасибо, не знал)



#10 On   rapmachine

rapmachine
  • Platinum
  • Сообщений: 226
    • Онлайн: 6д 11ч 54м 58с
  • Регистрация: 08.07.2015
  • Заработано: 19 руб.
Репутация: 127

Награды:

10   

Отправлено 10 Август 2018 - 16:46

Lebedev, можно в ярлыке к программе (в свойствах ярлыка на рабочем столе, например), а можно через cmd (нужно указать полный путь до программы)





Похожие темы Collapse

Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных


×

Зарегистрируйся моментально!