Как выйти из блокировки роскомзазор
Перейти к содержимому

Как выйти из блокировки роскомзазор

  • автор:

Как срать на Роскомнадзор и смотреть закрытые им сайты

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

Роскомнадзор разминается на сайтах с «пропагандой» самоубийств и наркотиков для того, чтобы закрывать любые сайты и иметь централизованный контроль над рунетом. Под раздачу попадают полезные ресурсы. Если сайт, который вам нравится, будь то любимая сетевая библиотека, статья про вещества или чей-то бложек, заблокировали — это не повод, печально пожав плечами, о нем забыть. Напротив — это отличный шанс без труда расширить свои возможности и научиться обходить любые неправомерные запреты, если вы этого еще не умеете. Лениться нельзя: Роскомнадзор имеет тенденцию блокировать целые домены из-за одной страницы, страдают невинные. Но даже если владельцы сайтов удалили подозрительный контент и Роскомнадзор изъял их из списка, это вовсе не значит, что ваш провайдер немедленно сделает то же самое. Нужно делать так, чтобы «запрет» совершенно ничего не изменял ни в функционировании ресурса, ни в вашей жизни. Это по силам любому.

Думаю, что среди наших читателей много людей, которые не подкованы в IT, но хотят знать, как по-простому обойти запреты. Вот вам простой гайд с картинками. В качестве примера запрещенного сайта возьмем любой сайт с самоубийствами или дудкой из списка здесь: http://antizapret.info/. Если не прибегать к ухищрениям, то при попытке открыть страницы провайдер демонстрирует примерно следующее:

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

0. Opera Turbo

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

Все, страница в вашем распоряжении:

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

1. Смена DNS-сервера

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

Опа, теперь все сайты с «дудкой» мои:

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

2. Анонимайзеры.

Если простейший способ не сработал, идем дальше. Идея работы анонимайзеров в следующем: вы подключаетесь к сайту вроде hidemyass.com, располагающемуся не в России, вводите нужный адрес в его окно, а анонимайзер транслирует вам в ответ запрещенную страницу, которая в других странах не запрещена.

http://hidemyass.com/
Это классика для тех, кто не желает разбираться в тонкостях. Просто заходите на сайт, вводите в окно запретный адрес — и, слегка подождав, получаете его на экране:

Чтобы автоматизировать процесс, можно поставить плагин для браузера (Firefox, Chrome). Но, конечно, это не единственный анонимайзер в мире и даже не самый удобный.

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

Любой человек, разбирающийся в IT, может развернуть свой публичный анонимайзер.

3. Ultrasurf

Программа была разработана китайцами для защиты от Великого Китайского Фаервола, не дающего получать информацию, отличающуюся от линии партии. Теперь она может послужить и вам. Скачиваете программу здесь — http://ultrasurf.us/, устанавливаете. При запуске она автоматически открывает настроенный на работу Internet Explorer, куда можно вводить нужный адрес и получать результат:

Те, кто работать с IE не может из-за отвращения, могут настроить свой браузер на работу с ultrasurf. Для этого откройте настройки браузера и в качестве прокси-сервера укажите следующее:

4. Tor

Возможности сети Tor велики, и хорошо то, что «почувствовать себя хакером» может любой. Просто покажем, как можно использовать Tor для открытия запрещенных сайтов. Для простоты будем полагать, что вы используете Windows. Люди, использующие Linux, в таких инструкциях не нуждаются. Подчеркиваю, что для установки не требуется никаких спец.знаний. Можно быть девочкой в розовом, которая при слове «IP» зеленеет, — это совершенно не помешает открывать запрещенные Роскомнадзором сайты!

Скачиваете пак Tor Browser Bundle отсюда — на русском или на английском. Запускаете и распаковываете в папку, где затем сможете его найти. Например, так:

Запускаете «луковицу». Через некоторое время видите вот такое окно:

Следом открывается спец-браузер и поздравляет вас:

Ура, можно открывать запрещенные сайты с котиками в этом доп.браузере и наслаждаться:

5. JAP

JAP дает возможность подключаться к сети через каскад зарубежных прокси-серверов, поэтому годится больше для анонимизации (у вас будет IP адрес европейской страны), но его вполне можно использовать и для того, чтобы срать в рот Роскомнадзору. Почему нет — очевидно же, что на простых мерах они не остановятся. Единственная проблема в том, что бесплатные каскады работают медленно. Также я рекомендую этот способ для продвинутых пользователей, новичкам он может показаться слишком сложным.

