Один мой знакомый держит свой OpenVPN сервер, он поделился со мной хронологией блокировки популярных VPN протоколов в России. С его разрешения, я публикую детальную информацию о том, как это происходило с точки зрения клиента и администратора OpenVPN.
Контекст
В последний год в России было много новостей о блокировке известных VPN протоколов, среди которых и OpenVPN. Отечественные новости сообщают о проблемах со всеми операторами мобильной связи, которые начались в конце Мая. Источники из недружественных стран, конечно, видят в этом роль государства и сгущают краски касаемо "свободы" в интернете. Давайте подробно рассмотрим детали того, как происходила блокировка OpenVPN на самом деле.
Хронология и технические детали
В апреле-мае 2023 года операторы Мегафон и МТС, предположительно, предприняли попытки блокировки протокола. Было известно, что блокировка имела региональный характер: например, в городе "А" OpenVPN не работал, в то время как в соседнем городе "Б" он продолжал функционировать. Проблема была легко решена путем смены порта с 1194 на другой или замены IP-адреса сервера владельцем сервера. Интересно, что протокол OpenVPN продолжал работать через Wi-Fi с телеком провайдерами. В общем, это выглядело не как полная блокировка протокола, а скорее как выборочная блокировка определенных IP адресов и портов.
С начала июня по июль 2023 года наблюдались периодические трудности в работе OpenVPN, которые были довольно противоречивы: вчера протокол был заблокирован, а сегодня снова работал. Такая нестабильность стала присутствовать повсеместно, и стало очевидным, что большинство регионов столкнулись с этими ограничениями. Проблема была решена путем использования OpenVPN через прокси-сервер с использованием TCP-соединения. Ниже приведена иллюстрация этого процесса.
Важно подчеркнуть, что OpenVPN по-прежнему функционировал "через Wi-Fi". Кроме того, пользователи ОС Android испытывали проблемы значительно реже, чем пользователи устройств Apple.
В августе 2023 года, точнее 7-го числа, произошло решающее событие - OpenVPN перестал работать у всех пользователей одновременно. Даже использование прокси-серверов и обфускация трафика не помогли восстановить соединение. Ситуация выглядела следующим образом: UDP-соединения устанавливались, но никакой трафик не передавался, а TCP-соединения соединялись и разъединялись через несколько секунд. Было также очевидно, что на провайдере Ростелеком OpenVPN продолжал работать через Wi-Fi, а вот у компании Дом.ру (ЭР-Телеком) OpenVPN, по всей видимости, был заблокирован. Следует отметить, что через несколько дней некоторые функции OpenVPN частично возобновили работу, однако использование протокола стало рискованным, особенно для тех, кто пользовался запрещенными в России сайтами.
Как теперь быть?
В качестве альтернативы OpenVPN и другим популярным протоколам стал использоваться Outline - VPN, работающий на основе протокола Shadowsocks. Outline VPN был разработан дочерней компанией Google и обладает особенностью, что его сложно идентифицировать как VPN. Это делает его более невидимым для контролирующих органов. По стороне клиента установка Outline VPN проще, чем у OpenVPN: достаточно вставить ключ, предоставленный провайдером.
На просторах телеграма было найдено множество ботов, которые были заточены под OpenVPN или Wireguard, но более не функционируют. Я также нашёл пару ботов, которые уже перешли на Outline и работают без проблем: YourFast и Web of Russia VPN.
Надеюсь, эта статья помогла интересующимся лучше понять детали того, что происходило "за кулисами" VPN сервисов в России!
Комментарии (41)
Daddy_Cool
09.09.2023 10:29YourFast и Web of Russia VPN - если не ошибаюсь платные, проблема с платными, что неизвестно, сколько времени они проработают. Может за Shadowsocks еще не взялись как следует?
perevalov_a Автор
09.09.2023 10:29Главное, чтобы не было как с телеграмом несколько лет назад, так заблокировали, что аж Гугл Диск перестал открываться
quakin
09.09.2023 10:29Встречал на Хабре упоминания, что в Китае Shadowsocks уже блокируют (увы, без пруфов). Так что да, у нас за Shadowsocks ещё не взялись.
Но блокировка Shadowsocks нетривиальная, для неё нужен бюджет и прямые руки, и когда это совпадёт - все переедут на Vless, а там и новые технологии подоспеют.
MiraclePtr
09.09.2023 10:29+4Может за Shadowsocks еще не взялись как следует?
Оригинальный Shadowsocks (который используется в Outline) уже давно устарел и имеет ряд багов, которые позволяют его детектировать, хоть и не просто (replay-атаки и т.д.).
Эти баги исправлены в современном протоколе shadowsocks-2022, и единственный способ его заблокировать (которым и пользуются китайцы, согласно последнему отчёту от группы GFW Report) - это тупая блокировка всех неопознанных протоколов (за вычетом тех, что похожи на текстовые). Collateral damage при этом соответствующий.
quakin
09.09.2023 10:29+8Протокол Shadowsocks был разработан дочерней компанией Google
Откуда такая информация? Просто Википедия утверждает, что это была частная инициатива китайца "clowwindy".
perevalov_a Автор
09.09.2023 10:29Исправил, хотел написать, что Outline VPN был разработан дочкой гугла
GeeZeR
09.09.2023 10:29+1Плох ли WireGuard? Сегодня поставил на VPS, работает.
quakin
09.09.2023 10:29+3Судя по трём волнам блокировки в августе, это лишь вопрос времени, когда WireGuard перестанет работать в РФ.
MiraclePtr
09.09.2023 10:29+4Очень плох, потому блокируется и детектируются вообще элементарно, и РКН это уже умеет.
uhf
09.09.2023 10:29+8При чем тут вообще WiFi?
perevalov_a Автор
09.09.2023 10:29В просторечии люди используют фразу "через Wi-Fi работает, а через мобильный интернет -- нет"
MountainGoat
09.09.2023 10:29Есть ли достоверные утверждения, что перестал работать VPN на альтернативных портах? Может быть всё гораздо банальнее, чем кажется?
MiraclePtr
09.09.2023 10:29+3Есть, почитайте форум ntc.party - там люди делятся наблюдениями с очень разными конфигурациями на разных портах у разных провайдеров, вплоть до полных дампов трафика с демонстрацией блокировки.
AmphetamineLogic
09.09.2023 10:29В моём случае (сервер SoftEther, дополнительно подрабатывающий OpenVPN сервером на том же порту 443) ситуация ровно та же. Нативный SoftEther клиент подключается без проблем.
Machirodont
09.09.2023 10:29Интересно, это все только в одном направлении блокируется? Потому что я, например, не в РФ (чего и всем желаю), и все мои VPN, которые используются для доступа к гос.сайтам и банкам внутрь РФ из за границы - как работали так и работают.
Kiborg777
09.09.2023 10:29+1По-видимому, да. Я тоже могу зайти на соответствующие российские ресурсы имея VPN сервер (OpenVPN) в РФ.
aborouhin
09.09.2023 10:29+1Проблема в том, что блокируется оно пока что совершенно рандомно, в зависимости от провайдера, расположения сервера, времени, погоды на Марсе и непонятно чего ещё. У меня OpenVPN-сервер в России, доступ ни из России, ни из-за границы к нему не пропадал. Несколько Wireguard туннелей из России за границу (и из дата-центров, и через обычных провайдеров в доме/офисе) тоже работают без сбоев.
Меня больше всего интересует, будут ли в целевой картине (на "учениях", понятное дело, всё может быть) блокироваться соединения внутри РФ, ибо завернуть в Cloak только трансграничные линки легко, а тут пришлось бы серьёзно извращаться, и не хочется связываться с этим зря.
morgot
09.09.2023 10:29Я не специалист по сетям, но блокируется именно попытка подключения с рос. айпи к серверам по протоколам openVPN / wireGuard / etc. Наоборот (сервер в РФ, подключение с ЕС) работает.
Baton34
09.09.2023 10:29+2С начала августа Билайн на мобильном интернете периодически блокирует. Причём блокирует только зарубежный openvpn, внутри Росcии не блокирует. В итоге поднял openvpn-сервер внутри России, а с него по проводам туннель до зарубежного. С телефона подключаюсь к местному openvpn-серверу и оказываюсь в забугорном инете.
raamid
09.09.2023 10:29Извиняюсь за чайниковский вопрос, а можно ли сделать бота для мессенджера (например Телеграмм) и его использовать вместо прокси? Если например друг находится за пределами железного занавеса, позвонить ему через мессенджер и через него выходить в сеть.
ShadF0x
09.09.2023 10:29позвонить ему через мессенджер и через него выходить в сеть
Раньше модемы по телефонным линиям работали, а теперь через VOIP, во прогресс до чего дошёл.
MiraclePtr
09.09.2023 10:29+1В былые времена даже были прокси, использующие в качестве транспорта сообщения ВКонтакте... Да, в теории такое можно сделать, но скорость будет чрезвычайно низкая.
kuraga333
09.09.2023 10:29А кто-то понимает, белый список протоколов там используется или чёрный? Если "испортить" (например, xor-нуть) payload Ethernet-фрейма, пропустят или заблокируется?
llsnk
09.09.2023 10:29Я хочу подать в суд на РКН и/или провайдера. Сейчас думаю, как подать иск. Насколько я понимаю, их действия опираются на статью 15.8 ФЗ от 27.07.2006 N 149-ФЗ "Об информации, информационных технологиях и о защите информации". Я не нахожу в тексте обоснований блокировать VPN, не используемые для доступа к "информационным ресурсам, информационно-телекоммуникационным сетям, доступ к которым ограничен на территории Российской Федерации".
Кто-нибудь ещё об этом думал?
ky0
Аутлайн тоже блокировали в один из последних раз. Кажется, настало время OpenVPN over Cloak и т. п. обфускаций.
Лично я пробовал Amnezia — у них, конечно, довольно стрёмная система, когда для установки тебе надо поставить клиент себе на комп, а потом подсунуть ему SSH-реквизиты к VPS. Но с точки зрения неубиваемости — вполне себе.
quakin
Я (с помощью инструкции) поднял на своём сервере связку Vless+Reality. Это ненамного сложнее, чем установить Амнезию, плюс опенсорсный сервер, множество клиентов, и обфускация не хуже Cloak.
ky0
Говорят, это прокси, а не VPN. Это правда?
quakin
Технически да. Shadowsocks и Vless - прокси. Для телефонов/планшетов вообще без разницы, а вот на компе придётся попрыгать с бубном чтобы абсолютно весь трафик шёл сквозь них. С другой стороны, если задача - просто получить доступ к роскомназдоренным ресурсам - то всё работает "из коробки".
MiraclePtr
Не придется. Во многих клиентах есть так называемый "Tun Mode", который по аналогии с VPN заворачивает все исходящие подключения на прокси. Активируется обычно одним кликом.
quakin
Видимо есть разница между "весь трафик" и "все исходящие".
Пример:
Windows 10, Nekobox в режиме TUN. qBittorrent без доп настроек качает файлы мимо прокси. Мне от этого хорошо (не загружаю сервер), но если я по какой-то причине решу качать файлы через прокси - придётся лезть в настройки qBittorrent.
MiraclePtr
Нет, в данном случае это одно и то же.
Это очень странно. Если поднят TUN-интерфейс и установлен маршрут по умолчанию на него, то трафик всех приложений в системе обязан идти через него - точно так же, как при использовании любого VPN-клиента, здесь со стороны приложений Nekobox не отличается абсолютно ничем. Возможно это какой-то специфический баг qBittorrent, то как он выбирает интерфейс для исходящих подключений- нужно проверить настройки, там, помнится, можно было вместо автовыбора сетевого интерфейса явно указать какой-нибудь из них. Либо возможна другая причина - у вашего провайдера и роутера работает поддержка IPv6, а в Nekobox он не включен, соответственно для IPv6 адреса и маршруты на TUN-интерфейсы не конфигурируются, и трафик идёт мимо. Решается включением IPv6 в Nekobox.
quakin
Да, действительно TUN-режим пропускает через себя весь трафик. Я ошибся в интерпретации результатов теста.
Из-за бага в 3X-UI: хотя у меня включена опция "Ban BitTorrent Usage" -- она блокирует загрузку для прокси-режима (если qBittorrent руками настроен качать через локальный прокси) но позволяет качать торренты через TUN.
YuriyPashkov
Спасибо за ссылку. На обоих провайдерах моих shadowsocks работает.
ExpertMag
Я аж зарегался чтобы ответить.
На днях перестали работать OpenVpn и OpenVpn over Cloak. Я тоже запускал всё через Амнезию. Зашёл в тг-канал Амнезии, там все тоже начали писать что у них перестало работать.
Я так понял рабочий вариант это Shadowsocks, но его ещё как-то надо настроить.