Личный VPN: юзер ликует, VLESS смеётся, а РКН плачет

7cb760086127c953f6c67ef839f90e1d.png

Эта статья — расширенный туториал того, как установить и настроить свой VPN на VLESS с XTLS-Reality с управлением через GUI интерфейс 3x-UI всего за 10 минут.

Почему именно этот протокол?

Особенность VLESS-Reality в том, что: берутся HTTPS-пакеты, и пускаются через наш заранее подготовленный зарубежный сервер (VPS), как через прокси. Однако, стоит учесть, что обращаться к нему мы будем как к какому-нибудь www.google.com, но в стандартной процедуре хэндшейка выполняем скрытую процедуру авторизации — благодаря чему сервер поймёт, что мы его слон. 

А если кто-то (читаем как РКН) попытается обратиться к нашему »‎сайту» без авторизации (атака именуемая как Active Probing) то в ответ лишь получит копию www.google.com со всеми необходимыми сертификатами. РКН подумает, что наш сервер — это просто сервер Google, a никакой не VPN, и ничего блокировать не будет.

 Кроме того, поскольку HTTPS-пакеты, которые будут пропущены через прокси, уже зашифрованы, в дополнительном шифровании не нуждаются, и никакой deep package inspection т.е DPI соответственно нас ни в чём не заподозрит.

  • некоторые начнут задаваться вопросом, а почему не AmneziaWG или известный из поднебесья ShadowSocks, а потому что во время масштабных блокировок под нож может пойти всё, что не HTTPS.

Я хочу настроить сервер с XTLS-Reality, как это сделать максимально правильно?

Суть Reality в маскировке под какой-либо популярный сайт, поэтому когда вы решаете это делать, вам нужно добиться того, чтобы ваш IP (IP вашего VPS) вел себя полностью идентично настоящему серверу, которым вы прикидываетесь. Если тот «настоящий» сервер слушает на 80-м порту (plain HTTP), то вам тоже нужно настроить nginx или правило фаервола, чтобы переадресовывать HTTP-запросы на оригинальный сервер. Если «настоящий» сервер не слушает SSH-подключения на стандартном 22-м порту, то ваш тоже не должен.
— Если ваш хостер предоставляет reverse-DNS записи для IP-адреса, убедитесь, что там не осталось значение по умолчанию (обычно с доменом хостера), а лучше задайте такой reverse-DNS, какой виден у IP-адреса ресурса, под который вы маскируетесь.

Правда ли что VLESS не использует шифрование, и поэтому использовать его небезопасно для конфиденциальных данных.

Нет. То, что VLESS не предусматривает шифрования на уровне протокола, не значит, что данные передаются в нешифрованном виде. VLESS всегда работает поверх TLS, трафик шифруется именно механизмами TLS, а не самого VLESS. Никакой проблемы с безопасностью тут нет, все секьюрно.

Что лучше XTLS-Reality, или просто VLESS + XTLS-Vision?

Преимуществ XTLS-Reality два. Во-первых это простота настройки, не надо никаких доменов, сертификатов, и т.д. Во-вторых, из-за возможности маскировки под любой популярный сайт, с его помощью можно пролезать через белые списки цензоров — например, в Иране долгое время блочили/резали все по малейшему подозрению, но yahoo.com у них был в белых списках, и прокси, маскирующиеся под него работали.

А теперь приступим к установке и минимальной настройке VPN своими руками.

Хостинг для VPN

Есть масса хостингов, некоторые дешевле, но в этом материале разберём установку на aeza.net, его плюсами являются: пополнение по СБП; РФ картами всех мастей; установка сервера c 3x-UI в пару кликов и небольшая настройка пресета по ключам.

Регистрация и оформление сервера

Первым делом необходимо зарегистрироваться (данные для входа продублируются на почту) и войти в панель управления, после чего, пополняем баланс удобными для вас способами, для граждан РФ все условия соблюдены, как и писал ранее пополнение по СБП; РФ картами всех мастей;

Далее в колонке под логотипом aeza выбираем «Виртуальный сервер» (речь о боковой панели) и с этого момента начинается настройка конфигурации нашего будущего сервера.

Название:  не имеет значения, по желанию

Выбор локации: Амстердам

Выбор тарифа: Shared — тариф NLs-1

Выбор операционной системы и ПО: предустановленное ПО и ищем 3x-UI Ubuntu 22.04

Выбор периода оплаты и оформление заказа:  я выставил помесячную оплату, мало ли, что с хостинг-провайдером станет.

Бэкапы:  отключаем (в них нет необходимости под наши нужды)

Наименование сервера, выбор локации и тариф

Наименование сервера, выбор локации и тариф
Успевайте, сейчас цена 3.96 €

Выбор операционной системы, период оплаты и бэкапы

Выбор операционной системы, период оплаты и бэкапы

Установка

После успешного оформления и оплаты сервера переходим в раздел «Мои услуги» (речь о боковой панели), далее кликаем по нашему названию сервера с флагом попадая на страницу с краткой сводкой о сервере:

9d9976d7fca7f53e7cf2395175745f57.png