Для настройки придется немного поднапрячься, но осилить нехитрую цепь действий может каждый. После запуска программы проверьте опции и включите «Анонимность»:

Ваш интернет-браузер должен перенаправлять свои запросы на этот порт. Для этого откройте настройки соединения своего браузера (здесь для примера используется Опера):

То же самое для Firefox:

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

Бесплатная версия работает медленно, однако дает доступ туда, куда вам с российским IP вход запрещен, а также демонстрирует закрытые Роскомнадзором сайты. Когда вам надоест, уберите прокси в настройках браузера:

6. Хардкор.

SSH-туннель к амазоновскому серверу или VPN на его базе.

Этот способ, конечно, для рядовых пользователей не подходит, но было бы неверно о нем не рассказать для остальных. Существует просто масса различных статей и видео на этот счет, потому что идея пришла в голову не только мне. Результат стоит небольших денег. Привожу этот пример потому, что он дико прост и этим очень остроумен. Лично мне он кажется крайне смешным. Amazon EC2 позволяет создавать сервера с различными операционными системами и мощностями и гонять их за умеренную почасовую оплату. Цена нужного нам инста (small, linux) — 0.03 (!) $ / час. Вряд ли вы будете зачитываться запрещенными ресурсами дольше, но даже при условии работы по несколько часов в день — это весьма гуманно. Сервера располагаются в Америке и Ирландии, что идеально подходит для туннелирования.

Будем исходить из того, что о создании машин в Amazon EC2 вы знаете и у вас уже есть аккаунт. Логиньтесь в консоль: https://console.aws.amazon.com/ec2/home?region=us-east-1#s=Instances, выбирайте EC2 -> Instances.

Создаете инст по вкусу: Launch instance -> выбор операционки (для примера Red Hat или Ubuntu, тип — Micro) :

Дальше все оставляете, как есть, -> создаете ключ и загружаете его:

Включаете в секьюрити-группу, где открыт SSH-порт (22), запускаете машину. После того, как инст запустился, к нему нужно подключиться. Для более разящего эффекта сделаем это через putty. Для этого загружаете ключ в Putty Key Generator (Load) и сохраняете private key:

Дальше нужно настроить соединение к серверу. Смотрите public DNS в консоли и настраиваете подключение в putty:

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

Отлично. Теперь настраиваете в браузере SOCKS-proxy. Proxy в данном случае выступает Putty:

Опа, у меня американский IP, высокая скорость и открыты абсолютно все сайты, нелюбимые Роскомнадзором.

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

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

Что делать, если РКН заблокировал сайт. На примере личного опыта

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

Я не буду погружаться в подробности блокировок, на это на VC есть хорошая статья. Что примечательно — она появилась в день, когда нас заблокировали.

Вас могут заблокировать по куче разных причин, про которые можно прочитать в статье выше.

В теории, если у вас внесудебная блокировка, все должно происходить так:

1. РКН уведомляет вашего хостера о наличии запрещенной информации

2. Хостер уведомляет вас. После чего у вас есть 24 часа на «устранение нарушений». В противном случае РКН вносит вас в реестр и у вас начинаются проблемы.

3. Чтобы проверить, внесли вас в реестр или нет, пользуйтесь «сервисами» самого РКН. Важно! Если у вас кириллический домен — ищите по punicode адреса сайта. А не «рога-и-копыта.рф»

4. Если вы не успели устранить нарушение и уже попали в реестр, то вы должны устранить все нарушения. Причем не только материал, на который возбудился РКН, но и любые ссылки на него.

5. После того, как вы устранили нарушение, идете на сайт РКН на форму обратной связи — выбираете пункт «Информация об ограничении доступа», затем «Вы являетесь владельцем ресурса и хотите сообщить об устранении нарушений». Заполняете форму и ждете.

По данным FAQ на сайте РКН, в теории, если нарушение устранено, вы должны быть разблокированы в течении 3 дней после подачи уведомления. Но это теория. практика, к сожалению, не так оптимистична. По крайней мере в нашем случае. Есть мнение, что в течении 3 дней разблокируют только если вас заблокировали по распоряжению Минкомсвязи, а если ФНС, МВД и прочие ведомства — это надолго.

