Pull to refresh

Обход блокировки запрещенного сайта вебмастером без настроек и ПО на стороне клиента

Information Security *
Увидел я как-то IPv6 Teredo пиров в µTorrent под Windows, которые качали куски с довольно приличной скоростью, и тут меня осенило…

Что такое Teredo?

Teredo — технология туннелирования IPv6 через IPv4 UDP-пакеты. Она задумывалась как переходная технология, которая работает за NAT, и, в общем, более-менее выполняет возложенные на нее обязанности. Teredo позволяет получить доступ в IPv6-интернет через публичные Teredo-серверы. Интересно то, что в Windows 7, 8 и 8.1 Teredo настроен и включен по умолчанию, прямо из коробки, и использует сервер Teredo от Microsoft (teredo.ipv6.microsoft.com).

Зачем это нам?

Веб-сайты, определенные ссылки которых по тем или иным причинам оказались в реестре запрещенных сайтов, могут организовать доступ с использованием Teredo, что позволит вернуть доступ к сайту примерно 80-85% пользователям современных версий Windows без дополнительных настроек и ПО! Доступ через Teredo позволяет обойти все протестированные DPI-решения, применяемые провайдерами. Роскомнадзор не только не может внести такие страницы в реестр, но и не может получить к ним доступ (вероятно, Teredo у них не работает):
Скрытый текст
Здравствуйте
Благодарим Вас за активную гражданскую позицию, однако сообщаем, что Ваша заявка была отклонена по следующим возможным причинам:
— на момент проведения проверки экспертами, указанный в Вашем обращении адрес http://[2001:0:9d38:6ab8:30c4:d940:9469:f43e]/ был не доступен;
— указанный в Вашем обращение адрес http://[2001:0:9d38:6ab8:30c4:d940:9469:f43e]/ указан неверно, либо идет перенаправление на другой адрес;
— указанный в Вашем обращение адрес http://[2001:0:9d38:6ab8:30c4:d940:9469:f43e]/ требует обязательной регистрации/авторизации.
С уважением,
ФЕДЕРАЛЬНАЯ СЛУЖБА ПО НАДЗОРУ В СФЕРЕ СВЯЗИ, ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И МАССОВЫХ КОММУНИКАЦИЙ.
К тому же, у Роскомнадзора нет полномочий блокировать страницы, которые перенаправляют на другие страницы, и кнопка «Актуальный Навальный» тому подтверждение.

Особенности сервера Teredo от Microsoft

Для доступа в «обычный» IPv6, в Teredo используются Relay-серверы, которые имеют полный IPv6-доступ и работают как прокси-серверы. В свою очередь, relay-серверы Teredo от Microsoft не позволяют получить доступ в «обычный» IPv6 или к другим Teredo-серверам, разрешая только связность Teredo-клиентов, настроенных на сервер Microsoft, и образуя такую большую закрытую сеть из Windows-компьютеров.

Особенности реализации DNS в Windows

Если в ОС Windows имеется только Teredo IPv6-адрес, резолвер DNS не будет даже пытаться получать AAAA-запись у доменов. Таким образом, просто так зайти на сайт по доменному имени, даже если у него есть только AAAA-запись и нет A-записи, не получится. Это можно отключить специальным параметром в реестре, но это неинтересно, т.к. требует действий на стороне клиента.

Что делать?

Выход простой и не очень элегантный — использовать домен с доступом по IPv4, который сделает HTTP-перенаправление на Teredo IPv6-адрес. Можно делать как обычное перенаправление кодом 307 или 301, так и через javascript, предварительно проверяя доступность Teredo-адреса или комбинируя с другими решениями обхода блокировки.

Как настроить?

Чтобы разместить веб-сайт в Teredo под Linux, вам необходимо использовать Teredo-клиент miredo, и обязательно настроить его на использование сервера win8.ipv6.microsoft.com. Также, чтобы у вас как можно реже менялся Teredo-адрес, рекомендую задать статический исходящий порт в конфигурационном файле miredo (/etc/miredo/miredo.conf или /etc/miredo.conf, зависит от дистрибутива), т.е. установить параметр BindPort.
Убедитесь, что ваш веб-сервер слушает IPv6-адреса. Для nginx, это параметр listen.
Мой конфиг выглядит примерно так:
Скрытый текст
server {
        server_name 5yo.panty.shot.valdikss.org.ru;
        location / {
                return 307 http://[2001:0:9d38:90d7:899:d93f:9469:f43e]/;
        }
}

server {
        listen [2001:0:9d38:90d7:899:d93f:9469:f43e]:80;
        server_name [2001:0:9d38:90d7:899:d93f:9469:f43e];

        root /usr/share/nginx/html/pantyshot/;
        index index.html index.htm;

        location / {
                try_files $uri $uri/ =404;
        }
}

Я сделал тестовую страницу, на которой вы можете послушать замечательный трек Panty Shot от Mindless Self Indulgence. Думаю, можно считать его незаконным, учитывая кучу отмененных концертов бездуховных групп.
5yo.panty.shot.valdikss.org.ru
Страница должна открываться только в том случае, если у вы используете Windows 7, 8 или 8.1 и не имеете других IPv6-подключений (нативное, 6to4, 6in4).

Заключение

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

UPD: Microsoft отключила серверы Teredo, которые использовались для Windows Vista и 7. Теперь Teredo по умолчанию работает только в Windows 8, 8.1 и Windows 10.
Tags:
Hubs:
Total votes 52: ↑49 and ↓3 +46
Views 88K
Comments Comments 80