Как мы учились обходить блокировки VPN в Китае, чтобы быть готовыми к РКН

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

В понедельник 7 августа многие пользователи VPN в России заметили проблемы с подключением к серверам. Картина складывалась противоречивая: у абонентов одного оператора мог работать VPN, а мог — нет, в одном регионе у части пользователей были трудности с подключением, а другие не испытывали технических проблем. Это уже вторая заметная волна блокировок в этом году.

По собранной в соцсетях и Телеграме информации, ограничения затронули наиболее распространенные VPN-протоколы OpenVPN,  L2TP, PPTP и WireGuard. На сбои в работе VPN-сервисов жаловались клиенты мобильных операторов — Мегафон, МТС, Билайн, Tele2, Yota, Тинькофф Мобайл. 

Зампред Комитета ГД по информационной политике, информационным технологиям и связи Антон Горелкин прокомментировал СМИ, что «пользоваться VPN-сервисами не запрещено, но Роскомнадзор обязан ограничивать работу тех из них, кто нарушает закон» — то есть, разрешает доступ к заблокированным в России сайтам и сервисам, список которых на данный момент включает не только политические и новостные ресурсы, но и крупнейшие социальные сети.

Примерная карта блокировок ВПН на неделе с 7 августа
Примерная карта блокировок ВПН на неделе с 7 августа

В тот же день вечером создатель сервиса обхода блокировок AntiZapret @ValdikSS рассказал, что блокируются преимущественно подключения из России к серверам за границей у абонентов мобильных операторов, и что эти блокировки заметно отличаются от того, что было раньше. На этот раз под удар попали не популярные коммерческие сервисы, доступные всем желающим, а частные серверы, которые пользователи самостоятельно настраивали у зарубежных провайдеров. Поменялся и характер блокировки: теперь Роскомнадзор с помощью DPI и ТСПУ оценивал тип трафика и сразу же его блокировал, если определял его, как подключение через VPN. Блокируются популярные протоколы WireGuard, L2TP и OpenVPN. По мнению технического директора Роскомсободы и основателя Privacy Accelerator Станислава Шакирова, это были «блокировки не в тупую». По его мнению, цензоры пытаются сделать так, чтобы блокировка VPN затронула только частных лиц, но не повлияла на работу корпоративных клиентов.

В этот же день на Xeovo обвалилось огромное количество тикетов, но к вечеру, когда инеформация о новой волне блокировок VPN ещё продолжала расходиться по рунету, и СМИ ещё собирали статистику, которую мы здесь приводим, мы уже закрыли большую часть из них и соединение наших клиентов было восстановлено. Как нам это удалось? Мы к этому готовились. 

Примерно год назад перед Xeovo появилась задача не только предоставлять классические VPN-протоколы, но добавить еще stealth proxies. Они маскируют VPN-трафик под обычный HTTPS, позволяя обходить DPI.

На то было две причины:

  1. Рано или поздно все больше стран начнут блокировать их. Блокируются они очень легко. 

  2. На некоторых рынках в рекламе мы используем слоган "Silence censorship. Protect your privacy and bypass restrictions with Xeovo" — который не работает, когда ты не можешь предоставить везде услуги :)

Протокол WireGuard блокируется очень легко. OpenVPN немного сложней, но в целом оба варианта поддаются блокировке без особого труда. На сегодняшний лидеры блокировок VPN это Россия, Китай, Узбекистан, Иран, Египет и Туркменистан. Последний выделяется особо: они просто заблокировали всё и ввели вайтлисты — тут мы пока проиграли, за остальные рынки можно побороться. Но и к вопросу Туркменистана мы ещё вернёмся.

Будет работать в Китае — будет работать везде

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

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

Для успешного старта мы решили взять как можно больше доступных и проверенных протоколов (Shadowsocks, VLESS, VMess и Trojan). 

Из-за такого большого арсенала первые проблемы начались с тестированием рабочих GUI клиентов и составлением пользовательских инструкций для каждой операционной системы. Клиентов очень много и большая часть из них работает примерно одинаково, но все еще бывают исключения к примеру у таких клиентов как Clash и Surfboard. Особо плохая поддержка была поначалу у протокола VLESS на MacOS, сейчас ситуация улучшилась и появился Nekoray. 

Сильно мешает то, что постоянно появляется много новых протоколов, которые нужно пересматривать/тестировать каждый год, ибо их перестают поддерживать и просто в конце концов забрасывают. Хотя тенденция постоянного появления новых протоколов напрягает — это происходит потому, что цензура находит способы блокировать новые протоколы. Так эта битва и продолжается: одну голову гидре отрубят — вырастут две, а нам со всем этим зоопарком потом разбираться.

Вторая проблема была с документацией. Иногда мы просто зря тратили время читая ломаную англоязычную документацию для конкретного протокола, когда изначально нужно было сразу начинать с китайской версии. По большей степени документации или не полные или не апдейтятся, всегда возникали проблемы. В какой-то момент мы даже планировали нанять программиста со знанием китайского языка чтобы облегчить жизнь, но справились как-то сами через DeepL Translate.

После всех фаз тестирования и запуска мы начали уже оптимизировать наш генератор. Очень важно было добавить для каждого клиента свой subscription, файл который может фетчить все новые сервера которые мы добавляем и работает во всех популярных клиентах. Это особенно удобная и важная функция если IP-адреса попадают часто под бан.