Мы попали в реестр, потому что хостеру не пришло никаких предупреждений от РКН. Точнее пришло, но неделю спустя после фактической блокировки.

Первое что нужно выяснить, если вы уже в реестре

1. «Кто» вас заблокировал — это могут быть разные ведомства. В нашем случае инициатором блокировки была ФНС. Эту информацию вы можете найти в поиске по реестру на сайте РКН

2. За что заблокировали. Тут сложнее. Поиск в реестре не показывает конкретно за что. Только тип ограничения — к сайту или странице. А к какой странице — догадайся сам.

Узнать конкретно за что — можно разными путями. Можно попробовать написать хостеру, но более быстрый и простой путь — через сайт Роскомсвобода

В нашем случае, причиной блокировки оказалась «левая» страница на сайте, с рекламой онлайн казино, которая попала туда в результате взлома еще несколько месяцев назад. Нас взломали, закинули на сайт несколько html с «запрещенкой» и скрытые ссылки в футер сайта на них. Видимо одну ссылку проиндексировал поисковик и РКН сказал «фас».

Вычистив сайт мы на следующий же день написали в РКН через форму обратной связи и на [email protected].

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

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

Первая горькая пилюля. По закону у них (да и у других «органов») есть на ответ 30 дней. И будьте уверены, раньше вы ответ не получите. В нашем случае ответ из ФНС мы получили ровно через 29 дней.

В течении этого времени, мы несколько раз писали в РКН через форму обратной связи и на почту, но неизменно получали только ответ робота.

Где-то за 2 дня до ответа из ФНС, решили пойти другим путем. Не просто заполнили форму на сайте РКН, но и пристегнули к форме скан бумажного варианта заявления на имя г. Жарова, от владельца доменного имени с подписью. Не знаю, сыграло это роль или просто совпадение, но спустя 2 часа, после того как мы получили ответ от ФНС, что они к нам претензий более не имеют, пришло и письмо от РКН с тем, что «ваше заявление принято — срок рассмотрения. 29 декабря (то есть спустя те же 30 дней от момента подачи).

Сайт удалили из реестра примерно через неделю после ответа из ФНС. Итого мы были под блокировкой 35 дней. Что для многих компаний — смерти подобно. И еще какое-то время пройдет, пока ограничения начнут снимать провайдеры

Поэтому можно сделать следующие выводы..

1. Если вы попали в реестр, устранили нарушение, уведомили РКН, но вас не разблокировали в течении 3 дней, готовьтесь к тому, что это надолго — скорее всего на месяц. Поэтому ждать или «переезжать» — принимайте решение сами. Мы ждали почти 1.5 недели, но потом решили «переезжать» на другой домен.

2. На вас и ваши трудности — всем. ну вы поняли. Как-либо ускорить процесс, «объяснить ситуацию» и прочее — бесполезно. Можно только долбить куда только можно — в надежде, что что-то сработает.

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

4. Если вас не разблокировали за 3 дня — пишите заявление в то ведомство, которое вас заблокировало. Попробуйте так-же написать заявление в РКН и отправить его через «форму обратной связи» РКН, выбрав «Центральный аппарат. Можете попробовать даже через Kremlin.ru — чем черт не шутит, говорят иногда помогает.

5. Главное, на что нужно напирать в заявлениях в п.4, это то, что вы устранили нарушения, уведомили об этом РКН и что вас по закону должны разблокировать за 3 дня, чего не произошло. Желательно прикладывая доказательства, хотя бы скриншот ответа робота РКН, чтобы была видна дата ответа. Что вы действительно уведомили и ответ от РКН получили.

К сожалению, ни один из способов не дает гарантии какой либо быстрой реакции от ведомств. Закон у нас только «для друзей».

Отдельно хотелось бы сказать «о реакции» @66957-timeweb . Она просто феерична. Когда мы приняли решение о переезде и решили поменять IP сервера в настройках DNS, то NS сервера таймвеба стали отдавать IP 127.0.0.1

В ответ на запрос в саппорт таймвеба в стиле WTF — нам ответили «вы под блокировкой РКН, поэтому вот, у нас автоматика так работает». И перенаправили запрос в юридический отдел Таймвеба. А там.. о чудо. срок ответа 30 дней и тишина.

На то, что РКН ограничивает доступ только на территории РФ, а таким методом они перекрыли кислород вообще, по всему миру, им плевать. Скорее всего расчет на то, что никто в суд не побежит а побегут менять ns сервера — баба с возу, кобыле легче.