На данном этапе нас интересует лишь IP-адрес; имя пользователя и пароль.

Подключение по SSH к серверу

Постараюсь разобрать на трёх разных ОС параллельно, указывая для каждой какую команду и на каком этапе необходимо вводить.

Linux:

$ ssh username@ip-address -p 22

Где username — это логин администратора на сервере, а IP-address, соответственно, — ее IP-адрес.

Windows:

С некоторых пор подключаться через SSH из операционной системы Windows также стало можно через командную строку. Раньше для этого применялись сторонние приложения (вроде PuTTY или Cygwin и пр.), но в десятой версии ОС был добавлен встроенный OpenSSH клиент, который работает так же, как в Линукс.

Единственное отличие в том, что по умолчанию эта утилита отключена, и чтобы приступить к выполнению команд, необходимо установить ее в настройках.

Для этого совершите несколько шагов:

  1. Откройте «Параметры» — «Приложения».

  2. Выберите подпункт «Дополнительные компоненты».

  3. Найдите в списке «Клиент OpenSSH» и нажмите «Установить». Если этой кнопки нет, значит, служба уже включена.

  4. После установки перезагрузите компьютер.

Теперь нужно открыть командную строку. Можно найти ее через поиск или нажать Win+R, ввести в поле «cmd» и Enter. В этом случае процесс подключения по SSH в Windows и Linux будет идентичен.

Mac OS:

ssh username@ip-address -p 22

Итак, если в командной строке увидели «Welcome to Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0–113-generic x86_64)» то вы на верном пути и всё хорошо складывается, далее вводим команду:

nano 3x-ui.txt

fd0c72b149fcc183db4e77631b43951b.png

Перед нами появится три важных для нас строки: URL; Login; Password.

Лезем в браузер и вставляем в адресную строку свой ссылку, в моём случае это:

http://77.221.154.202:16068

Вас встретит окно авторизации

Вас встретит окно авторизации

Вводим логин и пароль, который мы получили благодаря команде nano 3x-ui.txt и попадаем в панель управления, следующий шаг это создание ключа и настройка конфигурации.

Окно, которое нас встретит после успешной авторизации

Окно, которое нас встретит после успешной авторизации

Переходим в раздел «Подключения» — «Добавить подключение»

Не обращаем внимание на наличие у меня клиента, в вашем случае ничего не будет.

Не обращаем внимание на наличие у меня клиента, в вашем случае ничего не будет.

Настройка VLESS с XTLS-Reality

Необходимый пресет, бери за пример

Необходимый пресет, бери за пример

Примечание:  наименование для более удобной идентификации ключей в панели управления (того стоит, в случае, если собираетесь раздать разные ключи)

Протокол:  vless

Порт IP:  оставляем пустым, как и на скриншоте выше

Порт:  по умолчанию у вас будет выставлено определённое значение, его стираем и выставляем — 443

Ко вкладке «Клиент» вернёмся чуть позже, пока перейдём ниже:

Протокол передачи:  TCP (всё, что ниже оставляем по умолчанию)

Безопасность:  REALITY

  • xVer — оставьте значение 0;

  • uTLS— выбираем под какой браузер будет маскироваться VPN соединение. Рекомендую выбирать Chrome, ибо он наиболее популярен;

  • Dest — назначение, указываем домен и порт. Я оставил yahoo.com:443;

  • SNI — это домен, под который будем маскироваться. Ставим идентично пункту Dest yahoo.com,  www.yahoo.com;

  • Short ID — приватный ключ сгенерированный автоматически;

  • Приватный ключ и Публичный ключ — не трогаем, стоит лишь нажать кнопку Get New Keys и ключи автоматически сгенерируются;

  • Sniffing, HTTP, TLS, QUIC, FAKEDNS — оставляем по умолчанию.

Настройка клиента:

9082e31259eeddd0d60b1603facdec5f.png

Email:  аналогично как и с примечанием, наименование для удобства;

Flow:  выбираем из списка xtls-rprx-vision.

Остальное не трогаем, оставляем по умолчанию и кликаем на «Создать» (ключ готов)

Для удобства подключения с мобильных устройств жмём на »+» у клиента и перед нами появится иконка QR-кода, кликаем и сохраняем:

8d3c681ddfd2ddc9560701667a806ab7.png

Для получения текстового ключа кликаем по значку «i»

Ключ готов, теперь необходимо определиться с клиентом для подключения, моя основная ОС — Mac OS, порекомендовать могу FoXray (для тех, у кого macOS 13.1 и новее) в случае если у вас более старые ОС, то рекомендую использовать V2Box; из клиентов на iOS советую поставить также FoXray, но есть и масса других клиентов.

  • Windows — InvisibleMan-XRay разворачиваем Assets и выбираем нужный zip х64 для 64 битных систем, x86 для 32 битных систем. Есть и другие клиенты постабильнее.

  • Android — NekoBox разворачиваем Assets и там будут apk. Выбираем arm64. На момент написания статьи последний назывался релиз: NB4A-1.3.1-arm64-v8a.ap

© Habrahabr.ru