После всех баг-фиксов и фич мы столкнулись с хорошими трудностями: наши IP-адреса как горячие пирожки начали блокироваться GFW, великим китайским файерволлом. Это был верный индикатор, что что наш сервис работает как надо — прямой фидбэк, к которому мы были готовы. 

Первая стратегия которую мы решили попробовать это смена IP-адресов для выходных узлов. В конце концов это оказалась малоэффективная и затратная стратегия (которую мы все еще иногда используем). 

В начале она работала неплохо и IP-адреса жили неделями, попадали в карантин и выходили из блока через пару недель. Потом выяснилось что GFW использует довольно умный подход к блокировке IP-адресов и они редко остаются вечно в бане. Чем чаще IP-адрес попадает в карантин, тем дольше он там будет оставаться.

Решение блокировок IP-адресов мы решили с помощью CDN: если совсем коротко, то IP-адрес прячется за CDN и не попадает в блок. Китай избегает блокировок больших CDN-провайдеров. Единственный минус такого метода — это скорость подключение и стабильность в целом. Так что это всё ещё не панацея, но пока самый эффективный метод, который мы нашли. Если интересует больше технических подробностей, мы советуем читать Great Firewall Report  (как именно блокирует Китай).

Следующая дилемма с Китаем была это разделение протоколов. Все протоколы, которые мы предоставляем могут работать в Китае, но не все из них рассчитаны на массовое использование. Чем больше подключено юзеров, тем больше вероятность что GFW обнаружит что идет подключение к proxy и заблокирует IP-адрес. Так же играет роль регион и провайдер. В некоторых регионах использование VPN отслеживают намного пассивней и хуже, чем в других. Пользователи из некоторых китайских регионов даже сообщали, что какое-то время работал WireGuard :) В итоге, для пользователей, которые подключаются из Китая, мы оставили VLESS и VMess.

После чего мы обнаружили еще одну трудность — позитивную трудность, которую можно воспринимать как экзамен и проверку своего сервиса: во время политических ивентов/выборов Коммунистическая партия максимально врубает машину цензуры. Грубо говоря, в блок летит всё и вся — даже юзеры, которые индивидуально разворачивают прокси. С данной проблемой мы не смогли справится, и называем такие инциденты чёрные дни. Тут уже как повезет — может пронести и прокси будут работать, но с вероятностью 90% заблокируют всё, включая CDN.

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

Второй нюанс это китайские провайдеры. Грубо говоря, нужна CN2 сеть для комфортного подключения если ты в РФ. Для себя мы нашли оптимальных поставщиков в Южной Корее, Тайване, Японии и Сингапуре.

Финальная проблема — это стоимость борьбы с цензурой в Китае. Трафик нам выходит дороже, чем мы предполагали, поскольку мы его не ограничиваем — пользователи ограничены только скоростью канала и сколько смогут из него выжать. Помимо трафика дополнительный кост — частая смена провайдеров/IP-адресов/оплата CDN. 

Стоимость трафика в Южной Кореи с оптимизированным каналом для Китая для наглядности 

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

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

Будем работать в Туркмении — будем работать везде

Следующий рубеж, который мы себе поставили — это открыть интернет пользователям из Туркмении. Туркменистан — это endgame в плане интернет-цензуры, в стране по сути действуют вайтлисты. Это ситуация тяжелее, чем в Китае, чем в России, чем в арабских странах — чем везде на планете, за исключением КНДР, где вместо интернета действует интранет. 

Какое-то время у нас в Туркмении рабтали stealth proxies, но потом довольно малоизвестный провайдер попал в бан со всей своей ASN — и сейчас мы ищем способы возобновить работу и помочь людям обходить блокировки. Всё, что можем сказать — что способы будут нестандартные, out of the box, мы будем выходить за наши границы. И также мы будем работать и бороться с цензурой в РФ. 

  • Ещё в планах Xeovo VPN увеличить инфраструктуру для прокси. Сейчас мы тестируем XTLS-Reality, который будет очень полезен для пользователей из Ирана. 

  • Так же в планов разработать свой мониторинг IP-адресов на блокировку в Китае, Иране, РФ и других стран. 

  • И работаем над модифицированным Raspberry Pi, который планируем отправлять бесплатно нашим клиентам. Это поможет быстрей реагировать на блокировки.

Автор текста: Xeovo,@EgorKotkin
Иллюстрации: Антон Дмитриев

  • Для оплаты зарубежными картами или криптовалютой: xeovo.com. Скидка 10% по промокоду HABR2023

  • Для оплаты рублями: VPNPay

Источник: https://habr.com/ru/companies/xeovo/articles/753834/


Интересные статьи

Интересные статьи

В 17 лет я работал и учился около 20 часов в сутки: ходил в школу, домашние задания делал на переменах, а по ночам руководил некоммерческой организацией. Тогда это дало мне возможность получить много ...
С чрезмерным стрессом такая история: он не проходит бесследно. Усталость накапливается, и если с ней ничего не делать, самого стойкого из команды может накрыть и через год после момента где “всем надо...
- Что учесть при составлении резюме разработчику, чтобы получить хорошие предложения уже в первые 3 дня поисков? - Как оценивать стоимость своих навыков и не продешевить?...
Последние несколько лет мы при каждом удобном случае снова и снова обсуждаем, что же такое DevOps. Это уже порядком надоело, но раз всё еще происходит, значит есть проблема — проблема вза...
У тестировщика много возможностей повысить качество продукта и сделать работу команды комфортнее. Главное – обсуждать любые изменения с коллективом и внедрять только то, что удобно и ...