Что собственно и пришлось делать. Из-за этой подставы со стороны Таймвеб пришлось купить на время дешевый тарифный план у одного западного хостера ( с нашими решили уже не рисковать) и указать их NS сервера — так получилось поменять IP для настройки переадресации. Так что, если вас не добил РКН — Таймвеб ему поможет. Браво коллеги. Я конечно понимаю, что видимо Таймвеб уже огреб проблем от РКН и теперь дует на воду, но поведение все равно скотское.

1. «Будьте разборчивее в связях» — заблокировать вас могут за что угодно, за коммент, за «левый» материал. Никто разбираться не будет. Это вы будете доказывать, что не верблюд. И главное — если вас вовремя уведомили, времени на поиск и исправление — в обрез. 24 часа.

2. Если попали под блокировку и вас быстро не разблокировали, учтите что это может быть надолго — до месяца точно.

3. Проверенных и гарантированных способов ускорить снятие блокировки — нет.

4. Некоторые отечественные провайдеры — с удовольствием помогут вас «добить» если у РКН не получилось с первого раза.

Обход блокировок РКН с помощью DNSTap и BGP

Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены.

В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные «Ревизорро» — сопутствующие потери от блокировок довольно велики. Да и среди «правомерно» заблокированных сайтов много полезных (привет, rutracker)

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

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

Типы блокировок

Для начала освежим в памяти что же блокируется.

В выгружаемом XML от РКН несколько типов блокировок:

  • IP
  • Домен
  • URL

Мы их сведем для простоты к двум: IP и домен, а из блокировок по URL будем просто вытаскивать домен (точнее за нас это уже сделали).

Хорошие люди из Роскомсвободы реализовали прекрасный API, через который можно получать то, что нам нужно:

  • IP: https://api.reserve-rbl.ru/api/v2/ips/json
  • Домены: https://api.reserve-rbl.ru/api/v2/domains/json

Доступ к заблокированным сайтам

Для этого нам нужен какой-нибудь маленький зарубежный VPS, желательно с безлимитным траффиком — таких много по 3-5 баксов. Брать нужно в ближнем зарубежье чтобы пинг был не сильно большой, но опять-таки учитывать, что интернет и география не всегда совпадают. А так как никакого SLA за 5 баксов нет — лучше взять 2+ штуки у разных провайдеров для отказоустойчивости.

Далее нам необходимо настроить зашифрованный туннель от клиентского роутера до VPS. Я использую Wireguard как самый быстрый и простой в настройке т.к. клиентские роутеры у меня тоже на базе Linux (APU2 или что-то на OpenWRT). В случае каких-нибудь Mikrotik/Cisco можно использовать доступные на них протоколы вроде OpenVPN и GRE-over-IPSEC.

Идентификация и перенаправление интересующего траффика

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

Поэтому нам нужно будет каким-то образом выделять траффик к заблокированным сайтам и выборочно его направлять в туннель. Даже если туда попадёт какая-то часть «лишнего» траффика, это всё равно гораздо лучше, чем гонять всё через тоннель.

Для управления траффиком мы будем использовать протокол BGP и анонсировать маршруты до необходимых сетей с нашего VPS на клиентов. В качестве BGP-демона возьмём BIRD, как один из наиболее функциональных и удобных.

С блокировками по IP всё понятно: просто анонсируем все заблокированные IP с VPS. Проблема в том, что подсетей в списке, который отдает API, около 600 тысяч, и подавляющее большинство из них — это хосты /32. Такое количество маршрутов может смутить слабые клиентские роутеры.

Поэтому было решено при обработке списка суммировать до сети /24 если в ней 2 и более хоста. Таким образом количество маршрутов сократилось до

100 тысяч. Скрипт для этого будет дальше.

Домены

Тут сложнее и способов есть несколько. Например, можно поставить прозрачный Squid на каждом клиентском роутере и делать там перехват HTTP и подглядывание в TLS-хендшейк с целью получения запрашиваемого URL в первом случае и домена из SNI во втором.

Но из-за всяких новомодных TLS1.3+eSNI анализ HTTPS с каждым днем становится всё менее реальным. Да и инфраструктура со стороны клиента усложняется — придется использовать как минимум OpenWRT.

