Спустя полгода с того момента, как идея была впервые озвучена, мы презентуем готовый продукт — бесплатный опенсорсный клиент для 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.
- Может быть добавить какие другие протоколы (если будет востребовано) или поддержку других ОС на сервере (по сути только команду установки докера нужно пофиксить).
- Начать разработку мобильных клиентов.
Если у вас есть какие-то возражения, комментарии по функционалу, сценарию развития, или какие-либо другие идеи — пожалуйста, не стесняйтесь, и пишите в комментариях. Этот проект — это ваш проект, делается для вас.
> Сайт со ссылкой на инсталляторы: amnezia.org
> Исходники на GitHub
> Telegram
P.S. Мессэдж провайдерам VPS
Несмотря на наличие инструкций для покупки, многим пользователям во время первого тестирования было сложно разобраться с покупкой виртуального сервера (VPS). Мы сделали полезный и простой клиент, и хотим, чтобы как можно больше пользователей могли настроить на нем свои собственные VPN. Если среди читателей есть представители VPS провайдеров, готовые услышать нас и сделать специальный VPN-Ready тариф, без технических настроек, только личные и платежные данные, мы с удовольствием добавим ваш хостинг на наш сайт со ссылкой на тариф и инструкцией.
Свяжитесь с нами:
support@amnezia.org
но лучше через telegram:
t.me/amnezia_vpn — для общения
t.me/amnezia_vpn_news_ru — за новостями
osharper
спасибо за статью и продукт, интересно посмотреть как вы настройку сервера через клиент сделали.
а вот этот момент я не понял, что случилось с Payoneer, что на него через впн нужно?
pokamest_nikak Автор
Кстати, очень про пионир интересно — по базе блокировок не пробивается — https://eais.rkn.gov.ru/
Но у меня попытка открыть сайт перенаправляет на warning.rt.ru
osharper
ну вот у РКС есть про это. просто так странно, я думал, много кто им пользуется в РФ, а на Хабре что-то и новости об этом не пробегало
servermen
В связи с Пионером возникла у меня парочка интересных вопросов: Как реализовано скрытие факта использования vpn от посещаемого сайта, например защита от двухстороннего пинга? Ну и второй вопрос, гораздо более интересный и актуальный для тех, кому нужно платить карточкой: Где брать сервер с ip адресом, который не принадлежит к хостинг-провайдеру? Проблема эта актуальна потому, что антифрод системы не пропустят платёж, который будет совершён с ip адреса хостинг-провайдера.
IP адреса Psiphon не определяются как принадлежащие хостингам и поэтому через него платежи спокойно проходят.
pokamest_nikak Автор
Защита — отключение пинга на сервере, мы это сделали
А на счёт того, что антифрод пионира может блокировать адрес с хостинг провайдера — надо опрос устроить — пока с этим не сталкивался, у меня на самом дешевом vps пионир нормально работает
pokamest_nikak Автор
Кстати, основной факт, по которому палят, то что вы сидите из-под vpn — это таймзона вашего браузера. Поэтому тут без перевода часов системы (или установки плагина в браузере, который позволяет выставить фейковую таймзону) не обойтись.
servermen
Тогда лучше сделать опрос не только для пионера может пионеровцы и правда не обращают на это внимание, используя другие критерии. Тайм-зону гораздо проще изменить)))
Я просто несколько раз встречал сообщения о том, что через vpn практически не возможно платить картами и объяснением было как ваз то, что мошенники используют впс-ки с бесплатным пробным периодом и как скажем оприходуют краденные карты потому-то антифроды и не любят всякие хостинги.
Я кстати тоже сталкивался с тем, что интернет именно через Италию работал чуть-чуть быстрее чем напрямую. Не знаю, что там делал Билайн в декабре-январе, но скорость 4ж интернета временами падала практически до 100 килобит. Там где я живу просто нет большого кол-ва людей, чтобы сота была загружена под завязку и параметр сигнала sinr был больше 20-и! А у Билайна есть прямой пиринг с провайдером Телеком Италия — у qrator.net был сервис, на котором можно было посмотреть на bgp маршрутизацию, кстати билайновский гласс лукинг lg.gldn.net у меня почему-то не работает.
pokamest_nikak Автор
Так а зачем вообще платить картой через vpn? Я вижу будущее таким, в котором через vpn будет ходить только то, что действительно нужно. Или уже есть какие-то магазины, которые принимают оплату картой, и заблокированы у нас?
servermen
Ну вот кажется была история с блокировкой iherb.com. Потом кому-то вполне может захотеться купить криптовалюту на заблокированной бирже, дабы быть уверенным в том, что данные не будут слиты нашим гос. органам, А ещё нужный интернет-магазин вполне может оказаться на одном ip адресе с кем-то заблокированным или даже иметь t.co адресе.
pokamest_nikak Автор
Покупая крипту по банковской карте, регуляторы будут в последнюю очередь смотреть на ip адреса. Зачем — если есть банковские транзакции, которые все проходят через национальную платёжную систему?
Да и вообще купить то легко, можно сказать рисков намного меньше, продавать вот страшнее.
А про магазины — да, согласен, всё таки должно гарантированно работать.
Мне кажется этот вопрос должен решаться с виртуалькой, купленной на каком-нибудь приличном облаке типа гугла, амазона.
Мы себе все на оракле понастраивали бесплатные виртуалки, если укажите на какие заблоченные магазины — мы бы протестили.
sena
Так может быть у меня иностранная банковская карта, а не национальная.
Admaer
Одно время (весь 2019 год примерно) блокировали сайты по продаже лотерейных билетов, причём со всех сторон: сайт не открывался и платёж не проходил. Сейчас платёж проходит, но сайт всё ещё цензурят.
KorDen32
Скажем, есть магазины цифрового контента (музыка, книги), ориентированные на США/Европу, которые из-за требований правторговцев по GeoIP либо вообще отбивают заглушку сразу, либо просто не дают купить.
Там можно найти интересный нишевый материал. И зачастую там без проблем можно оплатить картой РФ.
У некоторых магазинов даже есть автоконвертация в рублевый ценник и подобие русского интерфейса при входе с российского IP, но купить ничего нельзя.
powerman
У меня self-hosted VPN в другую страну очень давно, трафик через него ходит весь, проблем с платежами не было вообще никогда. Бывали проблемы с регистрацией мессенджеров вроде, если не путаю, скайпа/вотсапа, когда они категорически хотели номер телефона из той страны, где мой IP — приходилось отключать VPN на момент регистрации, и потом они работали нормально. Но в целом можно уверенно сказать, что проблем без VPN намного больше, чем из-за VPN, так что выбор тут однозначный.
dartraiden
К слову, на eais.rkn.gov.ru прямо написано, что лучше пробивать через blocklist.rkn.gov.ru — там поиск идёт по всем реестрам, а не по конкретному.
pokamest_nikak Автор
Да, точно, там пробивается, не обратил внимания.
Это конечно так смешно — пионир заблокировали, несмотря даже на то, что они карты все выпущенные для России деактивировали. И все продолжают им пользоваться, многие даже по белому выводят на счёт в РФ деньги, платят налоги…
pokamest_nikak Автор
А про реализацию настройки через клиент — прикрутили к клиенту ssh библиотеку, он по ssh на сервере всё и устанавливает