С 7-го января в России полностью запретят VPN
С 7-го января в России полностью запретят VPN
Как вам заголовок, а? Как вам такой подарочек на Рождество?
Нет, это неправда, это шутка такая.
Не с 7-го января запретят. С другого числа запретят.
Добро пожаловать под кат, будем вместе учиться обходить блокировки VPN у наших коллег из дружественных стран – Китая, Ирана, Туркменистана и конечно же Северной Кореи.
AmneziaVPN снова на связи!
О VPN сервисах
Нужно иметь в виду, что обычные коммерческие VPN сервисы достаточно легко заблокировать. Несмотря на то, что самые продвинутые и крутые коммерческие VPN клиенты умеют маскировать VPN трафик от систем блокировок и DPI, они всё равно уязвимы к блокировкам подсетей IP адресов, на которых находятся эти VPN сервера, и к блокировкам управляющих серверов. Ещё один аргумент - регулятор может сам приобрести подписку на этот VPN сервис, и анализировать куда обращается VPN клиент, и в реальном времени блокировать эти адреса. Скорее всего, некоторые уже так и делают.
Чем крупнее и популярнее коммерческий VPN сервис – тем сильнее у надзорных органов желание его заблокировать. В этом отношении небольшие VPN сервисы могут остаться незаметными, и не попасть под пристальное наблюдение регуляторов. Но для них остаётся высокой вероятность блокировки по сигнатурам трафика, если до этого дойдёт и такой VPN сервис не имеет функций маскировки VPN.
Если какой-то VPN сервис всё ещё работает, это не означает, что его не могут заблокировать, возможно просто до него не дошла очередь, или не настал подходящий момент. Нужно иметь в виду, что в несвободных странах вопросам блокировок уделяется достаточно высокое внимание, прогресс не стоит на месте, и средства обнаружения VPN и его блокировок со временем только совершенствуются.
О протоколах VPN
Все популярные VPN протоколы достаточно легко детектируются средствами DPI, и как следствие, легко блокируются.
Если подробнее, то ситуация следующая. Я бы разбил VPN протоколы на несколько групп:
Первая группа – самые уязвимые к блокировкам – это протоколы Wireguard, OpenVPN в режиме UDP, а также IKEv2, и всякие старые протоколы типа L2TP. Такие протоколы блокируются по простым сигнатурам, или вообще номеру порта.
Вторая группа – протоколы, которые более сложно заблокировать. Они работают на основе протокола TLS (на котором и работает web), и казалось бы, должны хорошо противостоять блокировкам. Но на деле, оказывается что они всё таки имеют сигнатуры, по которым их можно различать, и поэтому тоже блокируются. Это OpenVPN в режиме TCP, а также обычный socks proxy.
Третья группа – это протоколы или связки протоколов, которые хорошо маскируются под web трафик, вследствие чего их сложно затедектировать, и заблокировать. Это OpenConnect/AnyConnect, OpenVPN с патчем XOR, а так же я бы включил в эту группу протокол ShadowSocks и тунель через SoftEther. Основной отличительной особенностью этой группы я бы назвал то, что эти протоколы сложно отличить от обычного web трафика, но всё ещё можно. К примеру, существует такой возможный способ блокировки - путём анализа энтропии заголовков. ShadowSocks полностью рандомизирует передаваемые заголовки, от чего он становится не похожим на настоящий web трафик. Или ещё более хитрая проверка - если VPN протокол маскируется под web трафик, то система анализа сама пытается открыть тот же самый веб адрес, который указан в заголовке пакета - так работает Великий Китайский Фаервол.
И четвертая группа – это протоколы или связки протоколов, которые крайне сложно или абсолютно невозможно отличить от настоящего web трафика. Сюда можно отнести специальные плагины для маскировки VPN, которые разрабатываются специально для этой цели мимикрии под web трафик, в частности такие плагины как v2ray, vless, wstunnel, cloak и другие.
Так вот, эти плагины начали появляться в большом количестве по одной причине – потому что в какой-то момент придумали, что задачу маскировки можно вынести в отдельный модуль, в плагин. И появился даже целый стандарт - называется Pluggable Transport. Изначально его сделали для TOR ещё в 2012 году, а позже добавили поддержку Pluggable Transport и в клиент ShadowSocks. А ещё позже, буквально пару лет назад появилась неофициальная поддержка Pluggable Transport для OpenVPN.
Пишите в комментах если я поместил какие-то протоколы не в те группы, или в чем то ошибся – поправим, дополним.
О AmneziaVPN
Пришло время напомнить об AmneziaVPN, проекте, родившемся на первом хакатоне Demhack, прокачавшемся в Privacy Accelerator и ставшем одним из самых перспективных self-hosted VPN настоящего времени.
В нашей прошлой статье, вышедшей ещё в 2021 году, мы вам наглядно показали, к чему нужно готовиться к 2033 году на примере иллюстрации технологии портативного раскладного спутникового зонда. К сожалению, наши прогнозы не сбылись, и реальность такова, что эти устройства могут занять свою нишу, извините за каламбур, уже в наступившем 2023 году.
Так вот, основной задачей проекта AmneziaVPN является сохранение ваших … сил и нервов при доступе к безграничному Интернету в условиях новой суровой реальности.
AmneziaVPN – это бесплатное программное обеспечение с открытым исходным кодом для создания личного VPN на вашем сервере. Не требует специальных технических знаний для установки и настройки сервера, а также использует широкий стек протоколов – OpenVPN, WireGuard, IKEv2, а также ShadowSocks и Cloak, которые намного более устойчивы к блокировкам VPN. На сегодняшний день Amnezia – одно из немногих решений, которое работает даже в репрессивной среде Туркменистана и Ирана.
С VPN сервисами активно борются в странах с жесткой интернет-цензурой. В России, например, за последний год было заблокировано множество VPN. Вам, скорее всего, известны такие названия – Surfshark, Proton, TunnelBear и другие. Вас не смущает факт, что они перестали работать? Нас вот очень напрягает. Поэтому главная задача Amnezia – это создать продукт, который сможет противостоять блокировкам разной сложности.
Мы предполагаем, что в случае блокировки протоколов VPN в России, Амнезия останется одним из немногих инструментов обходы цензуры, наряду с такими проектами как Tor, Lantern, Psiphon, Ceno.
Главная задача AmneziaVPN – сделать поддержку как и обычных VPN протоколов, так и протоколов из четвертой группы, которые крайне сложно обнаружить и заблокировать.
AmneziaVPN уже имеет реализацию маскировки VPN через плагин Cloak, пока это работает только на десктопных платформах, но мы уже работаем над добавлением такого функционала в релизы AmneziaVPN для Android и iOS.
Об этом чуть ниже, пока всё по порядку.
Данная статья приурочена к долгожданному событию – мы наконец-то зарелизили приложение для iOS. Теперь у нас есть полный арсенал – клиенты для Windows, MacOS, Linux, Android и iOS. И вы не поверите, всё упаковано в единую кодовую базу, проект написан на c++/Qt/QML с использованием платформозависимых вставок на Java/Kotlin/ObjectiveC/Swift.
Для ленивых, или кому не интересны внутренние тонкости Амнезии – можете перематывать в самый низ, к разделу “А-А-А ЧТО ДЕЛАТЬ”.
О Docker
В принципе, пользователям необязательно знать подробности, как оно там внутри Амнезии устроено, но так как мы с вами всё ещё на Хабре, давайте немного погрузимся в детали.
После того, как вы вбиваете в Амнезию логин, пароль и адрес сервера, она подключается к нему по SSH и начинает устанавливать на нём VPN сервисы, естественно те, которые вы явно указали.
Каждый сервис в Амнезии называется контейнер – это потому что в Амнезии всё упаковано в Docker контейнеры.
Название контейнера говорит о том, какой у него порт/протокол торчит наружу, например контейнер OpenVPN будет открывать только один порт OpenVPN (TCP или UDP в зависимости от выбора при настройке). И подключиться к этому контейнеру снаружи можно только через OpenVPN.
То же самое с контейнером ShadowSocks – у него наружу торчит только порт ShadowSocks. Но внутри этого контейнера есть уже два протокола OpenVPN и ShadowSocks. То есть, вы можете подключиться к этому контейнеру просто протоколу ShadowSocks, или связкой OpenVPN over ShadowSocks.
В контейнере Cloak наружу торчит TCP/443, к которому можно подключиться только через Cloak, ну вы поняли. А внутри там уже целый зоопарк, помимо Cloak живут и OpenVPN, и ShadowSocks. Соответственно для работы VPN через этот контейнер нужно подключаться связкой OpenVPN over Cloak или ShadowSocks over Cloak. Причём не важно, подключитесь ли вы самой Амнезией, или другим клиентом, который поддерживает такую связку, например официальный клиент ShadowSocks с подключенным плагином Cloak.
Немного замудрёно? Возможно да, но это создаёт гибкость. Список поддерживаемых контейнеров можно найти здесь, прямо в репе. Вы можете почитать эти скрипты, и убедиться что Амнезия не делает ничего лишнего, а может даже и дать нам рекомендации как их улучшить!
Об экспорте конфига
У Amnezia есть фича, и заключается она в том, что пользователь может подключаться к настроенному VPN серверу не только с помощью Amnezia.
Мы делаем свободный универсальный инструмент, вы можете, например, настроить Амнезией OpenVPN контейнер, экспортировать конфиг для OpenVPN, и подключаться к нему с помощью обычного OpenVPN клиента, загрузив в него сгенерированный конфиг.
То же самое справедливо и для все других контейнеров, но в случае с Cloak контейнером например, вам нужно будет очень сильно заморочиться, чтобы настроить своими руками связку OpenVPN over Cloak или ShadowSocks over Cloak.
Тем не менее, это то, что мы дали ещё год назад пользователям из Туркменистана и Ирана. И к нашему удивлению, нашлось много энтузиастов, которые начали настраивать ShadowSocks over Cloak на мобильных устройствах по такой схеме. Напомним, у нас пока Амнезия для Android и iOS ещё не поддерживает подключение по этим связкам, мы усердно работаем над этим, это скоро будет, и это будет пушка!
О OpenVPN
На данный момент в Amnezia протокол OpenVPN получил наиболее полную поддержку – он работает на клиентах AmneziaVPN под все поддерживаемые платформы – Windows/MacOS/Linux/Android/iOS.
Старый добрый OpenVPN ещё даст жару. И вот почему.
Чуть выше я уже упомянул, что к OpenVPN сделали поддержку Pluggable Transport. А это означает, что мы сможем на него навешивать любые плагины маскировки. И не просто сможем, мы уже начали это делать, сделали прототип, и впиливаем в Амнезию этот OpenVPN с поддержкой PT.
А это, в свою очередь, означает что полная маскировка VPN у нас появится и для мобильных устройств – для Android и для iOS. Если вкратце – на мобильных платформах всё строго с VPN и доступом к системным функциям, поэтому просто взять и в лоб запустить два процесса – отдельно OpenVPN и отдельно плагин, как это работает на десктопным платформах, не получается.
Наш роадмап такой: впилить OpenVPN с поддержкой Pluggable Transport, закончить со связкой OpenVPN over Cloak для мобильных платформ, далее добавить поддержку v2ray, а потом, если хватит сил, времени и ресурсов, сделать поддержку wstunnel и других инструментов, которые будут востребованы и актуальны.
Плащ
Некоторые сервисы, такие как TOR, предоставляют возможность обфускации трафика, они используют такую утилиту, как obfs4. Нам показалось, что это не совсем современная утилита, и уровень маскировки, который можно достичь с помощью obfs4, не максимально высокий...
Поэтому изначально наш выбор пал на Cloak. Главной фичей Cloak является то, что в нем можно настроить сайт-донор, под который Cloak будет маскироваться, что очень затрудняет блокировку.
Это работает так – даже если DPI-оборудование стучится на сервер, где пользователь установил свой VPN, то в ответ система DPI будет получать прямо контент того сайта, который предварительно задан в Cloak. Например, можно задать там Habr.com, и DPI будет думать, что пользователи читают хабр-новости, хотя они в этот момент сидят через скрытый VPN туннель в запрещенной Книге Лиц, Пересмешнике и других дьявольских сайтах, упаси меня РКН написать их названия.
Круто? Мы считаем, что да! Это конечно не панацея, эту схему можно спалить по невалидным сертификатам, но, пока даже сам Великий Китайский не может справиться с таким безобразием.
Скажем спасибо Andy Wang, за сий прекрасный инструмент! Если что – все стрелки на него, мы просто собрали в одно приложение несколько утилит из Интернета, это ведь ещё не запрещено?
О WireGuard
А мы его тоже делаем. Не всем же повезло жить в странах, где есть необходимость использовать самые крутые и навороченные средства маскировки VPN. Нам тоже пока не повезло, и WireGuard всё ещё работает, и работают всякие разные наколеночные VPN сервисы, использующие WG. Он быстрый, батарею на мобильных девайсах сажает не сильно, поэтому пока работает – и слава Богу РКН.
В AmneziaVPN поддержка WireGuard есть пока только на Windows/Android/iOS. Скоро допилим и для MacOS, и чуть позже для Linux.
О других VPN протоколах
У нас вообще наполеоновские планы, мы хотим чтобы Амнезия умела все VPN протоколы. Начали добавлять поддержку IKEv2, пока он работает только на Windows.
А ещё мы успели впилить в Амнезию контейнер с DNS сервером, контейнер с файло-хранилищем, и даже контейнер, в который в один клик поднимает web-сайт в сети TOR с настроенным WordPress. Вот только не пишите и не спрашивайте, зачем оно всё там, самое главное – оно работает!
А это безопасно?
Первое, что хотелось бы напомнить, это то, что AmneziaVPN – это проект с открытым исходным кодом, то есть все наши скрипты для настройки, все форки библиотек и многое другое, всё это можно найти в нашем репозитории на GitHub.
Важнейшим событием в жизни проекта стало то, что летом 2022 года AmneziaVPN прошла полный независимый аудит безопасности компанией 7ASecurity при поддержке Open Technology Fund. В результате проверки были найдены разного уровня уязвимости, которые благополучно были закрыты ещё в том же году, были выпущены обновления. С деталями проверики можно ознакомится в официальном пресс-релизе, или сразу прочитать репорт в формате pdf.
Иными словами, AmneziaVPN – это теперь уже состоявшийся проект, которому можно доверять.
Где доступна Amnezia VPN?
АмнезияБесплатно
Да, кстати, для простого доступа к Книге Лиц, Зерцалу, Пересмешнику, ЖелеРыбе и всяким другим СМИ типа CBB, NNC, мы создали Telegram-бота, который выдаёт конфиги для WireGuard всем желающим и просто любопытным. Для использования он попросит подписку на наш новостной Telegram-канал AmneziaNews, потом выдаст конфиг и инструкцию как настроить VPN. Да, кстати, он работает на WireGuard, поэтому... не будем паниковать, пока ещё работает.
А-А-А ЧТО ДЕЛАТЬ
Если не обращать внимания на усиление блокировок (и всё остальное), то можно внезапно оказаться героем известного мема “Держи банан, бери телевизор, спасай мишку, бросай меня и лезь в шкаф”, или какого-нибудь другого мема, но тоже скорее всего с бананом.
Вот краткая инструкция Интернет-выживания в условиях ужесточения блокировок.
Ознакомьтесь со списком инструментов, которые помогают обходить жёсткие блокировки. Давайте сюда их вместе впишем, я начну – это конечно же AmneziaVPN, а ещё Tor, Lantern, Psiphon, Ceno… пишите в комментах кто знает ещё какие сервисы.
Поставьте хотя бы парочку из таких приложений, поиграйтесь с ними, лучше это сделать сейчас, пока это легко и просто. Когда Интернет заблокируют, всё может стать намного сложнее. Ну, или на ваш вкус, можете проходить этот квест потом, на повышенном уровне сложности. Например, как Туркменские фрилансеры. Или вообще, на уровне сложности "Адепт Чучхе", когда для обхода блокировки нужно в прямом смысле обходить её на своих двоих.
Просто не забывайте о своём неотъемлемом праве на свободу мысли, на свободу доступа к информации, к другим точкам зрения. Если несколько минут смотреть на одну и ту же картинку, она потом стоит перед глазами ещё несколько секунд, перебивая реальное изображение. Если годами смотреть на одну и ту же картину мира через экран – реальность потом ещё долго не разглядеть сквозь пелену мыслей, которые кажутся своими... © Мазай Банзаев.
Коментарі
Дописати коментар
Олег Мічман в X: «Donations and support for media resources, bloggers, projects, and individuals. https://t.co/HPKsNRd4Uo https://t.co/R6NXVPK62M» / X
https://twitter.com/olukawy/status/1703876551505309973