Поэтому я решил пойти по пути перехвата ответов на DNS-запросы. Тут тоже над головой начинает витать всякий DNS-over-TLS/HTTPS, но эту часть мы можем (пока что) контролировать на клиенте — либо отключить, либо использовать свой сервер для DoT/DoH.

Как перехватывать DNS?

Тут тоже может быть несколько подходов.

  • Перехват DNS-траффика через PCAP или NFLOG
    Оба эти способа перехвата реализованы в утилите sidmat. Но она давно не поддерживается и функционал очень примитивен, так что к ней нужно всё равно нужно писать обвязку.
  • Анализ логов DNS-сервера
    К сожалению, известные мне рекурсоры не умеют логгировать ответы, а только запросы. В принципе это логично, так как в отличии от запросов ответы имеют сложную структуру и писать их в текстовой форме трудновато.
    К счастью, многие из них уже поддерживает DNSTap для этих целей.
Что такое DNSTap?

Это клиент-серверный протокол, основанный на Protocol Buffers и Frame Streams для передачи с DNS-сервера на некий коллектор структурированных DNS-запросов и ответов. По сути DNS-сервер передает метаданные запросов и ответов (тип сообщения,IP клиента/сервера и так далее) плюс полные DNS-сообщения в том (бинарном) виде в котором он работает с ними по сети.

Важно понимать, что в парадигме DNSTap DNS-сервер выступает в роли клиента, а коллектор — в роли сервера. То есть DNS-сервер подключается к коллектору, а не наоборот.

На сегодняшний день DNSTap поддерживается во всех популярных DNS-серверах. Но, например, BIND во многих дистрибутивах (вроде Ubuntu LTS) часто собран почему-то без его поддержки. Так что не будем заморачиваться пересборкой, а возьмём более легкий и быстрый рекурсор — Unbound.

Чем ловить DNSTap?

Есть некоторое количество CLI-утилит для работы с потоком DNSTap-событий, но для решения нашей задачи они подходят плохо. Поэтому я решил изобрести свой велосипед, который будет делать всё что необходимо: dnstap-bgp

  • При запуске загружает из текстового файла список доменов, инвертирует их (habr.com -> com.habr), исключает битые строки, дубликаты и поддомены (т.е. если в списке есть habr.com и www.habr.com — будет загружен только первый) и строит префиксное дерево для быстрого поиска по этому списку
  • Выступая в роли DNSTap-сервера ждет подключения от DNS-сервера. В принципе он поддерживает как UNIX- так и TCP-сокеты, но известные мне DNS-сервера умеют только в UNIX-сокеты
  • Поступающие DNSTap-пакеты десериализуются сначала в структуру Protobuf, а затем само бинарное DNS-сообщение, находящееся в одном из Protobuf-полей, парсится до уровня записей DNS RR
  • Проверяется есть ли запрашиваемый хост (или его родительский домен) в загруженном списке, если нет — ответ игнорируется
  • Из ответа выбираются только A/AAAA/CNAME RR и из них вытаскиваются соответствующие IPv4/IPv6 адреса
  • IP-адреса кешируются с настраиваемым TTL и анонсируются во все сконфигурированные BGP-пиры
  • При получении ответа, указывающего на уже закешированный IP — его TTL обновляется
  • После истечения TTL запись удаляется из кеша и из BGP-анонсов
  • Перечитывание списка доменов по SIGHUP
  • Синхронизация кеша с другими экземплярами dnstap-bgp через HTTP/JSON
  • Дублирование кеша на диске (в базе BoltDB) для восстановление его содержимого после перезапуска
  • Поддержка переключения в иной network namespace (зачем это нужно будет описано ниже)
  • Поддержка IPv6
  • IDN домены пока не поддерживаются
  • Мало настроек BGP

Я собрал RPM и DEB пакеты для удобной установки. Должны работать на всех относительно свежих OS с systemd, т.к. зависимостей у них никаких нет.

Схема

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

Логика работы, думаю, понятна из диаграммы:

  • У клиента настроен наш сервер в качестве DNS, причем DNS запросы тоже должны ходить по VPN. Это нужно для того чтобы провайдер не мог использовать перехват DNS для блокировки.
  • Клиент при открытии сайта посылает DNS-запрос вида «а какие IP у xxx.org»
  • Unbound резолвит xxx.org (или берет из кеша) и отправляет ответ клиенту «у xxx.org такие-то IP», параллельно дублируя его через DNSTap
  • dnstap-bgp анонсирует эти адреса в BIRD по BGP в том случае если домен есть в списке заблокированных
  • BIRD анонсирует маршрут до этих IP с next-hop self клиентскому роутеру
  • Последующие пакеты от клиента к этим IP идут уже через туннель

