Найти тему
new-techno

Обход блокировки Ютуб. Создание своего VPN с протоколом VLESS. Инструкция.

Интернет-пространство становится все более ограниченным, и многие пользователи сталкиваются с блокировкой популярных ресурсов, таких как YouTube и Instagram.

Это не типичная копипаст статья (ну вроде), тут мы рассмотрели как ру трафик пускать вне сервера, как получить сертификат и защитить сервер, удели немного внимания :)

В современном мире безопасность и анонимность в интернете становятся все более важными. Один из лучших способов защитить свои данные и обойти блокировки любых сервисов (в том числе Ютуб) — это создание собственного VPN-сервера.

В этой статье рассмотрен способ обхода цензуры путем создания своего VPN, используя протокол VLESS XTLS Reality, который позволяет получить доступ к сайтам, блокирующим пользователей из Российской Федерации. На данный момент vless-xtls-reality не может быть обнаружен с помощью DPI (глубокой проверки пакетов) даже в таких странах, как Китай. Однако следует учитывать, что регуляторы могут применить другие методы блокировки. Для повышения надежности обратите внимание на следующие советы:

Что нельзя делать:

1. Не используйте VPS для протоколов, которые могут быть обнаружены. Например, такие как WireGuard, OpenVPN, Shadowsocks и другие. Некоторые провайдеры блокируют VPS, на которых ранее использовались подобные протоколы.

2. Не заходите в рунет через VPS. Лучше осуществлять доступ к российским сайтам напрямую, минуя прокси. В крайнем случае, используйте цепочку Я->VPS->Warp->Рунет. Это предотвратит подозрения со стороны цензоров, так как двойное пересечение границы (туда и обратно) в короткий промежуток времени может вызвать подозрения и блокировку прокси.

3. Ограничьте доступ к прокси небольшим кругом пользователей. Идеально — до 5-10 человек. В Китае аномальный трафик к серверу от большого числа пользователей может привести к блокировке сервера, и российские провайдеры могут перенять этот опыт.

Соблюдая эти правила, доступ к серверу будет трудно заблокировать. Однако для дополнительной безопасности рекомендуется подготовить “План Б” — проксирование трафика через CDN (сеть доставки контента).

CloudFlare Warp

Warp — это публичная сеть прокси, предоставляемая CloudFlare, использующая протокол WireGuard. В России подключение к Warp невозможно, но с зарубежного VPS — вполне реально. В этом сценарии Warp выполняет две функции:

1. Обход западной цензуры — некоторые западные сайты могут блокировать доступ с вашего VPS, но с помощью Warp можно обойти эти ограничения.

2. Дополнительная защита от блокировок — проксирование запросов от VPS в российский интернет, чтобы не компрометировать VPS.

Первое что вам будет нужно - VPS сервер. Говоря о том, что нам там предлагают под наши цели — это виртуальные VPS сервера, расположенные в странах европы, России и США. С реальной скоростью соединения с сервером примерно 700-800 мбит/с и безлимитным трафиком (что очень важно для VPN сервера) . Лично я буду использовать хостера Aeza - дешевый и стабильный, с нормальными характеристиками сервера, он полностью подходит под наши требования.


1. Пошаговая инструкция: настройка VPS
1. Зарегистрируйтесь на сайте хостинг-провайдера и перейдите в личный кабинет.

2. Выберите виртуальный сервер с тарифом Shared, минимальной конфигурацией и операционной системой Ubuntu 22.04.

-2

3. Отключите бэкапы и оплатите аренду сервера.

4. Подождите активации сервера, после чего получите данные для авторизации.

Подключение и настройка сервера

1. Подключитесь к серверу по SSH, используя команду ssh root@<IP вашего сервера>.

-3

2. Обновите систему:

apt update && apt full-upgrade -y

3. Перезагрузите сервер: reboot

4. Установите необходимые пакеты:

apt install docker.io docker-compose git curl bash openssl nano -y

5. Установите панель управления 3X-UI версии 2.0.2:

Внимание: я делал инструкцию для версии 2.0.2, если вы хотите сделать все в точности по инструкции, используйте эту же версию. В новых поменялся интерфейс и логика работы с WARP, я же создавал инструкцию и делал скриншоты именно с версии v2.0.2, она стабильная и самодостаточная.

Склонируйте репозиторий и установите 3x-ui v2.0.2:

git clone https://github.com/MHSanaei/3x-ui.git

cd 3x-ui

nano docker-compose.yml
откроется текстовый редактор:

в 6 строке замените "latest" на "v2.0.2"

было: image: ghcr.io/mhsanaei/3x-ui:latest

стало: image: ghcr.io/mhsanaei/3x-ui:v2.0.2

чтобы сохранится, нажмите: CTRL+X, Y, ENTER

-4

docker-compose up -d

6. Установите Warp, используя скрипт:

Удалите старую версию:
warp u

Установите новую версию:

bash <(curl -sSL https://raw.githubusercontent.com/hamid-gh98/x-ui-scripts/main/install_warp_proxy.sh)

Во время установки скрипт спросит у вас цифру, нужно ответить 40000.

7. Сгенерируйте самоподписанный TLS-сертификат и скопируйте его в панель 3X-UI:

openssl req -x509 -newkey rsa:4096 -nodes -sha256 -keyout private.key -out public.key -days 3650 -subj "/CN=APP"

docker cp private.key 3x-ui:private.key

docker cp public.key 3x-ui:public.key

Пока что остановимся с настройкой сервера, вернемся к этому еще раз позже.

2. Настройка панели 3X-UI

-5

1. Откройте панель управления в браузере по адресу http://<IP вашего сервера>:2053/.

2. Войдите в систему, используя логин admin и пароль admin.

3. В разделе “Panel Settings” укажите следующие параметры:

-6

Panel Port: (любое случайное число от 1000 до 65535, кроме 40000 - оно уже занято варпом, в инструкции я буду использовать 54321 - но вы придумайте своё). Далее везде вместо порта 54321 вставляйте своё число.

Panel Certificate Public Key Path: /public.key

Panel Certificate Private Key Path: /private.key

Panel URL Root Path: секретная строка для доступа к панели, которая начинается и заканчивается "/". Я использую /mysecreturl/, но вы придумайте свою. Далее везде вместо строки /mysecreturl/ используйте свою.

Нажмите кнопку “Save”, а затем “Restart Panel”. После перезапуска панели обновите страницу, изменив порт в адресной строке на новый.

 4. В разделе “Security Settings” замените стандартные логин и пароль на новые.

-7

Теперь панель будет доступна по HTTPS-адресу вида https://<IP вашего сервера>:<ваш порт>/<ваш путь>/

Настройка Xray

1. Перейдите в раздел “Xray Settings” и включите следующие опции:

IPv4 Configs -> Use IPv4 for Google.WARP Configs -> Route OpenAI (ChatGPT) через WARP.

-8

Сохраните настройки и перезагрузите Xray.

2. В разделе “Routing Rules” настройте правила маршрутизации, чтобы направить весь российский трафик через WARP:

Отредактируйте строку “geosite:openai”, добавив geosite:category-gov-ru,regexp:.*\.ru$,geosite:openai

-9

Добавьте новое правило: IP: geoip:ru, Outbound tag: WARP.

-10

В итоге благодаря этому мы видим следующую картину - РУ трафик идет через WARP, а зарубежный через сервер.

-11

Сохраните настройки и перезагрузите Xray.

Маскировка под сайт

Найдите сайт для маскировки. Не советую использовать малоизвестные и мелкие сайты, в моменте они могут перестать работать должным образом, сам недавно с этим столкнулся. Пробуйте yadndex.ru, google.com, cloudflare.com и подобное. Проверьте время отклика сайта с сервера, найдите сайт м наименьшим откликом и используйте его.

Не используйте сайт со скриншота - просто пример.
Не используйте сайт со скриншота - просто пример.

Проверяем командой ping <адрес сайта>, например ping cloudflare.com.

Настройте VLESS:

В разделе (Inbound) - (Add inbound) надо заполнить указанные на скриншоте поля.

-13

Самое важное:

- Remark и Email - любые строки (не обязательно адрес эл.почты), ни на что не влияют.

- Listening IP - укажите ваш IP

- Port - строго 443, чтобы маскироваться под обычный https-сайт.

- Только после выбора Security: Reality появится возможность выбора Flow: xtls-rprx-vision

- uTLS - именно Chrome, чтобы маскироваться под самый популярный браузер

- Dest, Server Names - указать сайт-донор (хотя можно оставить yahoo.com )

- Кнопка (Get new cert) генерирует ключи.

- (Create) завершает создание.

Добавление пользователя.

-14

Нажимаем на три точки и Add Client.

-15

Тут вводим Email - это название профиля (необязательно, можно оставить то, что изначально). И выбираем Flow - xtls-rprx-vision.
Нажимаем Add Client, идем дальше.

Получите ключ VLESS:
Жмем на QR код в строке с вашим профилем.

-16

Открывается QR, нажатием на него копируется ключ vless, выглядит следующим образом:

vless://e034d537-b028-41f0-9e53-5f0838ea8b3b@111.111.111.111:443?type=tcp&security=reality&pbk=D0Bfsax3Ble2KiqDrOu3_qMJw7qVKyrnWgpvDTVkb3M&fp=chrome&sni=nltimes.nl&sid=64edf3b5&spx=%2F&flow=xtls-rprx-vision#NiceVPN-%D0%94%D0%BB%D1%8F%20%D1%81%D1%82%D0%B0%D1

Сохраните его в удобном месте, нужен для подключения.

-17

3. Настройка защиты сервера:

3.1. Установка и настройка UFW, обязательно сделать:

Идем обратно в cmd, подключаемся по ssh.
Убедитесь, что находитесь не в репозитории 3x-ui, просто введите cd и нажмите Enter.
Для защиты сервера установите и настройте брандмауэр UFW:

sudo apt install ufw -y

Откройте только необходимые порты:

sudo ufw allow 22/tcp # SSH, оставляем 22

sudo ufw allow 54321/tcp # Порт панели 3x-ui, меняем на ваш, который указывали выше

sudo ufw allow 443/tcp # Порт для VLESS/XTLS Reality, оставляем 443

Включите UFW:

sudo ufw enable

3.2. Настройка Fail2ban, делаем по желанию, но советую сделать, 5 минут по времени.

Установка

Если до этого вы не обновляли базы данных apt, то установку можно начать с этого:

sudo apt update

sudo apt upgrade

После обновления apt можно переходить к установке Fail2ban:

sudo apt install fail2ban

Теперь активируем Fail2ban, чтобы она автоматически запускалась после перезагрузки сервера:

sudo systemctl enable fail2ban

Перед запуском Fail2ban в работу осталось настроить параметры фильтрации, по которым будет происходить блокировка IP.

Настройка

По умолчанию Fail2ban использует правила блокировки, указанные в файле jail.conf. Это системный файл, который обновляется вместе с программой, поэтому использовать его в качестве основного файла с параметрами блокировки не рекомендуется.

Мы создадим собственный конфигурационный файл jail.local. Система приоритетов в Fail2ban настроена таким образом, что в качестве основных применяются правила, указанные в jail.local.

Структура конфигурационного файла

Конфигурационный файл Fail2ban состоит из так называемых jail-ов — отдельных блоков правил для разных служб. В одном файле jail.local можно не только указать все правила для всех сетевых служб сервера, но и управлять их включением и выключением.

Структура всех jail-ов одинакова:

  1. В первой строке в квадратных скобках указывают название службы, к которой будет применяться следующий ниже набор правил. В нашем случае это [sshd].
  2. Далее определяют параметр enabled, отвечающий за включение или отключение данного jail-а. Мы установим его true, чтобы наш jail был активен.
  3. После этого указывают условия блокировки: максимальное количество попыток подключения (maxretry), время, за которое эти попытки были произведены (findtime), и время, на которое нужно запретить доступ с этого IP (bantime).
  4. В последней части jail-а указывают IP-адреса, которые считаются надёжными (ignoreip), например, IP-адрес вашего домашнего компьютера.

Мы рекомендуем добавить в строку ignoreip домашний адрес вашего компьютера, чтобы в случае особо жёстких настроек фильтрации программа не заблокировала вам доступ к серверу — например, после нескольких неудачных попыток ввода пароля.

Создадим конфигурационный файл:

sudo vim /etc/fail2ban/jail.local

Текст конфигурационного файла будет примерно таким:

[sshd] enabled = true

maxretry = 6 findtime = 1h

bantime = 1d

ignoreip = 127.0.0.1/8 23.34.45.56

Этот набор условий означает, что IP-адрес, с которого было произведено 6 неудачных попыток SSH-подключения за последний час (3600 секунд), будет заблокирован на одни сутки (86400 секунд). Не будут блокироваться IP-адреса в диапазоне от 127.0.0.1 до 127.0.0.8 и адрес 23.34.45.56 (указываем свое).

Время для параметров findtime и bantime можно указывать не только в секундах, но и в минутах, часах, днях и даже неделях. Для этого необходимо сразу после численного значения параметра указать соответствующую букву (m, h, d, w).

Получение уведомлений

После строки с указанием надёжных IP можно добавить параметр, отвечающий за отправку на e-mail уведомлений о заблокированных IP.

Добавьте в конфигурационный файл строку:

destemail=admin@example.com

Теперь на указанную здесь почту будут приходить уведомления о каждом заблокированном программой IP-адресе.

Чтобы получать более детальную информацию о заблокированных IP, на сервер можно установить службу whois:

sudo apt install whois

В этом случае в письма о блокировке будут добавлены более подробные сведения, получаемые службой whois.

Будьте внимательны при настройке уведомлений!

Fail2ban отправляет отдельным письмом сведения о каждом заблокированном IP, а в случае брутфорс-атаки количество IP, с которых проводится подключение, может достигать нескольких сотен.

Начало работы

После создания конфигурационного файла, содержащего все необходимые правила, можно запускать Fail2ban и наблюдать за его работой.

Команда для запуска программы:

sudo systemctl start fail2ban

Команда для вывода на экран сведений о работе jail-а, отвечающего за службу sshd:

sudo fail2ban-client status sshd

Если в данный момент сервер не подвергается атаке, сразу после установки и запуска программы на экране будет следующая информация:

Status for the jail: sshd

|- Filter

| |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/auth.log

`- Actions

|- Currently banned: 0 |- Total banned: 0 `- Banned IP list:

Здесь приведены сведения о попытках подключения к серверу и о заблокированных IP-адресах.

Если вы решите изменить настройки, указанные в конфигурационном файле jail.local, не забудьте перезапустить Fail2ban, чтобы изменения вступили в силу:

sudo systemctl restart fail2ban

Теперь ты можешь настроить свой VPN, обойти блокировку Ютуба и других сервисов.
Спасибо, что дочитал эту статью, оцени ее пожалуйста лайком и комментарием!)
Удачной настройки.