Спустя полгода с того момента, как идея была впервые озвучена, мы презентуем готовый продукт — бесплатный опенсорсный клиент для self-hosted VPN, с помощью которого вы сможете установить VPN на свой сервер в несколько кликов.
Вместо скучной технической статьи о том, что вот оно: что-то сделали, что-то не успели, что-то пересмотрели, которую можно сократить до нескольких абзацев сути, я решил написать о своих размышлениях, о том, что вообще происходит, о бешеных принтерах, о развитии Интернета, в контексте его приватности, анонимности и блокировок.
Кто сразу хочет узнать подробности и технические характеристики клиента AmneziaVPN — перематывайте в конец статьи.
Будущее интернета и VPN
Давайте пофантазируем, каким может быть или каким мы хотим видеть Интернет в обозримом будущем, через несколько лет и в необозримом, в десятки лет.
Начну с того, что политические игры/войны тех, кто у руля, тех, кто управляет миром, вряд ли закончатся в обозримом будущем. А значит и не закончатся идеологические баталии. Места скопления людей в Интернете будут оставаться полем идеологических сражений и пропаганды, и с каждым годом эти сражения будут только набирать обороты. Блокировки неугодного контента будут совершенней, инквизиция смелее, проявлять в Интернете инакомыслие станет всё страшнее — только в каждой империи причины и поводы разные.
Дальше должны были идти несколько строк про бешеные принтеры, но, к сожалению, этот контент не прошёл модерацию.
Вчера мы все видели, как это происходит — вот только что ты сидел в Твиттере… Бац, и ты уже просто в свитере.
Стоит ожидать, что и средства для обхода блокировок тоже будут совершенствоваться. Вы так думаете? А я так не думаю. И вот почему.
Некоторые современные государственные фаерволы умеют не только выполнять глубокий анализ пакетов (DPI), но и осуществлять “активные проверки” серверов, с которыми соединяется клиент. Смысл этих активных проверок заключается в том, что фаервол не просто анализирует трафик, но и делает разные хитрые запросы на сервер, с целью определить, а не замаскирован ли на этом сервере VPN сервис. Игра в кошки-мышки дошла до того, что некоторые VPN протоколы уже умеют полноценно маскироваться под настоящий зашифрованный web трафик, а фаервол пытается определить валидность SSL сертификата, которым подписан трафик. Похоже, что это тупик. Дальше — только white list. Это означает, что вся эта игра в кошки-мышки подходит к концу.
DPI со своими активными проверками проиграл битву, и при определенных настройках VPN трафик невозможно отличить от обычного web-трафика.
Финальный аккорд, который нужно сыграть на стороне того, кто обходит блокировки — это приобретение любого домена, и выпуск валидного (бесплатного вполне хватает) SSL сертификата. Далее на сервере настраиваются ShadowSocks с плагином обфускации (маскировки трафика), фейковый веб сервер, и сплиттер трафика. Но это последний аккорд борьбы с фаерволами, в большинстве случаев пока достаточно простого ShadowSocks с обфускацией.
А давайте попробуем заглянуть в чуть более отдаленное будущее. Биткоин жив, и, по всей видимости, будет жив, даркнет тоже никуда не денется. Нефть потихоньку убывает, до токамаков в продакшене ещё лет 30, и глобальной политической стабильности не видать нам, видимо, до первых термоядерных электроватов в безлимитных электросчётчиках.
Квантовые компьютеры могут, конечно, нас устремить в технологическую сингулярность, но, думаю, что это тоже ближе к середине века намечено. Даже если к концу этого десятилетия соберут что-то годное, там сразу военные, силовики понабегут, да и сами корпорации будут не против подоить рынок, а там, глядишь, и власть “попеределить” захотят. Бррр, как-то всё апатично-удручающе, может кто поделится более оптимистичными вариантами развития событий в комментариях?
Так что же там с нашими VPN-ами в гипотетическом 2033м?
Первое, что можно предположить, гос. регуляторы разных стран, за неимением возможности блокировать замаскированный VPN трафик, продолжат устраивать массовые шатдауны — во время очередного идеологического сражения, как на просторах Интернета, так и вне его, да и вообще во время любой политической нестабильности.
Можно предположить, что будут продолжаться попытки гос. регуляторов влезать в корневые удостоверяющие центры, чтоб там хоть как-то закрепиться, а потом, глядишь, и объявить все остальные неверными и вражескими на своей территории. С технической точки зрения выглядит как-то нереально, но пробовать будут, денег уж точно там освоят бюджетных немерено.
По всей видимости, к VPN-ам качественно прикрутят блокчейн, и это может даже станет мейнстримом. Прикручивать уже начали несколько лет тому назад — уже есть такой проект — Mysterium. Я вообще за ними слежу, уже года четыре пилят, третий раз переписывают, их токен MYST наглядно показывает положение дел — он на дне, и расти, видимо, не собирается. Идея то хорошая, но с реализацией у них что-то возникли проблемы. А в сторону маскировки трафика они пока вообще не смотрят, что сильно снижает их конкурентоспособность, особенно на ближайших отрезках времени.
Бесплатный сыр
Последнее время новостные ленты запестрели новостями о том, что утекли данные 21 млн пользователей популярных (первый раз вижу эти названия) VPN-сервисов, а до этого мелькали новости, что во Frigate зашит троян (xakep.ru), а до этого, что утекли данные каких-то других VPN сервисов (www.rbc.ru).
А что с данными пользователей других VPN — они ещё не утекли, но уже проданы?
Находили ли вы по-настоящему бесплатные VPN, которым можно доверять? Есть ли гарантия что платные VPN не продают ваши данные? Несомненно, существуют честные VPN-сервисы, которые явно не намерены торговать вашими данными, и защищают их всеми своими силами.
Но мы считаем, что этого не достаточно. Мы и огромное количество других пользователей предпочитаем self-hosted VPN.
Итак, попробую пояснить своё видение. Начну издалека.
Начну с приватности и анонимности. Если по-простому, приватность — это когда вы заходите на сайт и третьим лицам видно, что зашли именно вы, но что вы там делаете им не видно, всё зашифровано. А анонимность — это когда невозможно (или предельно сложно) вычислить, кто же зашел на сайт, сопоставить факт захода на ресурс с конкретным человеком.
Зачем нужны VPN
А теперь зачем вообще нужны VPN. Ниже я попробую перечислить основные сценарии использования VPN, в контексте анонимности и приватности. Если что-то забыл — пишите в комментах, добавлю, это же интересно!
Дисклеймер: список сценариев приведен в ознакомительных целях, мы категорически против использования сети Интернет по сценариям, находящимся вне закона. Для разных пользователей и разных юрисдикций соответствие упомянутых сайтов к конкретным сценариям может различаться.
Список сценариев
Доступ к заблокированным сайтам, по типу торрент трекеров, порнохабов.
Для этого сценраия характерно то, что пользователю нужен только доступ, в любом варианте, даже через самый небезопасный бесплатный плагин в браузере. Пользователям не важна ни приватность, ни анонимность, а важно только получить доступ.
Доступ к заблокированным сайтам, на которых важна приватность обмена информацией.
У каждого пользователя может быть свой критерий для попадания сайтов в этот сценарий, для меня например это Linkedin, а теперь, к сожалению, и Payoneer. Пользователю важна приватность, но анонимность не требуется.
Я бы добавил ещё один сценарий, почти такой же, как и сценарий №2, только с максимальными требованиями по приватности.
Например, локалбиткоинс. Отличие этого сценария заключается в том, что если для сценария №2 я бы ещё мог использовать какой-либо проверенный VPN-плагин в браузере, то для этого сценария — никогда. Анонимность при этом всё ещё не требуется.
Далее начинаются более экзотические варианты использования VPN.
Например, сценарий, когда вы переехали в Тайланд или на Бали, и, о чудо, через VPN интернет работает лучше, чем без него — видимо в экзотических странах провайдеры любят применять экзотический шейпинг трафика. Приватность нужна, анонимность — всё ещё нет. Сюда же можно отнести и все остальные сценарии, связанные со скоростью интернет-соединения: приехали на дачу в Подмосковье, подключились через 4G модем, и вроде как тариф безлимитный, а скорость падает. Говорят, VPN помогает в таких случаях.
Далее начинаются сценарии, в которых нужна анонимность. Или хочется, чтобы она была.
Кому-то анонимно нагадить, оскорбить, или что-то в этом роде.
Знаний и навыков мало, что-то где-то прочитал, что можно зайти через VPN/Tor/proxy, и будет всё анонимно и приватно, и так далее.
Вы — кулхацкер, скрипткиди, или просто балуетесь.
На всякий случай хотите подключаться к Тору через впн. Ну или без Тора. Анонимность и приватность очень-очень нужны, но, самое главное — чтобы мама/жена не запалила.
Вы — хакер, фрикер, кракер, кардер, спамер, пират.
Вам нужна абсолютная анонимность, у вас свои методы её обеспечения, возможно, вы иногда используете VPN, вероятнее всего какой-то свой self-hosted.
Вы участвуете в политической жизни страны, и вам нужна анонимность и приватность.
Вы действуете в рамках закона, или на его грани, но опасаетесь за свою безопасность, поэтому хотите подстраховаться. Через Tor на приличные сайты заходить неудобно, а через VPN самое то.
Пользователь находится далеко вне локального закона, и он по каким-то причинам пользуется VPN.
От греха подальше, даже не буду перечислять возможные подробности этого сценария, времена нынче строгие.
Проще говоря, вам анонимность не нужна, от слова совсем. Маловероятно, что те, кому она реально нужна, читают эту статью. Кому надо, уже всё знают, а кому не надо, им и не надо.
Теперь поговорим о приватности.
Комментарий из интернетов, оставлен совсем недавно на презентацию Privacy Day 2021 на Ютубе. Орфография и пунктуация сохранены. Слабонервным не открывать.
Комментарий
ну и Фригейт это частный случай, мы же говорим о плагинах в широком смысле, я понимаю, что они как-то монетезируются на мне, раз они бесплатны ну значит собирают что то, биг дату наприпер, ну и пускай, не юзать же платные впн, большинству не нужна сверх анонимность, надо чтобы на заблоченные сайты заходилось, и чтоб бесплатно было, всё, проекты типа антизапрет живущий на донаты будут популярны и любимы, а всякие платные решения не будут иметь и одной тысячный от их аудитории, платить готов бизнес, рядовому же юзеру коих большинство это не нужно, поставил приложеньку, включил и забыл, всё работает годами, на торренты заходит, ну чё та там шпионит, пускай, главное чтоб обезличенно и берега видело, ну Фригейт берега попутал, до этого были и другие типа Фокси Прокси, ну что поделать, не юзать же платные с абоненткой
Да, вот именно так, это среднестатистический пользователь сценария №1.
Хорошо это или плохо, что большинство готово платить такую цену за обход блокировок — риторический вопрос, как говорится — “как есть”. Но напрашивается логичный вывод: раз даже среди “бесплатных” VPN есть большая конкуренция, значит пользователи будут выбирать более надежные, проверенные, технически продвинутые решения среди бесплатных. Пользователей всех остальных сценариев приватность волнует, кого-то сильнее, кого-то слабее. Они готовы либо платить деньги за коммерческие VPN, либо всё настаивать своими силами.
Self-hosted VPN
Так вот, вообще-то это статья о релизе клиента для self-hosted VPN. Сейчас попытаюсь обосновать зачем он нужен, и куда мы хотим его развивать. Выше я писал про типичные сценарии использования VPN. Пройдёмся по ним ещё раз, в контексте self-hosted VPN.
Для первого сценария (доступ к заблокированным сайтам) основные требования — бесплатность и максимальная простота. Тут, конечно, сложно конкурировать с «бесплатными» сервисами, которые в качестве оплаты собирают всякую разную информацию о пользователях, о трафике, и на этом монетизируются. Cреди пользователей этого сценария есть небольшой отклик, некоторые пользователи этого сценария постепенно втягиваются в цифорвую жизнь, и их требования к приватности возрастают.
Пользователям 2-го и 3-го сценариев (доступ к важным сайтам), навороченный клиент для self-hosted VPN будет весьма интересен, они задумываются о безопасности и приватности, это — наша основная целевая аудитория, можно сказать.
Пользователям 4-го сценария (для которых важна скорость) клиент окажется полезным за счёт гибкости — VPS сервер для своего VPN можно купить вообще где хочешь, и с любыми параметрами.
Пользователи сценариев 5, 6, 7 и 9 (все, кто заведомо вне правового поля) как-нибудь сами разберутся со своими грязными делишками, или делищами, у кого как.
А вот пользователям 8-го сценария (журналисты, правозащитники и т.д.) тоже, думаю, клиент будет интересен.
Ну и есть у нас всё же для первого сценария козырь в рукаве, но разыграть его будет сложно. Мы сделали фичу, которая позволяет в клиенте включать режим настраиваемой маршрутизации и заворачивать внутрь VPN только заблокированные ресурсы, таким образом технически устраняя боль пользователей первого сценария. Оно, конечно, пока не очень удобно — это нужно в клиент руками вбить нужный адрес, в 20х годах этого столетия это уже слишком лениво для пользователей. Но тем не менее, здесь есть куда двигаться — можно представить такую схему: из клиента не просто развернуть собственный VPN сервер, но и сразу прописать для этого сервера access list — адреса, которые он будет через себя маршрутизировать. И расшаривать параметры подключения к этому серверу. И те, кто будут к нему подключаться, автоматически будут подгружать себе локально этот список адресов в таблицу маршрутизации. В таком случае найдётся намного больше желающих расшаривать свой VPN-сервер, зная что с него уж точно не будут ломать Пентагон.
Amnezia VPN
Вот мы и плавно подошли к техническим характеристикам клиента AmneziaVPN.
AmneziaVPN — это бесплатное приложение с открытым исходным кодом для создания вашего собственного VPN на вашем собственном сервере.
Что он уже умеет:
Клиент подключается к вашему серверу по SSH, устанавливает Docker, если он ещё не установлен, и запускает серверные контейнеры Amnezia. Пока поддерживается только Ubuntu/Debian (нужен apt install docker-io).
Контейнеры запускаются (для каждого протокола отдельный контейнер), генерируют ключи, и корневой сертификат. Из клиента также можно в один клик переустановить контейнеры, таким образом переинициализировав PKI. Или вообще замести следы и удалить все контейнеры с сервера.
Контейнеры не имеют смонтированных папок с хоста, не предоставляют никакой API для управления (пользователями, например), не пишут логи внутри себя, и, вообще, не делают ничего, кроме своей прямой задачи — обеспечивать подключение соответствующего VPN протокола.
При каждом подключении клиент сам себе генерирует новый ключ и сертификат, и забрасывает его на сервер. Подключение OpenVPN — по сертификату.
В текущем релизе есть поддержка OpenVPN и OpenVPN over ShadowSocks, сейчас в релизе используется второй вариант.
В клиенте есть два режима работы — гнать весь трафик через VPN, или заворачивать трафик только для определенных хостов, которые юзер может добавить самостоятельно.
Можно расшарить параметры подключения к серверу одной ссылкой (шаринг для семьи так сказать — в строке расшариваются реквизиты SSH).
Доступны билды для Windows >= 7 и MacOS >= 10.13.
Как это работает с точки зрения пользователя:
Устанавливаете клиент Amnezia.
Покупаете любой VPS сервер в той локации, которая кажется оптимальной для вас.
Вводите в клиент IP, login, password от сервера.
Ждете несколько минут пока всё установится на сервере.
Подключаетесь.
Для более тонкой настройки — вбиваете адреса серверов, для которых необходимо использовать VPN.
Если нужно подключить ещё один девайс — достаточно просто из клиента скопировать строку подключения, и ввести её в другом клиенте.
AmneziaVPN не является VPN сервисом, и не предоставляет возможности подключения к каким-либо преднастроенным серверам. В отличие от VPN сервисов, мы публикуем в свободный доступ не только исходные коды клиентской части, но и исходные коды серверной части. Для подключения вам необходимо приобрести любой VPS сервер любого провайдера самостоятельно.
А вот что планируется дальше, в порядке приоритетов:
Добавить маскировку трафика под TLS (прикрутить плагин к ShadowSocks + настроить фейковый веб сервер).
Добавить возможность безопасного расшаривания параметров подключения.
Добавить возможность запуска сервера со списком разрешенных серверов для подключения через VPN.
Может быть добавить какие другие протоколы (если будет востребовано) или поддержку других ОС на сервере (по сути только команду установки докера нужно пофиксить).
Начать разработку мобильных клиентов.
Если у вас есть какие-то возражения, комментарии по функционалу, сценарию развития, или какие-либо другие идеи — пожалуйста, не стесняйтесь, и пишите в комментариях. Этот проект — это ваш проект, делается для вас.
Несмотря на наличие инструкций для покупки, многим пользователям во время первого тестирования было сложно разобраться с покупкой виртуального сервера (VPS). Мы сделали полезный и простой клиент, и хотим, чтобы как можно больше пользователей могли настроить на нем свои собственные VPN. Если среди читателей есть представители VPS провайдеров, готовые услышать нас и сделать специальный VPN-Ready тариф, без технических настроек, только личные и платежные данные, мы с удовольствием добавим ваш хостинг на наш сайт со ссылкой на тариф и инструкцией.
Свяжитесь с нами:
support@amnezia.org
но лучше через telegram: t.me/amnezia_vpn