На сервере для маршрутов к заблокированным сайтам у меня внутри BIRD используется отдельная таблица и с ОС она никак не пересекается.

В этой схеме есть недостаток: первый SYN пакет от клиента, скорее всего, успеет уйти через отечественного провайдера т.к. маршрут анонсируется не мгновенно. И тут возможны варианты в зависимости от того как провайдер делает блокировку. Если он просто дропает траффик, то проблем нет. А если он редиректит его на какой-то DPI, то (теоретически) возможны спецэффекты.

Также возможны чудеса с несоблюдением клиентами DNS TTL, что может привести к тому что клиент будет юзать какие-то устаревшие записи из своего протухшего кеша вместо того чтобы спросить Unbound.

На практике у меня ни первое ни второе не вызывало проблем, but your mileage may vary.

Настройка сервера

Для удобства раскатывания я написал роль для Ansible. Она может настраивать как сервера, так и клиенты на базе Linux (рассчитано на deb-based дистрибутивы). Все настройки достаточно очевидны и задаются в inventory.yml. Эта роль вырезана из моего большого плейбука, поэтому может содержать ошибки — pull requests welcome 🙂

Пройдёмся по основным компонентам.

При запуске двух BGP-демонов на одном хосте возникает фундаментальная проблема: BIRD никак не хочет поднимать BGP-пиринг с локалхостом (или с любым локальным интерфейсом). От слова совсем. Гугление и чтение mailing-lists не помогло, там утверждают что это by design. Возможно есть какой-то способ, но я его не нашёл.

Можно попробовать другой BGP-демон, но мне нравится BIRD и он используется везде у меня, не хочется плодить сущности.

Поэтому я спрятал dnstap-bgp внутрь network namespace, которое связано с корневым через veth интерфейс: это как труба, концы которой торчат в разных namespace. На каждый из этих концов мы вешаем приватные p2p IP-адреса, которые за пределы хоста не выходят, поэтому могут быть любыми. Это тот же механизм который используется для доступа к процессам внутри любимого всеми Docker и других контейнеров.

Для этого был написан скрипт и в dnstap-bgp был добавлен уже описанный выше функционал перетаскивания себя за волосы в другой namespace. Из-за этого его необходимо запускать под root либо выдать бинарнику CAP_SYS_ADMIN через команду setcap.

Доступ к сайтам в РФ ограничен. Как обойти блокировки

Власти РФ после начала войны против Украины вводят массированные ограничения на доступ к СМИ, социальным сетям и магазинам приложений. Что можно сделать, если вы не согласны? Обзор DW.

Способ обойти блокировки - с помощью приложения DW

Способ обойти блокировки — с помощью приложения DWФото: O. Linow/DW

Сайт DW уже более года недоступен для читателей из России, которые пользуются российскими провайдерами: «Не удается получить доступ к сайту». Едва ли для кого-то в РФ осталось незамеченным, что власти страны массово блокируют сайты зарубежных СМИ, соцсетей, отдельные мобильные приложения и многое другое. Что делать тем, кто хотел бы продолжать читать нас и другие СМИ, которые блокируют в России? Обзор DW не предлагает перечень всех имеющихся сегодня инструментов для свободного получения информации, но есть базовые вещи, которые может сделать каждый. Некоторые из предлагаемых мер помогли бы получить доступ к тем материалам, которые вы хотите читать, другие — еще и повысить безопасность личных данных в интернете. С 1 сентября 2024 года распространение информации об обходе блокировок подпадет под запрет в России, но само знакомство с информацией не преследуется по закону РФ.

«Зеркало» и приложение DW, а также Psiphon

Самый простой способ выйти на нужный вам контент — это использовать зеркало или прокси. Сайт DW, например, доступен по этой зеркальной ссылке: http://www.dw-world.cn

. Другие варианты: подпишитесь на наш канал в Telegram — «DW Главное

DW поддерживает приложение для обхода цензуры Psiphon. Это не классический VPN-провайдер, его задача — не столько защитить данные, сколько дать одновременно большому числу людей возможность доступа к интернету, как объясняют сами создатели и руководители проекта. Идея проекта: в случае массированных блокировок большое число пользователей может сохранить свободный доступ к сети, в то время как обычные провайдеры VPN могут оказаться перегружены.

Используйте QR-Code или пустой emailФото: DW

Этот расчет сработал во время массовых протестов в Беларуси после выборов президента в августе 2020 года, когда им ежедневно пользовалось более миллиона жителей страны. Psiphon до сих пор официально в России не блокируется. Если вы хотите использовать Psiphon, то можете скачать его с сайта или же отправьте пустое письмо по адресу dww@psiphon3.com. Если вы будете использовать Psiphon, загруженный через DW, то сначала приложение будет перенаправлять вас на сайт DW. Далее вы можете продолжить пользоваться интернетом по своему усмотрению.

Мобильное приложение DW для обхода блокировки

Мобильное приложение DW использует встроенный софт Psiphon. Загрузить версии приложения DW для смартфонов и айфонов можно по этим ссылкам: Android

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

Вот что видят многие пользователи в РФ, когда пытаются выйти на нашу страницуФото: Mikhail Bushuev/DW

Но, возможно, наилучший способ — это тот, который одновременно помогает защищать вам свой трафик. Защищать свой трафик можно разными путями, один из наиболее удобных сегодня — это установить безопасное зашифрованное подключение к интернету, коротко: VPN (сокращение от английского Virtual Private Network).

Цель использования VPN — сделать недоступными для мониторинга ваши действия в интернете: виден только зашифрованный трафик, а сайты, которые вы посещаете, видят не ваш IP-адрес, а адрес VPN-сервера. VPN-сервисы получают доступ к вашим данным, поэтому, чтобы избежать утечки ваших данных, например, в рекламных целях, эксперты по интернет-безопасности настоятельно советуют использование платных VPN-провайдеров. Одна из надежных бесплатных альтернатив — это швейцарский сервис Proton VPN

. DW заключила в марте 2023 года уникальное в своем роде партнерство с компанией Proton и рекомендует пользоваться этим сервисом так же, как и известной своей надежностью почтой Proton Mail. Благодаря строгому в отношении защиты частной переписки законодательству Швейцарии Proton гарантирует, что никакие личные данные пользователей не хранятся у компании.

Часть VPN-сервисов ушла или недоступна в РФ, еще часть — подвергается блокировкам со стороны Роскомнадзора. Тем не менее выбор по-прежнему достаточно широкий. Например, Proton VPN официально находится в России под запретом, но сайт компании на момент публикации — август 2023 года — свободно открывался с нескольких независимых адресов в РФ. Сравнить и выбрать другие проверенные сервисы можно, например, на специально созданном сайте проекта «Роскомсвобода

» по защите интернет-прав, или просто в одном из магазинов приложений.

Альтернативы: браузер Tor

Еще один вариант обхода блокировок, средство анонимизации и защиты личных данных — это установка маршрутизатора, например, браузера Tor

Tor работает на технологии так называемой «многослойной» или «луковой» маршрутизации, когда запрос пользователя не напрямую поступает по какому-то адресу, а через узлы прокси-серверов, так что отследить исходный запрос сложно, если возможно. Вместе с определенной долей анонимности пользователю придется смириться с небольшими ограничениями в вопросах комфорта: страницы в Tor грузятся медленнее, чем в обычном браузере, программа не сохраняет список посещенных сайтов, адреса и пароли — каждый раз все приходится заносить заново. DW тоже использует Tor, где у нашего сайта есть свой адрес:

Настройки в приложении DWФото: O. Linow/DW

Российские власти еще в 2021 году начали блокировать как основной сайт проекта, так и зеркала, то есть копии основного сайта на других адресах, а также ограничили доступ к серверам, с которыми связывается браузер Tor, так как IP-адреса этих серверов публично известны. РКН ранее предринимал попытки блокировать и сам трафик, который идет через Tor. Для этого российские власти используют технологию DPI (deep paket inspection) — в России она называется ТСПУ («Технические средства противодействия угрозам»). По данным самого проекта Tor, блокировки не имеют значительного эффекта: число пользователей Tor в РФ за последний год выросло на 50 процентов, до 300 тысяч человек ежедневно.

P.S. Эта статья регулярно обновляется.

В России растет популярность VPN

To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *